Embedded Software Engineer
Join a core R&D team developing embedded software for an autonomous robotics platform. Work across microcontroller firmware and Embedded Linux applications, building robot logic and communications and integrating software on target hardware.
Responsibilities
- Develop, debug, and maintain bare-metal or RTOS MCU firmware and Embedded Linux user-space applications.
- Implement robot state machines, system logic, and behavioral execution.
- Design and implement reliable communication protocols between MCUs and the Linux host board.
- Integrate software on physical target hardware and diagnose and resolve system-level issues.
Requirements
- At least 5 years of hands-on embedded development experience in C and C++.
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- Practical experience developing and debugging software for MCU environments such as STM32, ESP32, or Cortex-M with RTOS, and/or Embedded Linux user-space.
- Ability to quickly understand complex existing codebases and architecture.
- Strong code quality and ownership, with a track record of delivering reliable software on schedule.
- Ability to collaborate with systems engineering, hardware, and integration teams.
Nice to have
- Experience with ROS or ROS 2.
- Familiarity with CAN bus, UART, SPI, I2C, gdb, Wireshark, or candump.
- Python scripting for internal test automation.