← Back to Directory

Uber interview notes, page 40 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·Backend Engineer·Onsite - System Design / Architecture

Jun 2026
System design round at Uber for a backend role. The whole thing was basically one big cart service question that branched into like six different conversations. More open-ended than I expected, less algorithmic.
  • Design the shopping cart service for a food delivery app like Uber Eats, including adding, updating, and removing items with quantities and per-item customizations, scoped to a single restaurant.
  • How would you handle a user editing their cart from multiple devices at the same time? Walk through the tradeoffs between optimistic and pessimistic concurrency control here.
  • If a menu item goes out of stock or its price changes while the user has it in their cart, how do you reconcile that at checkout?
  • What storage solution would you choose for the cart service, and how would you handle TTL for abandoned carts?
  • How would you design the API for cart operations to be idempotent so client retries don't cause duplicate mutations?
  • How would you apply promotions, coupons, taxes, and delivery fees at checkout, and how does that integrate with order placement and payment?
  • How would you scale this cart service across multiple regions with low-latency reads?

“This is the core question and it sounds straightforward until you realize how many edge cases are hiding in 'per-item customizations.' I started with a basic CRUD API and a document store, which was fine, but I spent too long on the data model before they nudged me toward the harder parts.”

View Post

Uber·Machine Learning Engineer·Technical Phone Screen

Jun 2026
Uber ML engineer interview, got a data structures problem that felt more software-engineery than I expected for the role.
  • Given a matrix, convert it into a quad tree representation.

“Took me a minute to even remember how quad trees work.”

View Post

Uber·Data Scientist·Technical Phone Screen

Jun 2026
Uber DS interview that went deep into experimental design for marketplace pricing. The question was dense and very specific to their domain, covering switchback experiments, carryover effects, and variance estimation all in one go. Felt more like a take-home problem crammed into a live session.
  • Design a switchback experiment for airport pickup pricing in a marketplace with spillovers. You're given that median trip duration is 22 minutes, demand autocorrelation drops below 0.1 at 75 minutes, and there are strong demand peaks roughly every 4 hours. Walk through how you'd choose block length, detect residual carryover, compute variance and sample size under block randomization, randomize across time-of-day and day-of-week, and apply covariate adjustment to reduce variance.

“This was a lot.”

View Post

Uber·Data Scientist·Technical Phone Screen

Jun 2026
Uber data science interview that went deep into numerical methods, which I was not expecting at all. Two coding problems plus four follow-up theory questions, all in one session. Felt more like a computational math exam than a DS interview.
  • Implement a square root function using Newton's method in Python, without using any built-in sqrt or pow. It needs to handle the full float range including zero, very large values, and infinity, raise an error for negatives, use a numerically stable initial guess, and stop when the relative error is within a given tolerance or after 100 iterations.
  • Implement integer square root using binary search for n up to 2^63, with O(log n) iterations and no intermediate overflow. Specifically, compare mid <= n // mid instead of computing mid * mid.
  • Prove that Newton's method for computing square roots converges quadratically near the root.
  • For inputs in the range 1e-12 to 1e12 with a specific initial guess strategy, estimate how many Newton iterations are needed to reach the given tolerance and justify your answer.
  • Compare the per-iteration cost and total operation count of Newton's method versus binary search for computing square roots of 64-bit integers.
  • How would you extend the Newton's method implementation to return complex results for negative inputs under IEEE-754, and why can naive if/else branching be unsafe in that context?

“I had a rough start because I forgot about the overflow risk for large x.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber SWE interview with a grid BFS problem. Pretty standard stuff but the edge cases tripped me up more than I expected.
  • Given a grid containing empty cells, fresh oranges, and rotten oranges, find the minimum number of minutes for all fresh oranges to rot, where rot spreads to the four adjacent cells each minute. Return -1 if it's impossible for all oranges to rot.

“Multi-source BFS, which I knew, but I fumbled the initialization step.”

View Post

Uber·Machine Learning Engineer·Technical Phone Screen

Jun 2026
Uber ML engineer interview with a classic alphabet ordering problem. Pretty standard algorithmic round, nothing too wild, but the question has a few edge cases that can trip you up if you're not careful.
  • You're given a list of strings that are sorted lexicographically in some unknown language. Figure out the correct ordering of the letters in that language's alphabet.

“Classic topological sort problem dressed up in a fun disguise.”

View Post

Uber·Machine Learning Engineer·Technical Phone Screen

Jun 2026
Uber ML Engineer coding round, one question the whole time. The problem was a graph/topological sort thing dressed up as task scheduling, which I thought I handled okay but I'm still not sure how I did.
  • You have n tasks labeled 1 through n, each taking 1 unit of time. Given a list of prerequisite pairs where [a, b] means task a must finish before task b starts, and assuming you can run any number of tasks in parallel as long as their prerequisites are met, return the minimum total time to complete all tasks. Also handle cycles in the dependency graph.

“Basically asking for the longest path in a DAG, which is just the critical path.”

View Post

Uber·Data Scientist·Technical Phone Screen

Jun 2026
Uber data scientist interview focused almost entirely on a single ETA case study, which sounds simple but kept branching into confounding, marketplace dynamics, and experiment design. Walked away feeling like I held my own on the stats side but fumbled a bit when it came to the marketplace interference discussion.
  • Why does reducing ETA matter from a business perspective? Walk through the benefits for riders, drivers, and the marketplace as a whole.
  • In historical data, higher ETA is positively correlated with rider conversion. Why might this be, even if longer waits aren't actually causing higher conversion?
  • How would you design an experiment to measure the causal effect of lower ETA on rider conversion? Cover treatment and control setup, your primary metric, guardrail metrics, randomization unit, when to measure exposure, and how you'd compute and interpret a confidence interval.
  • Why is randomizing at the user level a bad idea in a marketplace like this, and what alternative randomization strategies would you consider?

“Pretty open-ended warmup but I think they were checking whether I'd stay surface-level or actually think through the supply-demand loop.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber SWE technical phone screen, one meaty algorithmic problem about merging step functions with a divide-and-conquer follow-up. The core question sounds approachable until you actually try to track two pointers and keep the active values straight.
  • You're given two step functions, each represented as a sorted list of [timestamp, value] checkpoints. Return the checkpoints of their pointwise sum, with one entry per distinct timestamp across both inputs. No coalescing even if adjacent merged values are equal. Follow-up: extend the solution to k step functions using divide-and-conquer.

“Two-pointer merge is the obvious starting point but the tricky part is maintaining the 'current active value' for each function as you advance.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber SWE interview that went deep on string manipulation and palindrome logic. Three questions total, each building on the last, and the follow-ups got pretty gnarly toward the end.
  • Given a non-negative integer as a string with no leading zeros, return the smallest palindromic integer strictly greater than it, also as a string. Aim for O(n) time and O(1) extra space. Handle edge cases like all 9s, single-digit inputs, and cases where the result has more digits than the input (e.g. '99' -> '101').
  • Modify your solution to return the palindrome closest in absolute difference to the input rather than strictly greater. If two palindromes are equidistant, return the smaller one. Explain which candidate palindromes you generate and how you compare their magnitudes without using big-integer libraries.
  • Now suppose the input is a decimal string with a fixed number of fractional digits, like '123.450'. Define a palindromic decimal as one where the decimal point mirrors itself and digits mirror symmetrically across it. Return the smallest such palindromic decimal strictly greater than the input, preserving the fixed fractional length. Describe how you propagate carries across the decimal point and maintain the fractional digit count.

“I thought I had this one clean but the all-9s case tripped me up for a bit.”

View Post