← Back to Directory

Uber interview notes, page 19 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·Machine Learning Engineer·Technical Phone Screen

May 2026
Uber MLE screen focused on a lightweight analytics exercise: computing a slice metric on a toy orders dataset, defining it precisely, and then reasoning through a root-cause scenario. Nothing flashy, but the follow-up case study is where they actually judge you.
  • Given a small orders table with city, order type, and status columns, how would you compute the completion rate for a specific city and order type slice? Define the numerator and denominator precisely.
  • What edge cases would you guard against when computing this metric?
  • If the completion rate for a city or order type is low, what could be causing it and how would you investigate?
  • What product, operational, or ML changes would you consider to improve a low completion rate?

“The math itself is trivial but I almost tripped on the denominator.”

View Post

Uber·Software Engineer·Onsite - Coding / Algorithms

May 2026
Uber onsite coding round for a SWE role, one problem the whole time with a side task of writing your own test cases and a tree-print helper. The main problem was a classic dynamic union-find setup and the round felt pretty focused, no behavioral fluff.
  • You start with an m x n water grid. Land cells are added one at a time via a list of positions. After each addition, return the current number of 4-directionally connected islands.

“I knew this was a union-find problem pretty fast, which was a relief.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber coding screen for a software engineer role, one algorithmic problem the whole time. The problem was well-constructed and had a clean greedy angle once you saw it, but I spent a few minutes going in the wrong direction before things clicked.
  • Given a non-decreasing array of prices across n booths and multiple queries each specifying a starting booth and a budget, find the maximum number of items Alex can buy per query by walking right from the starting position without exceeding the budget.

“Took me longer than it should have to realize the non-decreasing property was the whole key.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE coding round, got a frequency-based array problem. Pretty standard stuff but worth knowing your heap and bucket sort approaches cold before walking in.
  • Given an integer array and an integer k, return the k most frequent elements in the array.

“Went with a frequency map first, which is the obvious part.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber coding round for a software engineer role. One algorithmic problem, pretty involved, and they wanted a sub-quadratic solution with a full complexity breakdown.
  • You're given an integer array where each value represents a fruit type, and an integer k. For any subarray, a 'pair' exists for a fruit value if that fruit appears at least twice in the subarray (capped at one pair per fruit regardless of higher frequency). Return the count of subarrays that contain at least k such pairs. You must design a solution better than O(n²) and explain your approach with complexity analysis.

“The problem reads deceptively clean but the pair-capping detail is what trips you up.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview with a graph problem that looks deceptively clean on the surface. One question, but it had enough depth to keep me busy for a while.
  • Given a directed graph, find the root node such that the total number of edge reversals needed to make every edge point away from that root is minimized. The graph is 1-indexed and you should return the minimum reversal count across all possible roots.

“My first instinct was to just BFS from every node and count reversals each time, which technically works but blows up on large graphs.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview with a binary tree problem. Nothing too wild but the sorting logic has a few gotchas that can trip you up if you're not careful.
  • Given the root of a binary tree, return its nodes grouped by column from left to right. Within each column, nodes should appear top to bottom by row, and if two nodes share the same row and column, sort them by value.

“The column grouping part I got pretty quickly with a BFS and tracking offsets.”

View Post

Uber·Software Engineer·Onsite - Coding / Algorithms

May 2026
Uber SWE coding round with two algorithm problems back to back. Nothing too crazy but the sliding window question had some edge cases I didn't love, and the DP one was pretty standard if you've seen it before.
  • Given an integer array and a limit value, find the length of the longest contiguous subarray where the difference between its max and min elements does not exceed the limit.
  • Given a binary matrix of 0s and 1s, return the area of the largest square that contains only 1s.

“My first instinct was brute force, check every subarray and track max/min.”

View Post

Uber·Software Engineer·Technical Phone Screen

May 2026
Uber SWE interview with a graph/tree problem that looks straightforward until you think about scale. The edge reversal re-rooting question is genuinely tricky and I fumbled the implementation details under pressure.
  • You have a directed graph on n nodes (labeled 0 to n-1) where the edges form an undirected tree. For each node i, find the minimum number of edge reversals required so that node i is reachable from node 0. Return an array of length n.

“I went straight for recursive DFS and got maybe halfway through before the interviewer asked what happens with large n.”

View Post

Uber·Software Engineer·Onsite - Coding / Algorithms

May 2026
Three algorithm-heavy coding problems back to back for an Uber SWE round. No behavioral, no system design fluff, just pure data structures the whole time. Left feeling like I either nailed it or completely missed what they were actually testing.
  • Given an integer array and a limit value, find the length of the longest contiguous subarray where the difference between its max and min elements is at most the limit. They wanted a linear time solution.
  • You have an m by n grid starting as all water. Cells get flipped to land one at a time. After each flip, return both the current number of islands and the size of the largest island.
  • Design an in-memory hit counter that tracks hits over the last 5 minutes, then extend it into a per-user rate limiter with configurable request limits over a rolling time window.

“I knew immediately this was a sliding window problem but the tricky part is maintaining the running max and min efficiently as the window moves.”

View Post