Sr Staff Engineer, Software
Enphase is seeking Embedded Software Engineers to join our engineering and technology teams. These engineers will be responsible for embedded Software development for Enphase’s microgrid products, including inverters , gateway products and EVSEs (Electrical Vehicle Supply Equipments). This engineer will create intellectual property and demonstrate it with prototype designs. This engineer will transition work from conception to engineering to production, while collaborating with teams in California, Texas, India, and New Zealand.
This position is within our Software 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. You will be working in a multi-site team and expected to interface across multiple functions.
- BE/BTech/MS/MTech in electrical engineering, computer engineering, or computer science.
- Minimum 12 years of experience in embedded software development
Technical Capabilities or Experience in many or most of the following:
- Embedded software development for systems with Linux OS or multi-threaded RTOS.
- Exposure to ARM based microcontroller systems desired.
- Experience in hands-on design, development and debugging
- Strong understanding of C/C++ programming concepts, and operating systems concepts.
- Strong understanding of data structures and algorithms.
- Desire to perform test-driven development and develop compilation-time unit-tests.
- Experience in scripting languages like Python, Ruby, Lua, etc.
- Familiarity with development tools such as GCC, GDB, Eclipse, GNU Make, etc.
- Experience in Git, Jira and Confluence desired.
Integration of communication protocols, such as CAN, Bluetooth, BLE, WiFi, and power line communication
Basic knowledge of Solar, energy storage, and microgrid products
Basic EE skills
Design and implement embedded software for microcontroller systems running with Linux or a real-time OS.
Ability to debug and troubleshoot issues in complex systems.
Ability to take full responsibility and carry a design task from concept to implementation.
Ability to document engineering requirements, document solutions, and test new firmware designs.
Working with cross functional teams to test and troubleshoot issues.
Solid understanding of the Software Development Life Cycle including Agile methodology
Self-motivated individual with the ability to work under minimal supervision