← Back to Directory

Uber interview notes, page 48 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

Jun 2026
Uber SWE interview with a classic board search problem. Nothing too surprising but the pruning optimization is where they actually care whether you know what you're doing.
  • Given a 2D board of characters and a list of words, find all words that can be formed by tracing a path through adjacent cells (horizontally or vertically), without reusing any cell in a single word.

“You kind of have to go Trie plus DFS here.”

View Post

Uber·Product Manager·Onsite - Product Sense / Strategy

Jun 2026
PM interview at Uber, one question about experimentation design. Pretty standard but the details matter more than you'd think.
  • How would you design an A/B test for a new campaign?

“I jumped straight to metric selection and kind of glossed over the setup stuff like randomization unit and sample size.”

View Post

Uber·Software Engineer·Onsite - System Design / Architecture

Jun 2026
System design round at Uber for a software engineering role. The whole session was one big question about building a real-time driver heatmap, and it went deeper than I expected pretty fast.
  • Design a real-time driver heatmap for a ride-hailing platform. Partition the city into grid cells using something like geohash, ingest driver location pings, stream updates to clients over WebSockets, and compute the top-K hottest cells per region with low latency. Cover the data model, aggregation approach, update frequency, scalability, fault tolerance, and how clients subscribe and unsubscribe.

“This one sprawled in every direction.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Did a technical phone screen for a software engineer role at Uber. One algorithmic problem, range-update style, which I've seen variants of before but still had to think through carefully.
  • You have an integer array and a list of queries, each specifying a range and a value. Each query lets you decrease elements in that range by any non-negative amount up to the given value. Can you make every element zero after processing all queries?

“The key insight is that the order of queries doesn't actually matter for whether it's possible.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber SWE interview with a system design/coding question around building a hit counter. Pretty focused session, just the one problem but it had enough edge cases to keep you busy for the whole time.
  • Design a hit counter that tracks the number of hits received in the past 5 minutes (300 seconds), assuming hits arrive in chronological order. Implement initialization, a hit recording method, and a method to query the hit count at a given timestamp.

“The 300-second sliding window is the crux of it.”

View Post

Uber·Product Manager·Onsite - Product Sense / Strategy

Jun 2026
Uber product interview, one question about improving their own app. Pretty open-ended which sounds fun until you realize you have to scope it yourself and also explain how you'd build and ship the thing.
  • What improvements would you make to the Uber app, and how would you design, implement, and test your chosen idea?

“The tricky part isn't picking an improvement, it's that they're asking you to go all the way through design, implementation, and testing in one shot.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber SWE interview, coding round, one graph problem the whole time. Pretty standard stuff if you've done leetcode graph problems before, but the pressure of actually explaining your reasoning out loud is a different beast.
  • Given a list of courses and their prerequisites represented as directed edges in a graph, determine whether it's possible to complete all courses (i.e., detect if the graph contains a cycle).

“I went with BFS topological sort because I always fumble the visited-state tracking in DFS under pressure.”

View Post

Uber·Machine Learning Engineer·Onsite - System Design / Architecture

Jun 2026
ML system design round at Uber for an MLE role. The whole thing was a deep dive into building a real-time feed ranking system, covering everything from candidate generation to serving infrastructure. Pretty intense scope for a single session.
  • Design a machine-learning-based feed ranking system for a consumer product that ranks candidate posts for a user's home feed in real time.
  • How would you handle cold start for new users and new content items in a feed ranking system?
  • What online and offline metrics would you use to evaluate a feed ranking model, and how do they relate to the product's business goals?
  • Walk through the candidate generation and multi-stage ranking pipeline you would build, including filtering steps.
  • How would you ensure freshness and diversity in the ranked feed without sacrificing relevance?
  • How would you design the model training and serving architecture to meet real-time latency requirements at scale?
  • How would you set up experimentation and monitoring for a feed ranking system, and what failure modes would you watch for?

“This is basically a full system design question disguised as an ML question.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Uber coding screen, pretty straightforward tree problem but the implementation detail of building the Node class yourself adds a small wrinkle most people gloss over.
  • Given an N-ary tree, return the sum of all node values. You're expected to define the Node class yourself (a value and a list of children).

“The traversal itself isn't the hard part, simple DFS or BFS gets you there.”

View Post

Uber·Software Engineer·Technical Phone Screen

Jun 2026
Senior SWE phone screen at Uber, centered almost entirely on expression parsing. Two distinct variants came up: a functional nested add/sub evaluator and an infix calculator. The problems sound approachable until you're mid-implementation and realize your comma-splitting logic is completely wrong.
  • Given a string expression using add(a, b) and sub(a, b) that can be nested arbitrarily, write a function to evaluate it and return the integer result.
  • Evaluate an infix arithmetic expression string that contains digits, +, -, parentheses, and spaces. You cannot use any built-in expression evaluator.

“The problem gets presented verbally with like two or three examples and zero formal grammar, so you're kind of guessing at the edge cases.”

View Post