Skip to content

Jobs

General Motors

Robot type
Autonomous Vehicle
Location
SunnyvaleCaliforniaUSA
Job type
Software
Posted
Aug 16, 2026
Salary
$153,200–$234,100 a year
Full-time

Senior Software Engineer, Rendering Infrastructure (AV Simulation)

Job description

As a Senior Software Engineer on the Rendering Infrastructure team, you will build the systems that turn a GPU-accelerated, physically-based sensor simulator into a production platform — one that runs reproducibly, at cluster scale, and against production-representative autonomous vehicle interfaces. This is a systems role at the boundary of rendering, simulation, perception, and distributed infrastructure. You will connect the renderer to AV software stacks and compute clusters, reproduce real sensor scheduling and vehicle timing, run many worlds concurrently on a single GPU, and make the runtime start fast and stay cheap across thousands of workers.

The Rendering Infrastructure team owns…

Job responsibilities

  • Connect the renderer to AV software stacks and compute clusters — designing low-latency, high-bandwidth transport using ROS/ROS 2, shared-memory IPC, gRPC, and sockets with appropriate serialization formats, and…
  • Integrate the renderer with learned driving models through Gymnasium-style environment APIs — stepping the simulation from Python, exchanging observations and actions efficiently with PyTorch-based models, and…
  • Integrate the runtime with the cloud and on-premises execution environments used for large-scale closed-loop testing, continuous integration, and perception training pipelines.
  • Improve and validate deterministic execution — establishing the required bit-accurate or frame-deterministic lock-step behavior across the simulation clock, dynamic physics updates, and the ray-traced renderer, and…
  • Reproduce real sensor scheduling and vehicle timing — staggered camera exposures, rolling shutter behavior, LiDAR spin and packet rates, hardware clock drift, and the onboard constraints perception actually operates…
  • Build perturbation mechanisms that inject timing jitter, dropped or out-of-order frames, and calibration drift in both extrinsics and intrinsics, and use them to stress-test downstream perception and sensor fusion…
  • Build memory-efficient multi-world and multi-scenario execution inside a single rendering process, using shared geometry and instancing — OptiX IAS/GAS, or the analogous acceleration structure hierarchies in Vulkan/DXR…
  • Optimize GPU memory footprint, scene streaming, and execution scheduling to maximize frames per second per GPU across concurrent simulation workers.

Job requirements

  • Bachelor's degree in Computer Science, Computer Engineering, a related technical field, or equivalent practical experience.
  • 5+ years of professional software engineering experience, with a substantial portion focused on performance-critical systems software.
  • Production proficiency in modern C++ (C++17/20), including performance optimization, memory management, and clean API and system design in a large codebase, plus working proficiency in Python for tooling and automation.
  • Strong Linux systems programming foundation: multithreading and concurrency, memory management, IPC, and high-throughput data movement, including systems that operate across process and machine boundaries.
  • Depth in at least one of the two domains this role bridges, and the interest to grow into the other: Robotics or autonomous systems — the architecture and integration of perception, planning, or control components, and…
  • GPU programming through a compute or ray tracing API (CUDA, OptiX, Vulkan, DXR, or similar), with a working understanding of GPU memory and execution models.
  • A track record of designing, implementing, and debugging reliable distributed systems, including the nondeterminism and failure modes that come with them.
  • Experience profiling and optimizing real systems, and the instinct to measure before optimizing.

Similar jobs