Company Generac Power Systems
Name Firmware Engineer II
Req # 64209
Employment Type Full Time
Shift 1st
- Develop, enhance and debug new and existing real-time firmware in C. Deliver high-quality code in a real-time embedded environment.
- Design and implement functionality and behaviors of embedded subsystems.
- Drive firmware development for performance, scalability, robustness, and tight integration with the hardware.
- Design safety rated firmware to meet UL1998 or related standards.
- Hands-on hardware bring up, build and execute component validation to deliver robust, functional code.
- BS in Engineering, Computer Science, Mathematics, Physics or proof of exceptional skills in related fields with practical firmware engineering experience.
- At least 2 years of relevant work experience
- Capable of delivering top-quality 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. Experience with communication interfaces on embedded systems such as RS-485, CAN, SPI, I2C is desired.
- Experience with test-driven development using unit testing, software in the loop, or hardware in the loop methodologies. Our developers participate significantly in firmware testing, so a validation mindset is required.
- Familiarity with electrical test tools like scopes, meters, and power supplies.
- Desired to have experience developing time-critical code using ADC, PWM for power controls, and battery management.
- Desired to have experience in the development of embedded software compliant with formal safety certification processes such as UL1998 or similar.
- Desired to have Python experience for supporting tools and data analysis.
- Familiarity with a Unix environment.
- Proficient in standard source control tools like Git.
- Remain engaged, proactive, and positive when taking on challenging tasks, owning assignments, and taking accountability for personal and overall team success.
- Ability to collaborate and communicate complex technical concepts.