Embedded Software Engineer - Intern (E)

University Austin, Texas Petaluma, California Fremont, California


Position at Enphase Energy

At Enphase, we think big. We’re on a mission to bring solar energy to the next level, one where it’s ready to meet the energy demands of an entire globe. As we work towards our vision for a solar-powered planet, we need visionary and talented recent graduates to join our team as Embedded Software Engineer Interns.

Our engineers are responsible for firmware development for Enphase’s microgrid products, including inverters and gateway products. They create intellectual property and demonstrate it with prototype designs, and transition work from conception to engineering to production, all while collaborating with multi-national teams spanning across California, Texas, India, and New Zealand.

We are a values driven company and we are committed to innovation, quality and responsibility. If these are your values, too, you could be the next to join us on our quest for a more sustainable planet.


Design and implement embedded software for microcontroller systems running with Linux or a real-time OS.

Debug and troubleshoot issues in complex systems.

Own and carry a design task from concept to implementation.

Document engineering requirements, document solutions, and test new firmware designs.

Work with cross functional teams to test and troubleshoot issues.

Minimum Qualifications

Pursuing a BS, MS, or Ph.D. in electrical engineering, computer engineering, computer science, or related field

Solid CS fundamentals with a strong understanding of data structures and algorithms.

Strong understanding of C/C++ programming concepts, and operating systems concepts.

Experience in scripting languages like Python, Ruby, Lua, etc.

Experience in Git, Jira and Confluence

Experience in hands-on design, development and de-bugging

Understanding of the Software Development Life Cycle including Agile methodology

Self-motivated with the ability to work independently

What would make you stand out?

Experience with embedded software development for systems with Linux OS or multi-threaded RTOS.

Exposure to ARM based microcontroller systems

Desire to perform test-driven development and develop compilation-time unit-tests.

Familiarity with development tools such as GCC, GDB, Eclipse, GNU Make, etc.

Integration of communication protocols, such as Zigbee, Bluetooth, BLE, WiFi, and power line communication

Basic knowledge of Solar, energy storage, and microgrid products

Basic EE skills