SOFTWARE ENGINEER, EMBEDDED
Job type: Full Time · Department: Engineering (R&D) · Work type: On-Site
Singapore, Singapore
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.
Autofill from resume
Save time by uploading your resume in PDF or DOCX format