Senior Software Engineer, Hardware Interface

Agility Robotics Agility Robotics · Robotics · Fremont +2 · Software Engineering

Senior Software Engineer focused on the low-level software stack for humanoid robots, interfacing with OS drivers and hardware for control, diagnostics, and safety. Requires strong C++ skills and experience with hardware-in-the-loop systems.

What you'd actually do

  1. Contribute to the C++ software stack that powers our robots, interfacing with OS drivers and hardware to enable high-bandwidth, low-latency control
  2. Work with cross-disciplinary teams to solve complex problems dealing with the integration of software and hardware
  3. Debug complex cross-domain problems and integrate learned failure modes into improved diagnostics and error reporting
  4. Integrate diverse computing systems through a variety of communication media: such as Wifi, networking, serial, industrial fieldbus
  5. Write performant, well-tested, maintainable, and well-documented C++ software

Skills

Required

  • Modern C++ (17, 20)
  • Linux systems
  • Hardware-in-the-loop systems
  • Cross-domain debugging (electro-mechanical systems)
  • Technical communication

Nice to have

  • Automation fieldbuses (EtherCAT, CAN, Profinet)
  • Real-time or low-latency systems
  • Embedded systems C++
  • Electronic circuit debugging tools
  • Brushless electric motors and motor control
  • Networking protocols and configuration
  • Python 3.6+
  • Agile and software development processes (Jira, Git, CI/CD)

What the JD emphasized

  • MS in robotics, computer science, or related field with 2-3 years industry experience (or BS with 5+ years industry experience)
  • Skilled at writing modern C++ (17, 20)
  • Experience writing and debugging software for hardware-in-the-loop systems
  • Experience debugging cross-domain (i.e. electrical, mechanical and software) problems with electro-mechanical systems
  • Experience with implementation of automation fieldbuses such as EtherCAT, CAN, Profinet, etc. EtherCAT is highly desirable
  • Experience developing real-time or low-latency systems
  • Experience writing C++ code for embedded systems