Software Engineer, Autonomy Behaviors

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

Software Engineer to develop autonomous behaviors for humanoid robots, working on algorithms, simulation, and deployment in real-world applications. Requires strong robotics fundamentals, C++, and Python.

What you'd actually do

  1. Design, implement, test, and deploy autonomous behaviors for humanoid robots
  2. Prototype autonomous behaviors in simulation and execute on robot hardware
  3. Develop algorithms robust to environmental uncertainty and imperfect state estimation
  4. Implement performance tests for evaluating the reliability of robot behaviors
  5. Contribute to the software architecture and design of the autonomy stack

Skills

Required

  • modern C++
  • Python
  • robotics fundamentals
  • kinematics
  • dynamics
  • sensing
  • control
  • simulation tools (Isaac Sim, Mujoco, Drake, Gazebo)
  • automated testing for simulation
  • debugging skills
  • behavior trees
  • finite state machines

Nice to have

  • humanoid robots
  • machine learning for grasp planning
  • object manipulation
  • classical robotics motion planning
  • trajectory optimization algorithms
  • MS or Ph.D. in robotics, computer science, or related field
  • publications in RSS, ICRA, IROS

What the JD emphasized

  • Industry experience deploying mobile manipulation robots in real world applications
  • Experience developing manipulation algorithms on high-DOF robots
  • Experience with perception and scene understanding especially as it pertains to manipulation
  • Strong robotics fundamentals, including kinematics, dynamics, sensing, and control
  • Experience using simulation tools such as Isaac Sim / Mujoco / Drake / gazebo or similar
  • Experience with automated testing for simulation
  • Strong debugging skills; the ability to identify and diagnose complex issues that arise within robotics
  • Strong software experience in modern C++ and Python

Other signals

  • develop autonomous behaviors for humanoid robots
  • prototype autonomous behaviors in simulation and execute on robot hardware
  • develop algorithms robust to environmental uncertainty and imperfect state estimation
  • implement performance tests for evaluating the reliability of robot behaviors
  • contribute to the software architecture and design of the autonomy stack