Staff Firmware Engineer

Software Engineering Bangalore, India


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:

This position is within our Firmware Engineering group, where you will work with a small team to develop fully functional prototypes to demonstrate new advanced operation and control for autonomous grid connection, management and regulation.


What you will do:

  • Defining and developing new functional concepts for microinverter system and sub system.
  • Designing and implementing embedded firmware for real-time operation and control.
  • Simulating new algorithms for autonomous microgrid power flow management.
  • Developing unit and system test software.
  • Validating algorithms using system simulation tools.
  • Working with hardware engineers to test and troubleshoot prototype designs.
  • Firmware testing.


Who you are and what you bring:

  • BS/MS Electrical Engineering and/or Power Electronics/Power Systems.
  • Bachelors with 8+ years / Masters with 6+ years of experience in firmware design and development for any electrical / power electronics products and systems.
  • Expertise in C, C++ and Assembly for real-time applications.
  • Able to understand and implement digital signal processing (DSP) concepts in a microprocessor environment.
  • Familiarity with evaluating CPU versus hardware processing requirements and trade-offs for cost-effective designs.
  • Ability to troubleshoot firmware related issues within complex systems.
  • Ability to test code and hardware both with and without external test equipment such as oscilloscopes, power meters, etc.
  • Familiarity with software development processes. E.g., Agile, Structured, Object Oriented, etc.
  • Familiarity with development tools such as GCC, GDB, Eclipse, GNU Make, etc.
  • Familiarity with software code management tools such as GIT, Mercurial, etc.
  • Ability to carry a design task from concept to implementation.
  • Ability to document engineering requirements, document solutions, and test new firmware designs.