Sr. Embedded Software Engineer
About the role
This role focuses on designing and delivering robust, efficient, and scalable embedded software for microcontroller-based control systems used in residential and power products. The Embedded Software Engineer works closely with hardware, software, and product teams to develop embedded solutions running on real-time and embedded operating systems, contributing throughout the full development lifecycle from architecture and implementation to testing and sustaining engineering.
Responsibilities
- Design, develop, and maintain embedded software for microcontroller-based systems using C and C++ on platforms such as QNX, RTX, ZephyrOS, and similar operating systems.
- Collaborate with cross-functional teams, including hardware, software, and product stakeholders, to define software requirements and system architecture.
- Own and develop elements of embedded software using layered architectures and embedded operating systems, ensuring scalability and maintainability.
- Plan and oversee unit testing, integration testing, regression testing, and system validation to ensure software reliability, performance, and testability.
- Develop networking implementations and application code for wireless processors supporting Wi-Fi, Bluetooth, and ISM bands within embedded systems.
- Implement and support industry-standard communication protocols such as RS-485 (Modbus), SAE J1939 CAN, Ethernet, and USB within embedded applications.
- Conduct code reviews, follow release processes, and contribute to continuous improvement of development workflows and engineering practices.
- Support hardware troubleshooting and board bring-up during product development and testing, working closely with hardware and circuit design teams.
- Document software design, architecture, interfaces, and implementation details to ensure clarity, traceability, and ease of maintenance.
- Use industry-standard software diagnostic tools, including emulators, debuggers, and oscilloscopes, to debug and verify controller software at the unit level.
- Develop custom diagnostic software when needed to validate specialized features or functions in embedded controllers.
- Technically lead the breakdown of software scopes of work, and help develop project timelines and budgets for embedded software deliverables.
- Mentor less experienced team members in core embedded software development practices, coding standards, and debugging techniques.
- Participate in and support release processes, including walking through workflow and process steps to ensure high-quality software delivery.
- Contribute to both sustaining engineering activities and new product development initiatives within an IoT and cloud-connected environment.
Requirements
- Bachelor of Science degree in Electrical and Computer Engineering or Computer Engineering required.
- 6+ years of work experience in embedded software development.
- Strong embedded systems knowledge and experience working closely with hardware and circuits in a co-design environment.
- Experience developing embedded software using layered architectures and embedded operating systems, including RTOS platforms.
- Proficiency in C and C++ programming languages, including syntax, generally accepted code structure, and object-oriented programming.
- Hands-on experience with industry-standard communication protocols such as RS-485 (Modbus), SAE J1939 CAN, Ethernet, and USB.
- Experience designing software for test, including unit testing, regression testing, board bring-up, and end-of-line production testing.
- Experience with embedded C and C++ for microcontroller-based systems, including CAN-based communication.
- Familiarity with release processes, code reviews, and structured development workflows.
Qualifications
- Master’s degree in Electrical and Computer Engineering, Computer Engineering, or a related field is preferred.
- Familiarity with CAN analysis tools such as Vector CANalyzer, CANape, and CANoe.
- Familiarity with debuggers and emulators for ARM-based processors.
- Familiarity with wireless certification requirements for Wi-Fi, Bluetooth, and ISM bands, and experience navigating the certification process.
- Experience with wireless and networking features in embedded systems is a plus.
- Familiarity with MATLAB/Simulink model-based code development and integration.
- Experience working with cloud-connected and IoT systems.
- Strong communication skills with the ability to convey complex technical concepts to diverse audiences.
- High level of motivation with the ability to collaborate effectively in a team environment and work independently to achieve results.
- Preference for candidates with primary programming experience in C, with C++ as an additional strength.
Pay and Benefits
The pay range for this position is $98900.00 - $125600.00/yr. Comprehensive coverage includes medical, dental, and vision plans, plus life insurance and retirement options to support your long-term well-being.
Workplace Type
This is a hybrid position in Sheboygan, WI.
Application Deadline
This position is anticipated to close on Jul 17, 2026.