Senior Systems Software Engineer - Autonomous Vehicles

NVIDIA NVIDIA · Semiconductors · Santa Clara, CA

Senior Systems Software Engineer role focused on building a scalable and modular software stack for advanced driver-assistance systems (ADAS) in autonomous vehicles. Responsibilities include driving architectural improvements, designing interfaces between NVIDIA components and OEM implementations, refactoring components for reuse and maintainability, and improving system-level scalability. Requires strong C/C++ skills, experience with real-time systems, and modular software architecture.

What you'd actually do

  1. Driving architectural improvements that simplify and modularize the software stack.
  2. Designing clean boundaries between NVIDIA core components and OEM-specific implementations.
  3. Refactoring ADAS components to support reuse, extensibility, and long-term maintainability.
  4. Improving system-level scalability through IPC, middleware, and platform abstraction layers.
  5. Partnering with teams across software, systems, and hardware to define clear interfaces and improve integration velocity.

Skills

Required

  • BS or MS in Computer Engineering, Computer Science, or a related field (or equivalent experience)
  • 8+ years of professional software development experience
  • C and C++ programming
  • Modular software architecture
  • Clean code design
  • Separation of concerns
  • Multithreaded systems
  • Real-time systems
  • Performance-critical systems
  • Parallel/distributed systems
  • Low-level system profiling
  • Linux, QNX, or other embedded RTOS environments
  • Communication skills
  • Collaborative attitude

Nice to have

  • Experience developing ADAS software
  • Deep understanding of real-time operating systems, particularly QNX
  • Familiarity with the automotive software lifecycle and integration across safety-critical systems
  • Experience using Git and Bazel in large-scale software environments
  • Ability to work across system, hardware, and algorithm teams

What the JD emphasized

  • 8+ years of professional software development experience
  • Solid background in C and C++ programming
  • Strong understanding of modular software architecture, clean code design, and separation of concerns
  • Hands-on experience building and debugging multithreaded, real-time, or performance-critical systems
  • Familiarity with parallel/distributed systems and low-level system profiling