
Uber Software Engineer interviews typically run 3–5 rounds: recruiter screen, online assessment, technical coding, system design, and behavioral. The process spans roughly 4–6 weeks and is distinguished by heavy DSA emphasis with medium-to-hard LeetCode-style problems.
$119K
Avg. Base Comp
$410K
Avg. Total Comp
4-6
Typical Rounds
3-6 weeks
Process Length
Across the nine candidate experiences we've collected for this role, one pattern stands out clearly: Uber's bar isn't just about solving the problem — it's about how fluently you can reason through it under pressure. Multiple candidates who didn't receive offers described situations where they understood the approach but ran out of time, couldn't articulate tradeoffs cleanly, or got stuck on a harder variant without a clear recovery strategy. The candidate who spent 25 minutes chatting before getting only 20 minutes to code is a good example of how quickly the window can close.
The technical content itself skews toward graph problems, matrix/grid traversal, dynamic programming, and linked lists — but what's interesting is how often Uber modifies known problems rather than asking them verbatim. We've seen this across multiple accounts: a medium LeetCode problem with a twist, a grid question that layers in connected components, an escape room scheduling problem that requires deriving the output format yourself. This means pattern recognition alone won't carry you. Candidates who succeeded consistently mentioned being comfortable deriving solutions on the spot and explaining their complexity analysis as they went, not just arriving at a correct answer.
The system design component is also worth taking seriously even at the SWE level. Candidates described prompts involving real-time leaderboards, ride-hailing architecture with surge handling, and room reservation systems — all of which require genuine depth on data flow, API design, and latency tradeoffs. The accepted-offer candidates who mentioned system design all emphasized defending their architecture, not just sketching it. That distinction — between presenting a design and actually owning it — seems to be exactly what Uber's interviewers are probing for.
Synthetized from 9 candidates reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Uber process.
The hardest part for me was the system design round, because it wasn’t just whiteboarding something abstract — I had to walk through building a scalable real-time gaming leaderboard and really defend the architecture, APIs, and data flow. My process started with a recruiter screen, then a hiring manager round that felt like a mix of product sense and execution, with some OOP-style coding in Python or Java plus a bit of higher-level design. After that came the onsite, which was five back-to-back rounds and covered data structures, database management, deep system design, and behavioral. The coding questions were very much in the classic big-tech style, but still technical enough that you couldn’t coast; I saw things like linked lists, tree traversals, frequent elements in an array, and a couple of array/windowing problems. One round also leaned into database lifecycles and SQL, so it helped to know more than just basic queries and be able to talk through how data moves through a system.
The behavioral portion was pretty straightforward but still mattered, especially around ownership of my code and how I handle feedback. The interviewers were nice and supportive throughout, which made the process feel fair even when the questions got tough. I’d say the main thing to prepare for is depth: don’t just grind LeetCode patterns, make sure you can explain tradeoffs in system design and go a level deeper on database concepts and object-oriented thinking. I also got a lot of value from doing mocks for the system design and database-style rounds, because those exposed gaps in how clearly I was explaining my decisions. I ended up receiving and accepting an offer, so the process was demanding but very manageable with the right prep.
Prep tip from this candidate
Practice a real-time leaderboard-style system design and be ready to justify architecture, APIs, and data flow out loud. Also drill array/windowing problems, frequent-elements style DSA, and at least one round of database lifecycle or SQL discussion rather than only standard coding practice.
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Uber
Write a query to select the top 3 departments with at least ten employees and rank them according to the percentage of their employees making over 100K in salary.
| Question | |
|---|---|
| Weighted Keys | |
| Maximum Profit | |
| Sum to N | |
| User Experience Percentage | |
| Distance Traveled | |
| Download Facts | |
| P-value to a Layman | |
| Third Purchase | |
| Christmas Dinner Ingredient Optimization | |
| Random Weighted Driver | |
| Type I and II Errors | |
| Max Width | |
| Uniform Car Maker | |
| Type-ahead Search | |
| External Sorting | |
| Bernoulli Sample | |
| Stakeholder Communication | |
| k-Means from Scratch | |
| Your Strengths and Weaknesses | |
| Pool Matching | |
| Parking Application System Design | |
| The Brackets Problem | |
| Raining in Seattle | |
| Retailer Data Warehouse | |
| Three Zebras | |
| Daily Retention Summary | |
| Average Order Value | |
| Rearranging Digits | |
| CTR by Age |
Synthesized from candidate reports. Individual experiences may vary.
An initial phone call with a recruiter covering your background, resume, motivations, and logistical questions like expectations and fit. Some screens also include light technical questions such as basic CS concepts or a discussion of a past architectural decision.
A HackerRank or CodeSignal-based coding assessment with 3-4 DSA questions ranging from easy to hard LeetCode-style difficulty, covering topics like arrays, strings, dynamic programming, and linked lists. This is typically sent within a week or two of applying and must be completed within a set window.
A live coding interview on Zoom or CodeSignal with one or two Uber engineers, focused on medium-to-hard LeetCode-style problems including graphs, trees, arrays, and dynamic programming. Interviewers expect clean code, complexity analysis, and clear verbal reasoning throughout.
A conversation with the hiring manager that blends product sense, execution thinking, and behavioral questions around ownership, feedback, and past decisions. Some versions of this round also include OOP-style coding or higher-level design discussion.
A structured loop of back-to-back rounds covering data structures and algorithms, database concepts and SQL, system design (e.g., real-time leaderboards, ride-hailing platforms, room reservation systems), and behavioral questions. Coding rounds emphasize medium-to-hard problems and candidates are expected to defend architectural tradeoffs in the design round.