← Zoox Interview Insights

Zoox·Software Engineer·Technical Phone Screen·Senior

Senior
Jun 2026

Summary

Zoox technical screen for a software engineer role, and it was basically a full self-driving simulation problem. You're coding a lane-change decision system with kinematics, controller functions, and a time-stepping loop. More involved than I expected for a phone screen.

Questions Asked (1)

Q1

Design and implement a lane-change feature for an autonomous vehicle that decides whether a lane change is safe, modulates acceleration when it isn't, and advances the full scene forward in time using longitudinal kinematics. You're given two controller functions and must use them without substituting your own control law.

System DesignAlgorithms & Data StructuresTechnical Trade-offs
Author's notes

This is a meaty one.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem scope and the given controller functions, then outline a modular design that separates safety evaluation, longitudinal control, and simulation stepping. Emphasize that you will use the provided controllers as black boxes and focus on the decision logic and time integration. Finally, discuss trade-offs and validation.

Pro tip: Explicitly state that you will treat the provided controllers as immutable interfaces and design around them, showing respect for constraints and modularity. This demonstrates you can work within existing systems without reinventing the wheel.

1. Clarify requirements and interfaces

Ask questions to understand the expected inputs/outputs, the two controller functions (e.g., one for lane-change decision, one for acceleration modulation), and the simulation environment. Confirm that you must use them as-is.

2. Design the safety evaluation module

Define criteria for a safe lane change (e.g., gaps, relative speeds, time-to-collision) and implement a function that uses sensor data and the provided decision controller to output a boolean or probability.

3. Implement acceleration modulation

When a lane change is unsafe, use the provided acceleration controller to compute a safe longitudinal acceleration (e.g., to maintain distance or slow down). Ensure the controller is called with appropriate inputs.

4. Integrate time-stepping simulation

Advance the scene using longitudinal kinematics: update positions and velocities based on the chosen acceleration over a time step. Loop this process to simulate the scenario.

5. Discuss trade-offs and validation

Talk about edge cases (e.g., sensor noise, controller latency), performance considerations, and how you would test the system (unit tests, simulation scenarios).

Key Points to Mention

  • Modular design: separate safety check, control, and simulation for testability.
  • Use of provided controllers as black boxes; no substitution of control law.
  • Longitudinal kinematics equations (e.g., s = s0 + v0*t + 0.5*a*t^2, v = v0 + a*t).
  • Safety metrics: time-to-collision, gap acceptance, relative speed.
  • Handling unsafe conditions: deceleration or maintaining distance.
  • Simulation loop and time discretization; potential need for continuous vs discrete updates.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.