Job Description
We are seeking a motivated and talented Embedded Systems Engineer to join our core technology team. This role is fundamental to our mission, placing you at the critical intersection of hardware and software. You will be responsible for developing, testing, and debugging the low-level firmware that runs on our robots' computing units, making our innovative designs come to life. If you are passionate about writing efficient C++ code and want to see your work power a real-world fleet of autonomous robots, this is the perfect opportunity to start and grow your career. You will be at the heart of our robots, working directly with the hardware. Your focus will be on designing, writing, testing, and debugging the low-level code that brings our machines to life.
What you’ll be doing
- Write and debug low-level C++ code for the microprocessors and microcontrollers at the core of our robots.
- Assist in bringing up and testing new PCBAs, sensors, and communication interfaces.
- Implement firmware for peripherals like cameras and actuators, ensuring they function correctly and efficiently.
- Develop and run tests to validate firmware functionality on real robotic hardware.
- Collaborate with the hardware and software teams to understand system requirements and contribute to the development process.
- Participate actively in code reviews to both learn from senior engineers and improve the quality of our codebase.
- Help create and maintain clear technical documentation for the firmware you develop.
What you must have
- A Bachelor’s degree or higher in Computer Science, Computer Engineering, Electrical Engineering, Robotics, or a related technical field.
- Strong foundational programming skills in C++, with a clear focus on embedded and low-level systems.
- A solid understanding of microprocessor and microcontroller architecture (e.g., ARM Cortex-M, RISC).
- Familiarity with common microcontroller peripherals (UART, SPI, I2C) and communication protocols like CAN.
- The ability to read electrical schematics and understand how software interacts with electronic circuits.
- Hands-on experience debugging embedded systems using tools like oscilloscopes, logic analyzers, and debuggers (GDB).
- A genuine passion for robotics and working at the intersection of hardware and software.
Get some bonus points
- Master’s degree in a relevant discipline.
- At least 2 years of experience in robotics, automotive, aerospace, or consumer electronics.
- Experience with ROS/ROS2.
- Personal projects involving robotics, electronics, or low-level programming.
- Familiarity with version control systems like Git.
- Experience with functional safety.
We believe the best work is done when collaborating and therefore require in-person presence in our office locations.