Primary Function : The Embedded Software Engineer will develop embedded software on a wide variety of technology platforms. Designing and developing embedded software for brand new architectures and performing sustaining engineering on legacy systems is a key component of this role. Engineering work will be focused on system control, connectivity integration, UI / UX support, communication protocols, and testing integration driven through requirements driven design as a key component for long term success. Responsibilities : Control Systems Design, implement, and maintain embedded software microprocessor-based control systems for water heating and other appliances. Implement real-time control algorithms, communication protocols (e.g., UART, SPI, I2C, CAN), and low-level drivers. Optimize code for performance, efficiency, and reliability. Ensure robustness and modularity of the software for future deployment in new products. Participate in code reviews, system testing, and validation activities. Connectivity and UI / UX Integration Design and integrate connectivity software solutions with appliances for regulatory and remote management capabilities. Integrate best practices for robust design, security, and future expandability. Experience with design and integration of Wifi / BLE Agile Software Development and Testing Develop and implement embedded software development through the Agile process with the rest of the development team. Use embedded C / C++ / Python development for implementing new features on projects. Coordinate closely with the testing team to ensure robust test coverage through CI / CD / Unit Test / HIL Cross Functional Collaboration and Mentoring Work closely with cross-functional teams, including product management and operations, to understand requirements and ensure alignment on quality goals. Mentor junior team members and contribute to a culture of continuous improvement Job Requirements : Bachelor's degree in Computer Science, Computer Engineering, or Electrical Engineering with a strong background in embedded systems software 3+ years of experience in embedded software engineering Familiarity with different microcontrollers and microprocessors (8 / 16 / 32 bit, ARM, etc) Proficiency in embedded C,C++, Python scripting, and embedded OS (ROTS, Baremetal) implementations Proficiency in control systems and architecture Experience with design for test Excellent problem-solving and debugging skills. Strong written and verbal communication skills. Familiarity with version control systems (e.g., Git, Azure DevOps) Experience in Agile or Scrum development environments Preferred Qualifications : Experience with UL60730 Class A / B / C development or equivalent regulated environments Familiarity with containerization technologies like Docker and orchestration tools such as Kubernetes Experience with integration of full test methodology (CI / CD / Unit Testing) as part of the design process Experience in appliance or product controls engineering
Embedded Software Engineer • Grand Rapids, MI, US