Overview
Senior firmware engineer role owning firmware implementation, validation and ongoing fleet improvements for connected residential home energy interconnect and control products.
What you'll do
- Develop control firmware for home interconnect and control devices.
- Contribute to firmware and system architecture across controls, communications and device connectivity, partnering closely with electronics and hardware teams.
- Develop, enhance and debug new and existing real-time firmware in C and C++.
- Deliver high-quality code in a real-time embedded environment.
- Investigate field issues on connected devices using Generac's platform and field-investigation tools to collect and analyze data, reproduce problems, determine root cause, and deliver firmware updates that resolve them across the fleet.
- Drive firmware development for performance, scalability, robustness and tight integration with the hardware.
- Perform hands-on hardware bring-up, and build and execute component validation to deliver robust, functional code.
What you'll need
- BS in Engineering, Computer Science, Mathematics, Physics, or proof of exceptional skills in related fields with practical firmware engineering experience.
- At least 5 years of relevant firmware engineering experience.
- Experience developing firmware for connected or networked embedded products, including remote diagnostics, telemetry, and over-the-air firmware updates.
- Capable of delivering top quality C/C++ code in a real-time embedded environment.
- Excellent software fundamentals including architectural design, algorithm development, data structures, code modularity and maintainability.
- Multithreaded and RTOS experience.
- Validation mindset, as developers participate significantly in firmware testing.
- Ability to collaborate and communicate complex technical concepts.
- Engaged, proactive and positive approach to challenging tasks, owning assignments, and accountability for personal and team success.
Nice to have
- Experience with communication interfaces on embedded systems such as RS-485, CAN, SPI, I2C, and cellular/wireless connectivity.
- Test driven development experience using unit testing, software in the loop, or hardware in the loop methodologies.
- Familiarity with software testing libraries including Unity and CMock.
- Familiarity with electrical test tools like scopes, meters, and power supplies.
- Experience with low-level peripherals (ADC, PWM, timers, GPIO) and time-critical control code.
- Power electronics or power conversion experience (inverters, DC-DC, power management).
- Experience in developing embedded software compliant to formal safety certification processes such as UL1998 or similar.
- Python or Rust experience for supporting tools and data analysis.
Details
Read the full description and apply on the company’s own careers page.