Senior Software Engineer, Onboard Autonomy

Nuro Nuro · Robotics · CA · Autonomy

Senior Software Engineer focused on onboard autonomy for self-driving vehicles. The role involves developing, integrating, and deploying real-time decision-making software on embedded systems, optimizing for performance and safety constraints, and ensuring robust on-robot integration and observability. Requires strong C++/Rust skills and experience shipping on-device software with real-world constraints.

What you'd actually do

  1. Develop, integrate, and deploy onboard autonomy behaviors (e.g., navigation, obstacle avoidance, lane/route following, docking, interaction behaviors).
  2. Implement and maintain real-time decision-making components: behavior planning, state machines/behavior trees, local planning, and control interfaces.
  3. Build robust sensor-driven autonomy pipelines on-device (camera, lidar, radar, IMU, wheel odometry, GNSS), including synchronization, calibration hooks, and fault handling.
  4. Optimize autonomy performance for latency, CPU/GPU usage, memory, and power on embedded compute (e.g., NVIDIA Jetson, x86 edge boxes, custom ECUs).
  5. Design and implement safety and fallback strategies: health monitoring, degraded modes, watchdogs, safe-stop, and redundancy-aware logic.

Skills

Required

  • Strong software engineering skills in C++ and/or Rust
  • 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
  • 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, flamegraphs, profiling GPU workloads, log/trace analysis)
  • Strong testing discipline: unit/integration tests, simulation/HIL concepts, and safe rollout practices for autonomy

Nice to have

  • Experience with behavior trees (e.g., BehaviorTree.CPP), hierarchical state machines, or mission/task planning.
  • Practical experience with local planners (trajectory rollout, MPC, sampling-based methods) and real-time control loops.
  • Sensor fusion experience (EKF/UKF), time sync, calibration, and handling intermittent sensors.
  • Experience with mapping and localization stacks (scan matching, visual-inertial odometry, SLAM, map-based localization).
  • Familiarity with safety standards/processes (e.g., ISO 26262 concepts, FMEA, hazard analysis) depending on domain.
  • Experience deploying autonomy to fleets: OTA updates, versioning, configuration management, and field telemetry.
  • Experience in inference optimization

What the JD emphasized

  • shipping software that runs on-device with real-world constraints
  • real-time decision-making components
  • Optimize autonomy performance for latency, CPU/GPU usage, memory, and power on embedded compute
  • safety and fallback strategies
  • on-robot integration
  • onboard observability

Other signals

  • shipping real-time decision-making components
  • optimizing autonomy performance for latency, CPU/GPU usage, memory, and power on embedded compute
  • design and implement safety and fallback strategies
  • own the autonomy stack’s on-robot integration
  • improve onboard observability