About The Role
We are seeking a Staff Firmware Engineer to plan robot firmware architecture, design subsystems, and develop robust and reliable firmware for our full line of robots. In this role, you will collaborate with a multi-discipline team of engineers to understand the unique requirements for our products and play a key role in ensuring that we have robot designs that are robust and production-ready. You will also serve as the bridge between hardware and higher level robot control algorithms by documenting interfaces and providing support to other engineers.
Location --------
This position can be based at our San Francisco Bay Area office. Regular travel to Salem, typically one week per month, will be required.
About The Work
Contribute to the C++ firmware architecture that drives our robot's low-level sensor network, controls, and power management systems.
• Develop the firmware communication layer utilizing EtherCAT and CAN • Write firmware for the hardware abstraction layer, peripheral drivers, and applications • Perform real-time hardware testing and debugging using benchtop test equipment such as logic analyzers and oscilloscopes • Work with cross-disciplinary teams to solve complex problems dealing with the integration of software and hardware • Write performant, well-tested, maintainable, and well-documented C++ code
About You
BS in computer science, electrical engineering, or related field with 10+ years industry experience
• Experience writing modern C++ (17, 20) • Experience using FreeRTOS or similar • Experience with best practices for writing performant and maintainable software • Proficiency with a Linux-based development environment • Ability to read schematics, PCB layouts, and component datasheets • Ability to verbally communicate technical information effectively
Preferred Qualifications
• Experience with implementation of automation fieldbuses such as EtherCAT, CAN, etc. (EtherCAT is highly desirable) • Experience writing embedded C++ for ARM systems • Experience developing real-time or low-latency systems • Experience designing and implementing hardware-in-the-loop (HIL) testing frameworks for embedded systems • Experience with unit testing such as with GTest and coverage analysis • Proficiency in Python (3.6+) • Familiarity with standard agile and software development processes (issue tracking tools (Jira), feature branching, version control (Git), continuous integration and deployment) • Familiarity with using AI in coding a plus