Embedded Software Engineer
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