Building artificial intelligence that enables service robots to collaborate with people and adapt to dynamic human environments at the company
Requirements
- Strong proficiency in C and C++ for embedded programming.
- Hands-on experience developing firmware and device drivers for sensors, actuators, and compute peripherals.
- Experience with real-time operating systems (RTOS) or Linux kernel/driver development.
- Familiarity with low-level communication protocols (SPI, I2C, CAN, UART, Ethernet, USB).
- Track record of shipping embedded software on robotics, autonomous systems, or other safety-critical hardware platforms.
- Ability to debug hardware/software issues using tools like oscilloscopes, logic analyzers, and protocol analyzers.
Responsibilities
- Design, implement, and maintain embedded software and firmware for sensors, actuators, power units, and communication devices.
- Develop device drivers, board support packages, and OS-level integration for primary and peripheral compute platforms.
- Work with a variety of sensors and actuators including motors, IMUs, cameras, LIDARs, depth sensors, and communication modules.
- Implement low-level control and communication protocols (e.g., SPI, I2C, CAN, UART, Ethernet, USB).
- Collaborate with robotics software, perception, and platform teams to integrate hardware drivers into the broader robotics stack.
- Optimize embedded code for performance, reliability, and power efficiency.
- Debug hardware/software interactions, including timing, synchronization, and electrical interface issues.
Other
- 5+ years of experience in embedded systems development (or equivalent with graduate work in robotics/embedded systems).