Real-time matching, geospatial data and surge pricing - Uber design rounds go where its own product is hardest.
Uber loops lean hard on system design, and the questions are drawn from problems the company genuinely has: matching riders to drivers in real time, indexing moving objects geospatially, surge pricing as a feedback loop, and keeping a trip consistent across services when a payment fails midway.
Geospatial indexing comes up often enough to be worth explicit preparation. Being able to explain why a naive latitude/longitude range query does not scale, and how a grid or hierarchical cell index like H3 or a quadtree fixes it, is a concrete differentiator that most candidates skip.
45 min
Medium to hard algorithmic problem in a shared editor.
45 min each
Two rounds with an emphasis on clean, working code over clever tricks.
60 min
Real-time matching, geospatial search, surge, or trip state across services.
45 min
A cross-team interviewer checking calibration against the level bar.
45 min
Ownership and decisions made under production pressure.
Its own domain, mostly: design a ride-matching service, a geospatial index over moving drivers, surge pricing, ETA estimation, or a payment flow that stays consistent when one service fails mid-trip.
Worth explicit preparation. Explaining why a plain latitude/longitude range scan fails at scale, and how a grid, quadtree or H3-style cell index fixes it, is a specific and uncommon differentiator in an Uber design round.
Medium to hard, with the emphasis on working code and clear complexity reasoning rather than obscure algorithms. Graphs, heaps and interval problems recur, which follows from the domain.
Practise the rounds Uber actually runs, and get scored on where you stand.