Company Generac Power Systems
Name Firmware Engineer II - Clean Energy
Req # 65252
Employment Type Full Time
Shift 1st
Generac Clean Energy is looking for a motivated Firmware Engineer with insatiable curiosity to help create next generation energy storage products. The successful applicant will join a team of highly knowledgeable and collaborative engineers. You will have the opportunity to solve challenging problems that unlock residential PV and energy storage systems at mass scale.
Generac Clean Energy combines the speed and excitement of a technology startup with the resources and market power of an S&P 500 industry leader. Our careers offer boundless opportunity for growth for energetic, mission-driven applicants who seek challenge and impact in a fast-paced culture of teaching, learning.
Essential Duties & Responsibilities:
- Design and implement algorithms and state machines to control the operation of an energy-storage system under real-time constraints.
- Develop, enhance and debug new and existing real-time firmware in C. Deliver high-quality, robust code in a real-time embedded environment.
- Design safety rated firmware to meet UL1998 or related standards.
- Apply industry best practices to deliver simple, high-quality firmware that is well tested, documented and meets requirements.
- Write automated tests and integrate them into a continuous integration environment.
- Perform hands-on board bring-up, system integration and performance validation work.
- Coach junior engineers and interns, perform code reviews and help improve the development process.
- Participate in functional safety architecture and processes including FMEA driven development for adherence and validation to meet functional safety standards.
- Develop embedded firmware for IoT gateways
Minimum Qualifications
- BS in Electrical Engineering, Computer Science, or related field; MS preferred.
- 2 years of engineering experience with demonstrated expertise in firmware development and device communication. Prior experience in power electronics, or battery product development is a plus.
- Knowledge of C programming language, embedded systems, RTOS and microcontroller HW and protocols (such as SPI communication, DMA). Familiarity with Python, pytest and git is highly desirable.
- Familiar with electrical test equipment like oscilloscopes, meters, power supplies, grid simulators.
- Experience with CANbus, DBC file management and CANbus tools like cantools, PCAN Explorer, Vector Canalyzer or CANApe is desired.
- Excellent software fundamentals including architectural design, algorithm development, data structures, code modularity, and maintainability
- Experience with test driven development, experience using unit testing, SIL, or HIL is highly desirable. Our developers participate significantly in firmware testing, so a validation mindset is required.
- Ability to collaborate and communicate complex technical concepts.
Physical demands
While performing the duties of this job, the employee is regularly required to talk and hear; and use hands to manipulate objects or controls. The employee is regularly required to stand and walk. On occasion the incumbent may be required to stoop, bend or reach above the shoulders. The employee must occasionally lift loads as large as 25 pounds. Specific conditions of this job include actions typical of frequent and continuous computer-based work requiring periods of sitting, close vision and ability to adjust focus. This position will require occasional travel.
“We are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status, or any other characteristic protected by law.”