OfferLoop

INTERVIEW GUIDE

Uber Software Engineer Interview: Questions & Process

Uber's software engineer interview leans toward practical, medium-to-hard algorithm problems plus real system design — think geo, matching, and high-throughput services. Expect a recruiter screen, a coding phone screen, then a 4-5 round onsite with two coding interviews, a system design round, and a behavioral/bar-raiser. They want engineers who solve hard problems fast and reason about scale.

The interview process

1. Recruiter screen ~30 min call
Tests: background, level and team fit, logistics and timeline
2. Technical phone screen 45-60 min live coding
Tests: one or two DSA problems — arrays, graphs, heaps, intervals — solved cleanly with complexity analysis
3. Onsite coding rounds 2 interviews, 45 min each
Tests: medium-to-hard algorithms, often practical (geo points, scheduling, streams), with optimization follow-ups
4. System design 45-60 min
Tests: designing a scalable service — ride matching, surge pricing, location tracking — covering data models, APIs, and bottlenecks
5. Behavioral / bar-raiser 45 min
Tests: ownership, collaboration, dealing with ambiguity, and impact on past projects

Questions you're likely to get

Technical

  • Given a set of points, find the k closest to the origin.
  • Given meeting time intervals, find the minimum number of rooms required.
  • Count the number of connected islands in a 2D grid.
  • Merge a collection of overlapping intervals.
  • Detect whether a course schedule with prerequisites can be completed.
  • Design an LRU cache with O(1) get and put.

Role-specific

  • Design a system that matches riders to nearby drivers in real time.
  • How would you design surge pricing, and how do you keep it consistent under high load?
  • How would you efficiently find all drivers within a 2km radius of a rider?

Behavioral

  • Tell me about a time you owned a project end to end and shipped under pressure.
  • Describe a time you had to make a decision with incomplete information.
  • Tell me about a technical disagreement and how you resolved it.
  • Describe the most challenging bug you've debugged. How did you find it?

Practice these problems live

Relevant LeetCode problems for the Uber Software Engineer loop. Start a live, AI-run coding interview on any of them — or open the problem on LeetCode.

K Closest Points to Origin· Medium · LeetCode #973
K Closest Points maps directly to Uber's geo/proximity flavor and tests heaps.
Meeting Rooms II· Medium · LeetCode #253
Meeting Rooms II checks interval-plus-heap reasoning, a frequent Uber question.
Number of Islands· Medium · LeetCode #200
Number of Islands covers the BFS/DFS grid traversal pattern they like.
Merge Intervals· Medium · LeetCode #56
Merge Intervals tests the sorting and sweep pattern common in scheduling problems.
Course Schedule· Medium · LeetCode #207
Course Schedule probes graph cycle detection and topological reasoning.
LRU Cache· Medium · LeetCode #146
LRU Cache is the canonical design-flavored medium for caching layers.

How to answer (worked examples)

Design a system that matches riders to nearby drivers in real time.
Start by clarifying scale and requirements (QPS, latency, geographic spread). Sketch the core pieces: a location-ingest service, a spatial index (geohash or quadtree) for proximity queries, a matching service, and the data stores behind them. Then drive into the interesting tradeoffs Uber wants to hear — how you shard by region, keep driver locations fresh, handle hotspots in dense cities, and stay consistent during surges. Name bottlenecks before they ask.
Find the k closest points to the origin.
State options out loud: full sort is O(n log n); a max-heap of size k is O(n log k); quickselect is O(n) average. Pick the heap for clarity, explain why, then code it cleanly and handle ties and edge cases. Uber rewards candidates who reason about the tradeoff space, not just produce one answer.

What Uber looks for

FAQ

How hard is the Uber SWE interview?

On the harder side. Coding rounds run medium-to-hard and you're expected to reach an optimal or near-optimal solution with clean code. The system design round is real even for some new-grad/early-career loops, so don't skip design prep.

What kinds of system design questions come up?

Often Uber-flavored: ride matching, surge pricing, location tracking, or notification systems. They want to see spatial indexing, sharding by geography, real-time data handling, and how you reason about bottlenecks.

Do new grads get a system design round?

Frequently yes, though it's weighted lighter than for senior roles. Even a basic, structured design that names tradeoffs and bottlenecks scores well — going in blind does not.

What languages can I use?

Use your strongest language. Uber's stack includes Go and Java heavily, but coding rounds are language-agnostic — they care about your problem solving and code quality.

How long is the process?

Typically a few weeks from screen to decision, depending on scheduling and team.

Walk into Uber's loop already sharp

Uber's loop rewards speed and clear tradeoff reasoning — hard to fake if you've only read solutions. Practice the coding rounds and a ride-matching system design out loud with OfferLoop's realtime voice coach before the real thing.

Practice this interview out loud →

Related

OfferLoop is an independent interview-practice tool and is not affiliated with, endorsed by, or sponsored by Uber. All company names and trademarks are the property of their respective owners.

Interview formats vary by team, level and year, and this guide is compiled from general knowledge of publicly discussed hiring processes — treat it as preparation material, not an official description of Uber's current process.