Design a simulation system used to test self-driving car software at scale.
Engineers need to be able to:
Define simulation scenarios declaratively — road geometry, traffic, pedestrians, weather, time of day, edge cases.
Run scenarios deterministically so the same input always produces the same output (critical for regression).
Plug in different car-software builds through a stable interface — the simulator drives the inputs (sensor frames, vehicle telemetry) and consumes the outputs (control commands).
Run thousands of scenarios in parallel in CI on every code change, with results dashboards and regression detection.
Focus on the simulation architecture and the car-software interface, not the rendering engine.