Nuro logo
Nuro Verified
Autonomous Vehicles, Robotics, AI, Logistics, Last-mile Delivery

Senior Software Engineer, Nuro Driver Core Software

Mountain ViewOnsiteFull TimeSenior$193,930–$291,150 /yrPosted 2 days ago

Is this role right for you?

Upload your resume and get a skill-by-skill breakdown — see exactly where you match, where you're close, and what to highlight. Not a mystery percentage.

Get a tailored resume highlighting what this role needs.

Required skills

  • C++
  • Linux
  • concurrency
  • memory management
  • inter-process communication
  • performance
  • failure handling
  • production debugging
  • observability
  • verification

Nice to have

  • autonomous vehicles
  • robotics
  • embedded systems
  • real-time systems
  • safety-critical domain
  • deterministic simulation

Role summary

Nuro is seeking a Senior Software Engineer to enhance the structure and production behavior of its onboard Nuro Driver software. This role involves leading cross-module workstreams and architecture pilots, focusing on application-level designs, module boundaries, dependency contracts, testability, and resource constraints. The engineer will design for failure handling, evaluate module decomposition, modernize C++ implementations, and assess system impacts. Responsibilities include writing architecture proposals, conducting code reviews, and partnering with various teams. The ideal candidate has strong C++ and Linux systems fundamentals, significant experience in production C++ software, and a proven ability to lead ambiguous systems-software projects. Experience in autonomous vehicles, robotics, or safety-critical domains is a plus.

Who We Are

Nuro believes self-driving vehicles are the most immediate and profound opportunity for AI to drive positive change in the physical world. Safer streets, more time for what matters, and easier access to the world around us, that’s why we’re building a universal autonomy platform: self-driving for all roads and all rides.Founded in 2016, Nuro is a physical AI company developing Level 4 autonomous driving technology for a wide range of vehicles, use cases, and markets. Powered by the Nuro Driver™, our universal autonomy platform enables the global mobility ecosystem to deploy autonomy at scale, from robotaxis and logistics fleets to personal vehicles.With years of real-world deployment experience and a flexible, partner-led business model, Nuro is working toward a future where millions of autonomous vehicles powered by our technology help make everyday life safer, easier, and more connected.Nuro has raised over $2B in capital from Uber, NVIDIA, Google, Softbank, Fidelity, T. Rowe Price, and other leading investors.

About the TeamNuro Driver Core Software Engineering works across onboard software robustness, efficiency, and software architecture and verification. The team has three pillars: A, Nuro Driver Module Robustness; B, Nuro Driver Module Efficiency; and C, Software Architecture and Verification. The application-software scope includes autonomy and supporting onboard modules.

About the RoleWe are looking for a senior C++ software engineer to improve the structure and production behavior of onboard Nuro Driver software. You will work with module owners and infrastructure partners on application-level designs, with particular attention to module boundaries, dependency contracts, testability, and resource constraints. The role is hands-on and does not require sole architectural authority over the stack.

About the Work

  • Lead a prioritized cross-module workstream and related architecture pilot from problem definition through implementation, rollout, and measurement.
  • Design explicit application behavior for dependency failures, stale data, lifecycle transitions, restart, fault containment, and safe degradation with the relevant owners.
  • Evaluate module decomposition, interfaces, and dependency structure. Simplify unnecessary distribution and modernize C++ implementations using supported runtime frameworks.
  • Assess compute, memory, data-flow, and scheduling impacts of application changes with Middleware/Performance; translate agreed constraints into component-level targets.
  • Design components for meaningful tests, deterministic replay, and simulation. Partner with the existing engineers on input capture, configuration, timing, state initialization, regression tests, and fidelity gaps.
  • Write architecture proposals with alternatives, ownership, resource impact, test strategy, and migration plans; drive joint review with module owners, Fleet Infra, Onboard Performance, Simulation, Systems, and Safety.
  • Review new or materially changed module boundaries and interfaces, provide rigorous code reviews, and drive adoption of agreed engineering patterns.
  • Use AI-assisted development tools where appropriate while remaining accountable for design quality, behavioral correctness, testing, and production readiness.
  • About You

  • Strong modern C++ and Linux systems fundamentals, including concurrency, memory management, inter-process communication, performance, and failure handling.
  • Significant experience developing and maintaining production C++ software in a large codebase.
  • Experience independently leading ambiguous systems-software projects from initial design through cross-team adoption and measurable production impact.
  • Sound judgment about module decomposition, interface contracts, failure boundaries, testability, and resource partitioning, including when an additional process boundary is justified.
  • Strong production debugging, testing, observability, and verification discipline.
  • Effective written and verbal communication, with demonstrated ability to build stakeholder alignment and provide high-quality design and code reviews.
  • 5+ years of relevant production software-engineering experience, or equivalent demonstrated scope and impact.
  • Demonstrated ownership of a substantial component architecture, modernization, or cross-team software project through implementation and adoption.
  • Experience diagnosing and resolving complex reliability or performance issues in Linux-based systems.
  • Bachelor’s degree in Computer Science, Engineering, or a related field, or equivalent practical experience.
  • Bonus Points

  • Experience with autonomous vehicles, robotics, embedded systems, real-time systems, or another safety-critical domain.
  • Experience with deterministic simulation or replay, fault injection, fuzzing, or behavior-preserving validation.
  • Experience profiling and optimizing CPU usage, memory allocation, lock contention, latency, or cache behavior.
  • Familiarity with publish/subscribe systems, protobuf contracts, module lifecycle frameworks, and resource-aware decomposition on constrained platforms.
  • Experience with Clang tooling, static analysis, sanitizers, Bazel, or C++ library/toolchain development.
  • Experience applying AI coding tools within disciplined design, testing, and review workflows.
  • At Nuro, we celebrate differences and are committed to a diverse workplace that fosters inclusion and psychological safety for all employees. Nuro is proud to be an equal opportunity employer and expressly prohibits any form of workplace discrimination based on race, color, religion, gender, sexual orientation, gender identity or expression, national origin, age, genetic information, disability, veteran status, or any other legally protected characteristics. At Nuro, your base pay is one part of your total compensation package. For this position, the reasonably expected pay range is between $193,930 and $291,150/year for the level at which this job has been scoped. Your base pay will depend on several factors, including your experience, qualifications, education, location, and skills. In the event that you are considered for a different level, a higher or lower pay range would apply. This position is also eligible for an annual performance bonus, equity, and a competitive benefits package. #LI-DNP

    Sample Nuro interview questions

    • 1

      Build a service discovery mechanism for distributed systems.

      system designmedium
    • 2

      Maximum Depth of an N-ary Tree Find the maximum depth of an N-ary tree. Input: root = [1,null,2,null,3,null,4] Output: 4 Explanation: The tree is essentially a straight line, requiring a traversal that reaches a maximum depth of 4 layers.

      codingmedium
    • 3

      Merge Overlapping Intervals Merge overlapping intervals in an array. Input: intervals = [[1,4],[4,5]] Output: [[1,5]] Explanation: The intervals touch exactly at the 4 mark, so they are successfully merged into a single continuous interval.

      codingmedium
    • 4

      Lowest Common Ancestor on an N-ary Tree Find the lowest common ancestor on an N-ary tree. Input: root = [1,null,2,3,4], p = 2, q = 3 Output: 1 Explanation: Both nodes 2 and 3 are direct children of the root node 1, making 1 the lowest common ancestor.

      codingmedium
    • 5

      Split Array into Consecutive Subsequences Split an array into consecutive subsequences. Input: nums = [1,2,3,4,4,5] Output: FALSE Explanation: The numbers can form [1,2,3,4], but the remaining leftover group [4,5] is too short to form a valid sequence of length 3.

      codingmedium

    Get started to unlock a personalized interview prep pack for this role.

    Ready to apply?
    You'll be redirected to Nuro's application page.

    Similar roles

    See how RiseMe works

    Match, tailor, and prep so you send fewer applications and land more interviews.