The company is looking to solve the problem of building high-quality software that has a direct impact on human health, by developing and maintaining embedded control software for automated lab instruments.
Requirements
- C++
- Continuous integration/continuous delivery for embedded
- Advanced testing frameworks
- CANopen bus
- Firmware microcontroller boards
- CI/CD pipelines
- Unit testing
Responsibilities
- Develop Embedded Control Software: Design and implement the core C++ control software that drives automated lab instruments, handling everything from device initialization to high-level coordination of subsystems to error handling.
- Orchestration & Scheduling: Develop and maintain scheduling and orchestration logic to coordinate instrument operations (e.g. sample handling, reagent dispensing, measurements) at high throughput (100+ samples/hour).
- Error Handling & Recovery: Build robust error handling and fault recovery mechanisms.
- Firmware/Hardware Integration: Interface with distributed firmware microcontroller boards over a CANopen bus (coordinating 10+ boards).
- Testing & Automation: Drive improvements in software quality by expanding integration testing and simulation.
- Lead the development of hardware simulation frameworks and automated test suites to validate instrument behavior in CI/CD pipelines.
- Champion the use of continuous integration, unit testing, and other modern DevOps practices to increase software reliability and maintainability.
Other
- Mentor junior and mid-level software engineers
- Work closely with systems engineering, assay scientists, and quality/regulatory teams
- Coordinate integration activities and troubleshooting across mechanical, electronics, and assay domains
- Provide expert technical guidance to cross-functional teams
- Some time in the lab each week is required