← Back to Directory

Uber interview notes, page 24 of 61

Large Enterprises

Most of these Uber write-ups come from Software Engineers (407), then Data Scientists (78) and Machine Learning Engineers (65). The most reported rounds are the technical phone screen (387), the system design round (95), the product sense round (46) and the onsite coding round (23).

609 interview notes · updated Aug 2026

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview with a BST problem that seemed straightforward until the follow-up made me realize I hadn't thought about the dynamic case at all.
  • Given the root of a binary search tree and an integer k, return the kth smallest value in the tree (1-indexed).

“In-order traversal gives you a sorted sequence, so I just did that and counted up to k.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview that leaned hard into grid search problems. Two parts to the same question, and the second one is where things got interesting. Not a bad experience overall but definitely left me thinking about a few things I could've handled better.
  • Given a grid of uppercase letters and a target word, return true if the word appears in the grid by picking any starting cell and moving in one fixed direction (any of the 8 compass directions) for the entire word. Analyze the time and space complexity and explain how you'd avoid redundant checks.
  • Now extend the problem: the word can be formed by starting at any cell and moving to any orthogonal neighbor at each step, changing direction freely, but you cannot reuse a cell in a single path. Describe your algorithm, its complexity, and how this differs from the fixed-direction version. Also explain how you'd handle edge cases like an empty word, single characters, repeated letters, and large grids.

“This part felt manageable.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE coding round with a graph clustering problem. The key was recognizing it as a connected components question, which made the solution pretty clean once that clicked.
  • You have a set of balls on a 2D plane, each with coordinates (x, y) and a distance threshold d. Two balls attract each other if their Euclidean distance is less than d, and attraction is transitive. At each time step you pick one ball, which instantly merges with all balls reachable through chains of attraction into a single cluster. Find the minimum number of time steps needed so all balls end up in one group.

“Took me a minute to see past the physics-y framing.”

View Post

Uber·Product Manager·Onsite - Product Sense / Strategy

May 2026
PM interview at Uber with a product strategy question about user growth. Pretty standard for this type of role but it still took me longer than I expected to find a structure I felt good about.
  • How would you build a strategy to grow Uber's user base?

“I went straight to acquisition channels and the interviewer kind of just waited.”

View Post

Uber·Product Manager·Onsite - Product Sense / Strategy

May 2026
PM interview at Uber with a market entry / product strategy question set in a historical context. Pretty lean on details but the core question was meaty enough to chew on for a while.
  • Should Uber have entered the e-scooter market in San Francisco, assuming you're evaluating this decision roughly 7-8 years ago?

“The historical framing threw me a little because you already know how things played out, so there's this weird temptation to just reverse-engineer the 'right' answer.”

View Post

Uber·Software Engineer·Online Assessment (OA)

May 2026
Uber SWE online assessment, one algorithmic problem that looks deceptively simple until you actually sit down to implement it cleanly.
  • Given a permutation of integers 1 through n, for each k from 1 to n determine whether the values 1 through k appear as a contiguous subarray. Return a binary string of length n where position k is '1' if they do and '0' if not.

“The core insight took me longer than i'd like to admit: if you track where each value sits in the array, then 1..k forms a contiguous block if and only if the spread of those positions (max minus min plus one) equals k.”

View Post

Uber·Data Scientist·Technical Phone Screen

May 2026
Uber DS interview with a meaty experimentation question around surge pricing push notifications. The whole thing was basically one big causal inference puzzle and it went deeper than I expected.
  • Design an experiment to measure the causal impact of surge pricing push notifications on resolving driver supply shortages at airports. Cover your success metrics, how you'd set up the A/B test at the driver level, how you'd handle spillover between treatment and control, and how you'd actually establish causality.

“This one had layers.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber coding interview with a filesystem traversal problem. Pretty straightforward if you've done DFS before, but the output formatting tripped me up for a minute.
  • Given the root of a directory structure, print every file and subdirectory with indentation arrows indicating depth, similar to the Unix tree command. Implement it using DFS.

“The DFS part clicked pretty fast.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview with a dynamic programming / optimization problem that took me a while to see clearly. The problem was clever enough that I'd probably still be staring at it if I hadn't thought to binary search on the answer.
  • You have two parallel arrays representing N services in a pipeline: one for throughput increment per scaling step and one for cost per scaling step. Services are chained so end-to-end throughput is the minimum across all services. You can scale each service any number of times, each time paying its cost and gaining its throughput increment. Given a total budget, maximize the final end-to-end throughput.

“My first instinct was greedy, which went nowhere fast.”

View Post

Uber·Software Engineer·Onsite - System Design / Architecture

May 2026
Uber onsite system design round centered entirely on the classic driver location heatmap problem. The depth expected here is real, they want numbers, pipeline decisions, and geo-index knowledge all in one go.
  • Design a service that ingests live driver location updates and serves city-scale heatmap queries showing driver density across a viewport.
  • How would you choose between Geohash and Uber's H3 hexagonal index for this heatmap use case?
  • How do you prevent double-counting a driver who moves between geo cells during aggregation?
  • The heatmap is an internal ops tool with two modes: a live view over the last 20 minutes and a historical replay over the past hour at one-minute granularity. How do you design the storage and serving layer for both?
  • How do you handle drivers who stop sending heartbeats? When and how do you remove them from the active count?
  • What happens if the aggregation logic or geo-bucketing definition changes and last week's heatmap data is wrong? How do you reprocess it?
  • How do you handle hotspot cities like NYC or SF that generate 10x the traffic of an average city without overloading a single partition or shard?

“This is the whole round basically.”

View Post