What We’re Looking For
We develop custom servo actuators, compute, networking, cameras, sensors, and electronics for our robots. These systems need to be performant, reliable, cost-effective, and tightly integrated with the rest of the robot.
We are looking for a firmware engineer to own embedded systems across the robot, from initial hardware bring-up through firmware development, testing, and validation. You will work directly with new board designs, read schematics, bring up peripherals, develop device drivers and firmware features, and debug problems across hardware and software.
You will work closely with electrical, mechanical, controls, and software engineers to define requirements and make sure firmware and hardware work together reliably.
Some of the problems you may work on include
- Bringing up new custom PCBs and validating processors, sensors, peripherals, and communication interfaces
- Developing device drivers and firmware features for new and existing hardware
- Debugging issues across firmware and electrical hardware
- Designing and validating communication over interfaces such as Ethernet, CAN, SPI, I2C, UART, and USB
- Characterizing, testing, and validating firmware and board designs
We love engineers who have built systems they are genuinely proud of, whether that is a shipped product, a difficult technical project, or something they built outside of work.
Required Qualifications
- 6+ years of professional firmware or device driver development experience
- Strong embedded systems and firmware fundamentals
- Strong C programming skills
- Experience developing firmware in RTOS environments
- Strong hardware bring-up experience, including reading schematics and debugging new boards
- Experience with low-level interfaces such as I2C, SPI, UART, USB, and CAN
- Comfortable debugging with JTAG/SWD, oscilloscopes, and logic analyzers
- Experience developing device drivers and working with microcontrollers and peripherals
- Strong understanding of software engineering best practices
- Ability to work effectively across electrical, mechanical, controls, and software teams
- BS or higher in Computer Science, Computer Engineering, Electrical Engineering, or a related field, or equivalent industry experience