Enphase Energy is a global energy technology company and leading provider of solar, battery, and electric vehicle charging products. Founded in 2006, Enphase transformed the solar industry with our revolutionary microinverter technology, which turns sunlight into a safe, reliable, resilient, and scalable source of energy to power our lives. Today, the Enphase Energy System helps people make, use, save, and sell their own power. Enphase is also one of the fastest growing and innovative clean energy companies in the world, with approximately 68 million products installed across more than 145 countries.
We are building teams that are designing, developing, and manufacturing next-generation energy technologies and our work environment is fast-paced, fun and full of exciting new projects.
If you are passionate about advancing a more sustainable future, this is the perfect time to join Enphase!
About the role
For our Cloud and Digital team, we seek Cloud Software Engineer (Staff Level) who can work on designing & implementing high quality scalable cloud software while providing technical leadership/mentoring to a small team of talented developers in agile environment. Your ability to lead the architecture, design, and implementation of maintainable, high-quality, and high-performing web (Java microservices, React UI, AWS) and mobile applications is essential for success in this role. Provide hands-on technical expertise to design, engineer, deploy, and deliver highly scalable cloud applications. Drive improvements in technical architecture, standards, and processes. Drive engineering excellence while managing/mentoring talented team of developers in agile environment. Work closely with product management and other stakeholders for system design and delivery.
What you will do
-
Rapidly prototype technologies, tools and components for evaluation.
-
Building IPs and Proof of Concepts for products and projects in current or future development.
-
Set roadmap for Cloud Software Engineering based on architecture and process improvements.
-
Review the architecture, High Level Design and Low-Level Design for Cloud, Web & Mobile Software.
-
Create a common understanding of solution concepts and architecture documentation and align delivery teams to be consistent with the target architecture.
-
Work with different stakeholders in defining a holistic strategy for developer experience inclusive of API protocols, definition, documentation, management, deployment, discovery and canonical models.
-
Shaping architecture for robust, reliable, scalable and high-performance applications, considering functional and technical requirements.
-
Provide inputs for the functional specifications of the components
-
Review definition and development of user experience of the product. Develop high-level product specifications with attention to system integration and feasibility.
-
Define all aspects of development from appropriate technology and workflow to coding standards.
-
Communicate successfully all concepts and guidelines to development team.
-
Oversee progress of development team to ensure consistency with initial design.
-
Provide technical guidance and coaching to developers and engineers
-
Review architectural soundness and approve final product before launch
-
Strong experience with Agile project management aspects. Good Exposure to TDD and BDD based development methodologies with strong focus on CI/CD.
-
Strong programming knowledge in a combination of Java, Ruby on Rails, JavaScript, AWS technologies, web frameworks/ technologies and mobile frameworks/technologies. Familiarity with HTML/CSS, JavaScript and UI/UX design.
-
Knowledge of data analytics and machine learning is a plus.
-
Good knowledge in version control and branching concepts (git).
-
Strong documentation, presentation and communication skills.
-
Ability to influence various stakeholders on technical proposals.
-
Prior experience with use of JIRA, Confluence and collaboration tools.
Who you are and what you bring
-
B.E/B.Tech in Computer Science or Equivalent
-
8+ years of solid software development experience in building secure, scalable and resilient systems.
-
Proven experience in software design
-
Hands-on person with a strong developer mindset
-
Strong technology vision understanding tools, languages, libraries, frameworks etc.
-
Strong Polyglot programmer with experience in multiple languages
-
Ability to learn new language/paradigms/technologies quickly
-
Excellent knowledge of software/application design and architecture of Web and Mobile apps.
-
Proven experience in working with AWS (preferable) or GCP or Azure.
-
Strong understanding of monitoring and logging tools
-
Strong understanding of software design principles (SOLID, design patterns etc.)
-
Strong understanding of SOA and enterprise integration patterns.
-
Strong understanding of Functional or OOP patterns.
-
Experience in Web and Mobile software development and coding in various languages (Ruby on Rails.
-
Understanding of software quality assurance and security principles
-
A technical mindset with great attention to details.
-
Agile Software Development experience with Kanban/Scrum, TDD/BDD and CI methodologies
-
High quality organizational and leadership skills
-
Outstanding communication (verbal, written) and presentation abilities
-
Positive team player attitude with conflict management and influencing skills.
-
Experience mentoring team members and/or leading teams
-
Exposure or knowledge in Renewable Tech companies
-
Familiar with working with any embedded or telecom or hardware product is desirable
-
Ability to work on a fast-paced environment