Who We Are
Nuro is a self-driving technology company on a mission to make autonomy accessible to all. Founded in 2016, Nuro is building the world’s most scalable driver, combining cutting-edge AI with automotive-grade hardware. Nuro licenses its core technology, the Nuro Driver™, to support a wide range of applications, from robotaxis and commercial fleets to personally owned vehicles. With technology proven over years of self-driving deployments, Nuro gives the automakers and mobility platforms a clear path to AVs at commercial scale—empowering a safer, richer, and more connected future.
About the Role
We’re looking for an Autonomy Engineer focused on onboard autonomy—the software that runs on the robot/vehicle/embedded computer and makes real-time decisions using onboard sensors and compute. You’ll build and ship reliable autonomy features that operate under tight latency, compute, and safety constraints in the real world.
What You’ll Do
- Develop, integrate, and deploy onboard autonomy behaviors (e.g., navigation, obstacle avoidance, lane/route following, docking, interaction behaviors).
- Implement and maintain real-time decision-making components: behavior planning, state machines/behavior trees, local planning, and control interfaces.
- Build robust sensor-driven autonomy pipelines on-device (camera, lidar, radar, IMU, wheel odometry, GNSS), including synchronization, calibration hooks, and fault handling.
- Optimize autonomy performance for latency, CPU/GPU usage, memory, and power on embedded compute (e.g., NVIDIA Jetson, x86 edge boxes, custom ECUs).
- Design and implement safety and fallback strategies: health monitoring, degraded modes, watchdogs, safe-stop, and redundancy-aware logic.
- Own the autonomy stack’s on-robot integration: bring-up, debugging, profiling, logging, and release validation on real hardware.
- Improve onboard observability: structured logs, traces, metrics, event recording, and tools to support incident review and rapid iteration.
- Collaborate with perception, mapping/localization, controls, hardware, and systems teams to define clear interfaces and ship end-to-end features.
- Participate in field testing and root-cause analysis of autonomy issues seen in real deployments.
Required Experience
- Strong software engineering skills in C++ and/or Rust (Python acceptable as a supporting language).
- Experience shipping software that runs on-device with real-world constraints (embedded Linux, real-time-ish systems, performance-sensitive code).
- Understanding of autonomy fundamentals: planning, state estimation/localization, controls, and how they interface (you don’t need to be an expert in all).
- Experience with robotics middleware and tooling (commonly ROS/ROS 2, custom pub/sub frameworks, gRPC, DDS, etc.).
- Proficiency with debugging and performance tools (e.g., gdb/lldb, perf, flamegr