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! Do you want to help change the world? Learn more about the role:This position is within a team who develops fully functional prototypes from scratch to demonstrate new advanced operation and control for autonomous grid connection, management, and regulation. What you will be doing:Defining and developing new functional concepts for microinverter system and sub system.Designing and implementing firmware and embedded software 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 12+ years / Masters 8+ yearsOverall 10+ years of experience in embedded software or firmware design and development.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.