We are seeking a talented Software Engineer to drive the development of hardware-software integration layer on our autonomous cleaning robots. The role sits at the intersection of embedded systems, robotics middleware and physical hardware. The ideal candidate will develop and maintain sensor drivers and bridge the ROS autonomy stack with the embedded control layer, ensuring reliable hardware performance across our fleet of robots.
Key Responsibilities
- Develop, test and maintain ROS-based hardware drivers for sensor suite (lidars, cameras, ToFs) and other peripherals integrated on our robot platform
- Profile driver performance and optimize for low latency and high throughput
- Debug sensor communication issues across CAN, USB, UART, I2C and SPI interfaces, ensuring reliable dataflow under real-world operating conditions.
- Design and maintain the communication bridge between ROS layer and MCU-based embedded control system
- Architect custom communication protocols between IPC and embedded controllers, with strict attention to backwards compatibility as hardware and firmware revisions evolve.
- Implement and validate CAN, Serial or custom protocol interfaces to ensure robust and reliable telemetry between the different systems.
- Own end-to-end testing pipeline for the IPC–embedded interface, including integration tests, protocol conformance checks, and regression coverage.
- Own the bootloader update pipeline, ensuring reliable, fault-tolerant firmware updates
Qualifications & Experience
- Bachelor's or Master's degree in CS, Electrical Engineering, Robotics, or a related field
- Proficient in C++ and Python development on Linux.
- Experience working with ROS1 / ROS2.
- Familiarity with embedded communication protocols (CAN, UART, I2C, SPI)
- Familiarity with STM32 or similar ARM Cortex-M microcontrollers.
- Experience with hardware debugging tools (oscilloscopes, logic analysers, JTAG/SWD).
- Strong attention to detail, with excellent problem-solving and debugging skills
- Familiarity with real-time operating systems is a bonus
- Experience with optimizing software for embedded hardware (e.g., Jetson, ARM) is a bonus
If you care about building systems that hold up in the real world, enjoy debugging problems that cross the boundary between hardware and software, and want to see your code running on robots that ship, we'd like to hear from you.