Skip to main content
Guides Company playbooks The Uber System Design Interview in 2026 — Dispatch, Geo-Indexing, and Surge Pricing
Company playbooks

The Uber System Design Interview in 2026 — Dispatch, Geo-Indexing, and Surge Pricing

10 min read · April 25, 2026

Uber's system design round is a real-time marketplace exam. Here's how to design dispatch, driver location, geo-indexing, ETA, surge pricing, and the failure modes that separate senior offers from passes.

The Uber system design interview is about real-time marketplace infrastructure. The prompt may sound like ride matching or surge pricing, but the real test is whether you can reason about location streams, low-latency dispatch, marketplace balance, regional failure, and incentives.

Uber-scale answers are not about naming the most exotic database. They are about choosing the right hot path, accepting approximate geo decisions where exactness is too slow, and keeping the city moving when drivers move, riders cancel, GPS lies, and supply changes minute by minute.

The loop at a glance

The exact process changes by team and level, but the 2026 loop is consistent enough to prepare deliberately. Treat each round as a proxy for the work: how you reason, how you communicate, how you handle imperfect data, and how you protect customers when the easy answer is not safe enough.

  • Recruiter screen. team fit, seniority, location, compensation, and motivation for real-time marketplace systems.
  • Technical screen. coding with graphs, heaps, intervals, maps, strings, or optimization.
  • Coding onsite. one or two rounds focused on correctness, complexity, and edge cases.
  • System design. dispatch, location, ETA, surge, trip state, payments, or marketplace reliability.
  • Architecture deep dive. past systems, operational tradeoffs, and migration decisions for senior candidates.
  • Behavioral. incidents, ownership, cross-functional work, and bias for action.

For senior candidates, expect the interviewer to keep asking what happens after version one ships. How do you roll it out, observe it, handle an incident, migrate old data, explain the decision to non-engineers, and avoid making one team carry all the operational pain? Those follow-ups are not side quests; they are the seniority test.

What interviewers actually grade on

The strongest candidates make the domain constraints explicit instead of waiting for hints. Use this as the checklist you keep in your head during the interview:

  • Real-time thinking. Driver pings, rider requests, candidate matching, and trip transitions need explicit latency budgets.
  • Geospatial judgment. Pick H3, S2, geohash, or a grid and explain resolution, neighbor search, and sparse markets.
  • Marketplace tradeoffs. Optimizing pickup ETA can hurt driver utilization or acceptance; name that tradeoff.
  • State clarity. Requested, matched, accepted, arriving, in_trip, completed, canceled, no_show, and refunded are different states.
  • Degraded-mode design. GPS can lag, a city can spike, routing can fail, and dispatch still needs a fallback.
  • Operational metrics. Match latency, ETA error, utilization, cancellation, acceptance, wait time, and surge accuracy matter.

Weak answers usually fail in the same ways: they use a generic FAANG design template, optimize one metric while ignoring the counterparty, bury compliance or safety at the end, or promise perfect delivery in a system where retries, duplicates, and delayed information are normal.

Prompts to practice

| Prompt | What to show | |---|---| | Design ride dispatch | geo candidate search, scoring, leases, assignment, retries. | | Design driver location service | high-write ingestion, freshness, pub/sub, battery impact. | | Design ETA service | routing latency, model serving, fallback, feedback loops. | | Design surge pricing | sliding windows, smoothing, incentives, fairness. | | Design trip state service | state machine, event log, mobile sync, payments trigger. | | Design airport pickup | queues, geofences, regulation, fairness. | | Design scheduled rides | reservations, supply forecasting, reminders, cancellation risk. |

Do not memorize a single diagram. Memorize the primitives. A good answer clarifies the goal, draws the hot path, names the state or metric, defines the data model, then adds failure handling, observability, and rollout. That structure keeps you calm when the interviewer changes the prompt halfway through.

Geo-indexing

Pick a primitive and explain it. Encode each driver location into a cell, store available drivers by cell and product type, and search the rider cell plus neighboring rings until enough candidates are found or the latency budget is hit. H3, S2, geohash, or a custom grid can all be defensible if you explain the tradeoffs.

Cell size matters. Too coarse means too many candidates and poor ETA ranking. Too fine means drivers cross cells constantly and sparse markets require many expansions. Dense downtowns, suburbs, and airports may need different tuning or market-specific configuration.

Use timestamps and freshness thresholds. A driver ping from 90 seconds ago is not equal to a ping from 3 seconds ago. Location writes can be high-volume and eventually consistent; trip state transitions require stronger correctness.

Dispatch architecture

A clean design has location ingestion, supply index, request service, matcher, offer flow, and trip state service. The matcher retrieves candidates, calls ETA/scoring, sends offers, handles accept/reject/timeout, and sets a short lease so two riders are not matched to the same driver.

Greedy nearest acceptable driver is fine for a single request. In a dense cell with many simultaneous requests, batching every few seconds can improve global efficiency but adds rider latency. Say when you would choose each. The product tradeoff matters more than claiming a perfect optimizer.

Trip state is the source of truth after match. Use idempotent transitions, sequence numbers, and events for maps, notifications, pricing, and payments. If a driver accepts after the lease expires, the transition should fail cleanly and trigger another offer.

Surge pricing

Surge is a control system, not just a price multiplier. Partition markets into zones, ingest demand signals such as requests and app opens, ingest supply signals such as available drivers and acceptance rate, compute imbalance over 2/5/15-minute windows, and apply smoothing and hysteresis so prices do not flicker.

Higher rider prices reduce demand; driver incentives attract supply. Some markets need bonuses more than rider-side price. Add caps, regulation rules, event policy, and customer-trust guardrails. Publish outputs to pricing, rider app, driver app, analytics, and operations tools.

A good design is auditable. City operations should be able to explain why prices changed during storms, concerts, or emergencies. Senior candidates should mention holdouts, canaries, and rollback levers.

Metrics, observability, and decision quality

A design or analytics answer is much stronger when the metrics are specific. These are the numbers to bring up before the interviewer has to ask:

  • p95 match latency and time to first offer
  • pickup ETA error and actual rider wait time
  • driver idle time and completed trips per online hour
  • driver acceptance and rider cancellation rates
  • surge multiplier volatility and complaint rate
  • location freshness and stale-ping percentage
  • per-city dispatch error budget during spikes

Use metrics as guardrails, not decoration. A launch that improves the primary metric while damaging trust, reliability, fairness, or partner experience may still be a bad launch. Say what you would measure during canary, what would trigger rollback, and what signal would require a follow-up experiment instead of a global rollout.

For operational systems, include both customer-facing and operator-facing visibility. Customers need clear status and next action. Support needs a timeline. Engineers need logs, traces, dashboards, replay tools, and ownership. Finance, risk, legal, or compliance may need audit trails depending on the domain.

Failure modes to volunteer

Naming failures early makes the answer feel like production experience rather than whiteboard theater. Bring up the most likely failures first:

  • driver GPS freezes and makes the driver look closer than reality
  • two riders are offered the same driver during a burst
  • driver accepts after match lease expiry
  • stadium event overloads one city
  • surge oscillates because supply responds slowly
  • location pings arrive out of order
  • routing service is unavailable
  • payments misses a completed-trip event

For each failure, connect it to a recovery primitive: idempotency, leases, retries with backoff, sequence numbers, immutable journals, dead-letter queues, manual review, circuit breakers, per-region or per-asset pause, replay, or reconciliation. The goal is not to claim the system never fails. The goal is to show that failure becomes bounded, visible, and recoverable.

Senior and staff-level bar

At senior level, a correct design is not enough. You need to show rollout judgment and ownership. At staff level, you need to show how the architecture reduces risk across teams, not just how your preferred service works.

  • shadow-mode comparison of greedy versus batched matching
  • market-by-market rollout for pricing changes
  • blast-radius isolation so one city spike does not degrade global dispatch
  • offline replay of historical trips before production launch

A reliable pattern: separate the hot path from the warm path and cold path. The hot path owns user-visible latency and correctness. The warm path handles scoring, aggregation, routing, or policy. The cold path handles analytics, backfills, audit, planning, and long-horizon improvements. This separation gives the interviewer confidence that you know where consistency is mandatory and where approximation is acceptable.

Prep plan that maps to the loop

A focused four-week plan beats generic prep:

  1. Week 1: review geospatial indexing, neighbor rings, cell resolution, and stale location handling.
  2. Week 2: practice ride dispatch twice: single-request greedy and batched matching.
  3. Week 3: drill ETA, driver location service, trip state, and surge pricing.
  4. Week 4: full mocks with stadium spike, GPS lag, routing outage, duplicate match, and cancellation follow-ups.

In the final week, do full mocks with deliberate interruptions. Ask the mock interviewer to inject a timeout, duplicate event, bad deployment, missing data, overloaded region, regulatory constraint, or angry customer. Real onsite rounds almost always leave the happy path.

Leveling, compensation, and negotiation notes

Rough US Tier 1 engineering ranges in 2026: mid-level around $250K-$350K total compensation, senior around $360K-$520K, staff around $520K-$750K, and senior staff/principal above that. Marketplace, ML platform, mobility infrastructure, and high-urgency teams can land toward the upper end.

Negotiate in this order: level, equity, sign-on, then smaller terms. Level changes the compensation band, refresh potential, scope expectation, and promotion timeline. Bring evidence in the company's language: systems owned, incidents handled, metrics moved, customers protected, migrations led, and cross-functional decisions improved.

Final answer skeleton

Open with the marketplace goal: minimize expected pickup time subject to acceptance, utilization, and safety. Draw the hot path from rider request to driver offer to trip state. Name the geo primitive, the candidate search, the scoring features, and the lease. Then add surge, ETA, observability, and degraded mode. That order keeps the design from turning into a map of every Uber system at once.

Rehearse a two-minute opener for your most relevant project, a five-minute version of the core design or analysis, and a thirty-second explanation of the main tradeoff. Candidates who can compress and expand their answers on demand sound more senior than candidates who only have one long monologue.

Extra tactical calibration

The final Uber answer should separate hot, warm, and cold paths. Dispatch and trip state are hot. Surge aggregation and ETA calibration are warm. Analytics, experimentation, and planning are cold. That separation tells the interviewer you know which parts of the city need to move in milliseconds and which can wait.

One last useful habit: whenever you add a component, say who owns it, what invariant it protects, what metric proves it works, and what happens when it fails. That sentence turns a diagram into an operating plan and gives the interviewer room to push on senior-level tradeoffs.

Sources and further reading

When evaluating any company's interview process, hiring bar, or compensation, cross-reference what you read here against multiple primary sources before making decisions.

  • Levels.fyi — Crowdsourced compensation data with real recent offers across tech employers
  • Glassdoor — Self-reported interviews, salaries, and employee reviews searchable by company
  • Blind by Teamblind — Anonymous discussions about specific companies, often the freshest signal on layoffs, comp, culture, and team-level reputation
  • LinkedIn People Search — Find current employees by company, role, and location for warm-network outreach and informational interviews

These are starting points, not the last word. Combine multiple sources, weight recent data over older, and treat anonymous reports as signal that needs corroboration.