> Markdown version of [/jobs/ext/1197836-firmware-engineer-ii](https://www.wearedevelopers.com/jobs/ext/1197836-firmware-engineer-ii). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Firmware Engineer II - **Company:** GENERAC POWER SYSTEMS INC - **Location:** South Portland, ME, United States - **Experience:** Experienced - **Contract:** Permanent contract - **Skills:** Clean Code Principles, Algorithm Design, Unit Testing, Computer Engineering, Data Structures, Software Debugging, Firmware, System Testing, Multithreading, Test-Driven Development (TDD), Software in the Loop, Information Technology - **Published:** July 7, 2026 - **Apply:** https://www.juju.com/job/00000000gembo2 ## About the Role + Bachelor of Science in Electrical Engineering, Computer Engineering, Computer Science, Mathematics, Physics or related degree + 2 years of experience with embedded programming using languages such as C and or C+ **Knowledge / Skills / Abilities** + Fluency with switch mode power electronics including inverters, DC-DC converters, power management, power conversion and control + Excellent software fundamentals, including architectural design, algorithm development, data structures, code modularity, and debugging multi-threaded code. + 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. ## Description The Firmware Engineer II is responsible for providing firmware for embedded controls systems used in new product development, new or enhancements to system features, and existing product firmware support where needed. This role will be specifically involved in helping the design and development of new controls or algorithms, and system testing both in the lab and on real products. Located out of our wonderful S. Portland ME office, you will work with a great team of engineers and other professionals who support the clean energy products. Major Responsibilities: + Drive power conversion and energy storage firmware design. + 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, including power electronics control. + 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 using a combination of simulation, HIL and lab stages + Debug to ensure high quality of product in manufacturing, test and field + Occasional Travel to other Generac facilities and customer site visits as necessary + Other duties as assigned ## Related Videos - [How To Test A Ball of Mud](https://www.wearedevelopers.com/videos/173-how-to-test-a-ball-of-mud) - [Playing Pong on a shoulder press machine](https://www.wearedevelopers.com/videos/100140-playing-pong-on-a-shoulder-press-machine) - [Are you still programming unit tests or already generating?](https://www.wearedevelopers.com/videos/722-are-you-still-programming-unit-tests-or-already-generating) - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [How to TDD in legacy code](https://www.wearedevelopers.com/videos/309-how-to-tdd-in-legacy-code) - [Building a hypercar from scratch](https://www.wearedevelopers.com/videos/607-building-a-hypercar-from-scratch) ## Related Articles - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [7 Important Tips That Every Software Developer Should Know](https://www.wearedevelopers.com/magazine/101-7-important-tips-that-every-software-developer-should-know) - [Where to Find Entry-Level Software Engineering Jobs](https://www.wearedevelopers.com/magazine/397-where-to-find-entry-level-software-engineering-jobs) - [What’s the Difference between a Junior, Mid, and Senior Developer?](https://www.wearedevelopers.com/magazine/238-what-s-the-difference-between-a-junior-mid-and-senior-developer) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard) - [The Best Software Developer Blogs to Read](https://www.wearedevelopers.com/magazine/156-the-best-software-developer-blogs-to-read)