
Uber Software Engineer interviews are coding-heavy: candidates report online assessments, LeetCode-style medium-to-hard screens, then onsite loops with system design, low-level design and behavioral rounds.
$188K
Avg. Base Comp
$275K
Avg. Total Comp
4-5 rounds
Typical Rounds
Not reported
Process Length
Candidates describe Uber's Software Engineer process as algorithm-first, then design-heavy. Many start with a recruiter call and an online assessment or HackerRank/CodeSignal-style screen. Reports describe LeetCode-style problems from medium to hard, sometimes lightly modified from familiar templates. Topics candidates mention include graphs and topological sort, linked lists, dynamic programming, matrix and grid connectivity, heap problems and, in two reports, bitmask DP or trie problems. Several people say time pressure mattered as much as the idea: one had about 20 minutes to code, and another was expected to solve a hard problem in roughly 45 minutes.
At SWE-2 and L4/L5 levels, candidates report loops of about four to five interviews. These combine coding, a hiring-manager or project deep dive, high-level design and behavioral questions. One candidate had a 60-minute low-level design round that required running code, for a Splitwise-style problem. Another was rejected mainly over a low-level design round, with examples like a file-system API or a meeting scheduler. System design prompts include a real-time gaming leaderboard, a notification system, trending items, and ride-hailing with matching and surge. Candidates who reached system design describe follow-up probing on caching, deduplication and latency tradeoffs.
Outcomes in this evidence lean negative, but a few candidates report an offer or advancing to team matching. Preparation that fits the reports: practice timed mediums and hards, rehearse a runnable LLD solution, and prepare a project story that leads with motivation and tradeoffs. Confirm the exact round breakdown with your recruiter, since it appears to vary by level and team.
Synthesized from 66 candidate 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 most important thing I wish I had known going into the Uber L4 process was how often the interviewers would ask for working, production-quality code instead of stopping at diagrams or pseudocode. My first round centered on designing a parking-lot system. We began at a high level and treated several components as black boxes, but the interviewer eventually asked me to implement parts of the design as executable code. The discussion emphasized choosing appropriate data structures, keeping the code clean, and making the main operations efficient.
The algorithm round used a variation of LeetCode 871, Minimum Number of Refueling Stops. I had to reason through how to use the available refueling opportunities to reach the destination, then explain the time and space complexity of my solution. The difficulty was less about an obscure trick and more about selecting the right data structure and producing a clean implementation.
The low-level design interview was an Uber-like ride-hailing platform. I was expected to implement core components with sensible object-oriented structure, appropriate design patterns, and concurrency handling. It was not enough to draw class diagrams. One notable follow-up pushed the conversation toward distributed systems: I had to explain what the service should do if publishing an event to Kafka failed.
For high-level design, I designed a stock-price movement alert service. Prices arrived from an exchange about once per second, and users could create one-time alerts based on percentage movement over continuously rolling windows ranging from minutes to years. An alert was removed after firing or after remaining untriggered for one month. The interviewer wanted comparisons between alternatives, especially around storage consumption and notification latency. The hiring manager round then focused on examples of end-to-end ownership, leadership, disagreements with teammates, conflict resolution, and times I took on responsibilities beyond my original scope. The interviewers were helpful, and the broader process followed the familiar sequence of screening, algorithms, low-level design, high-level design, and hiring manager discussion. My outcome was not recorded, but the clearest preparation lesson is to practice turning designs into executable code while discussing concurrency, failure handling, and operational tradeoffs.
Prep tip from this candidate
Practice implementing a parking-lot system and an Uber-like ride-hailing design as executable code, including concurrency and Kafka publish failures. Also rehearse the Minimum Refueling Stops pattern and a rolling-window stock alert architecture with explicit storage and notification-latency tradeoffs.
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 | |
| Top 3 Users | |
| Maximum Profit | |
| Download Facts | |
| Sum to N | |
| User Experience Percentage | |
| Distance Traveled | |
| Size of Joins | |
| P-value to a Layman | |
| Google Maps Improvement | |
| Third Purchase | |
| Groups of Anagrams | |
| Type-ahead Search | |
| Random Weighted Driver | |
| Sort Strings | |
| Binary Tree Conversion | |
| Hurdles In Data Projects | |
| Production Model Monitoring | |
| Dijkstra implementation | |
| Christmas Dinner Ingredient Optimization | |
| RAG Strict Source Control | |
| Messenger Service Design | |
| KNN From Scratch | |
| Type I and II Errors | |
| Implementing the Fibonacci Sequence in Three Different Methods | |
| Max Width | |
| Uniform Car Maker | |
| The Pirate’s Hunt | |
| Three Indexes Adding Zero |
Synthesized from candidate reports. Individual experiences may vary.
Candidates report a short recruiter call, often under 30 minutes, covering background, motivation and sometimes a challenging project. Some report a few basic technical questions, such as list versus set. Other candidates describe a separate business phone screen with a live coding problem, so confirm which format you have.
Candidates report an online assessment or HackerRank/CodeSignal-style screen with roughly three to four LeetCode-style problems, ranging from easy to hard. Reports mention strings, arrays, linked lists, dynamic programming and graphs. Expect time pressure, and clean complexity analysis may be part of the evaluation.
Candidates describe one or two live coding rounds with Uber engineers, typically medium-to-hard problems with follow-ups. Examples include grid connectivity, minimum-cost paths, topological sort, and queue problems with expiring data. Interviewers sometimes gave hints. Candidates stress explaining the approach and reaching working code.
Some candidates report a design round where you write working code, such as a Splitwise-style system, file-system APIs or a meeting scheduler. Two candidates say this round was the weak point that cost them. Practice finishing a complete, tested solution within about 60 minutes.
Candidates who reached this stage report prompts such as a real-time leaderboard, a stock-broker notification system, trending items and ride-hailing. Reports mention follow-up deep dives on caching, staleness, deduplication, late events and tail latency. Expect to justify APIs, data flow and tradeoffs aloud.
Candidates report a project deep dive or hiring-manager conversation covering their most complex work, ownership, conflict resolution and handling feedback. One candidate said they drifted into implementation detail when the interviewer wanted motivation and tradeoffs. A leadership-style interview was also reported at SWE-2 level.