HackTheRounds Interview Experiences
Uber New Grad SDE Interview Experience (2026) - Offer
Complete breakdown of the Uber new grad SDE interview process: CodeSignal OA, two coding rounds, system design, and behavioral — from a fresh graduate who solve
By Anonymous · 2026-03-20
Background
I graduated last spring with a CS degree and had been preparing for interviews for about 4 months. By the time I applied to Uber, I had solved around 250 LeetCode problems — mostly mediums with a decent chunk of hards. Applied through the careers page and heard back within two weeks.
Timeline
- Applied online
- OA invite: 12 days later
- CodeSignal OA completed
- Recruiter call: 5 days after OA
- Virtual onsite (4 rounds): 2.5 weeks after recruiter call
- Offer: 6 days after onsite
Total: about 6 weeks from application to offer.
Online Assessment — CodeSignal (70 min)
The OA was hosted on CodeSignal and consisted of 4 questions with increasing difficulty. The first two were easy — basic array and string manipulation that took maybe 15 minutes combined. The third involved prefix sums and a sliding window, which was medium difficulty. The fourth was a graph traversal problem that required BFS with some state tracking.
I finished all four with about 8 minutes to spare. My advice: do not overthink the easy ones. Solve them quickly and save your energy for the harder problems.
Virtual Onsite
All four rounds happened on the same day over Zoom. Each was 45-50 minutes with short breaks in between.
Round 1: Coding — Interval Merging
Problem: Given a collection of intervals, merge all overlapping intervals and return the result. Follow-up: given a new interval, insert it into the existing set of non-overlapping intervals and merge if necessary.
[[problem/16?company=12|Merge Intervals]]
I sorted the intervals by start time and then iterated through them, merging when the current interval overlapped with the previous one. Pretty standard stuff if you have practiced interval problems. The interviewer then asked me to handle the insertion case without re-sorting the entire array — I used binary search to find the correct insertion position, then merged locally.
The follow-up question was: "What if intervals are arriving in a stream and you need to maintain the merged set efficiently?" I discussed using a balanced BST (like a TreeMap in Java) to store intervals, allowing O(log n) insertion and merging. We whiteboarded the approach but did not code it fully.
Round 2: Coding — OOD Ride Dispatch
Problem: Design an object-oriented ride dispatch system. The system should handle rider requests, match them with available drivers based on proximity, and manage ride states (requested, matched, in-progress, completed, cancelled).
This was more of a design-and-code hybrid. I started by identifying the core entities: Rider, Driver, Ride, and DispatchService. The interviewer wanted to see clean class design with proper encapsulation.
Key design decisions I made: - Used an enum for ride states with valid state transitions - Implemented a spatial index (simplified grid-based) for finding nearby drivers - Separated the matching logic into its own strategy class so different algorithms could be swapped in
The interviewer asked follow-up questions about thread safety (what happens when two riders request the same driver?) and how I would handle driver availability updates. I discussed using locks at the driver level and an event-driven architecture for status changes.
Round 3: System Design — Uber Eats Homepage Feed
Problem: Design the Uber Eats homepage feed that shows restaurants, promotions, and personalized recommendations to users.
I structured my answer around the standard system design framework:
Requirements: Display nearby restaurants sorted by relevance, show real-time availability and estimated delivery times, handle promotions and sponsored content, support personalization based on order history and preferences.
High-Level Architecture: I proposed a feed service that aggregates data from multiple backend services — restaurant service, pricing service, delivery ETA service, and a recommendation engine. The feed service composes the final response by fetching and ranking candidates.
Deep Dive — Ranking and Personalization: The interviewer spent a lot of time here. I described a two-stage ranking pipeline: a candidate generation phase using geolocation and basic filters, followed by a ranking phase using a lightweight ML model that considers user preferences, restaurant ratings, delivery time, and price sensitivity.
Caching Strategy: I proposed a multi-layer cache — CDN for static assets, Redis for restaurant metadata and menu data, and a short-TTL cache for delivery ETAs since those change frequently.
The interviewer pushed on availability: "What happens when the feed service is down?" I discussed graceful degradation — serving a cached version of the feed, falling back to a simpler ranking (e.g., just distance-based), and using circuit breakers to prevent cascading failures.
Round 4: Behavioral
The behavioral round focused heavily on collaboration and project management. Questions I remember:
- Tell me about a team project where you had to coordinate with multiple people
- Describe a time when you received critical feedback and how you responded
- How do you prioritize tasks when everything seems urgent?
- What is a technical topic you recently learned on your own?
I drew from both my internship experience and a capstone project where I led a team of four. The interviewer seemed to appreciate specific, detailed examples over vague generalities. I made sure each answer followed the STAR format (Situation, Task, Action, Result) and included concrete outcomes.
Result
I received the offer call 6 days after the onsite. The compensation package was solid for a new grad position — base salary, signing bonus, and RSUs. My recruiter was transparent about the numbers and gave me time to compare with other offers.
Tips
- CodeSignal scores matter. Uber uses the General Coding Assessment, and a strong score (800+) gets you fast-tracked. Practice on CodeSignal's platform specifically — the environment is slightly different from LeetCode.
- Know your intervals and merging patterns. Uber deals with a lot of geospatial and time-range problems. Interval-related questions seem to come up frequently based on what I have seen from other candidates.
- OOD is not optional. Even as a new grad, they expect you to write clean, well-structured code with proper class design. Practice modeling real-world systems as objects.
- System design is expected even for new grads. I was surprised by this, but the system design round was a real part of the evaluation. You do not need to go as deep as a senior candidate, but you should be able to draw a reasonable architecture and discuss trade-offs.
- Prepare 5-6 strong behavioral stories. Use the STAR format and make sure each story highlights a different quality — leadership, collaboration, handling failure, learning quickly, etc.
- 250 LeetCode problems was enough. I focused on understanding patterns rather than memorizing solutions. If you understand sliding window, two pointers, BFS/DFS, dynamic programming, and interval problems, you are in good shape for Uber.
Happy to answer questions. The process was well-organized and the interviewers were professional throughout.