Uber SDE-2 Interview Experience || L4 || Bangalore
🚖 Uber SDE-2 Interview Experience (Bangalore)
Process: Referral
My Experience: 3 years as SDE-1
Total Rounds: 5 (1 elimination coding + 4 interviews)
📌 Round 0 – Elimination Coding Round
-
Problem Statement:
Given an array of integersnumsand an integerlimit, return the size of the longest non-empty subarray such that the absolute difference between any two elements of this subarray is ≤limit.
(Similar to LeetCode 1438 – Longest Continuous Subarray With Absolute Diff ≤ Limit) -
Approach:
The question was framed in a driver-cab domain context. I explained four approaches step by step:- Brute force (4 loops) → Generate all subarrays and check conditions.
- Improved brute force (3 loops) → Avoid redundant calculations.
- Further optimization (2 loops) → Track min/max with sliding windows.
- Optimal solution (Deque + Sliding Window, O(n)) → Maintain min/max using two deques.
The interviewer was very particular about base cases and explaining time & space complexity for each approach.
✅ Cleared and moved to next rounds.
📌 Round 1 – DSA + DSU Problem
-
Problem:
We were given logs in the formatUserA-Shared-UserB-timestamp, meaning UserA and UserB share a cab.- Version 1: For each log, return how many cabs are currently running.
- Version 2: For a given logs , return the timestamp when all users get into one cab.
-
My Approach:
- Started with DFS/BFS for connected components.
- Shifted to DSU (Disjoint Set Union) for optimal handling.
- Implemented DSU with path compression + union by rank/size.
- Interviewer asked me to code DSU from scratch and explain parent finding, rank-wise clustering, and size-based union.
- Explained time and SPace Complexity for the same
📌 Round 2 – Low-Level Design (LLD)
-
Problem Statement:
Design a Train-Platform Management System with functionalities:- Assign trains to platforms based on input.
- Query which train is at a given platform at a specific time.
- Query which platform a train is at, at a specific time.
-
Expectations:
- Write runnable code (in my preferred language – chose Java).
- Explain design patterns used.
- Walkthrough every step while coding.
-
My Approach:
- Designed classes: Train, Platform, Scheduler, Schedule Manager.
- coded using minHeap Startegy and then explained random Assigning Startegy , wrote extensible code
- Focused on time-based queries and mapping train schedules.
- Did not added all class variables , just explained and just added variables requried for getting answer ( for example , for trian I jus added trian id , not capacity or type )
- The interviewer continuously cross-questioned choices and pushed for clean design + working code in 60–75 minutes.
📌 Round 3 – High-Level Design (HLD)
-
Problem Statement:
Design Uber Eats Homepage. -
Focus Areas:
-
Location-based search → GeoHashing & GeoIndexing.
-
API design for homepage and search results.
-
Schema design for Restaurants, Dishes, Orders.
-
Choice of database (SQL vs NoSQL) and justification.
-
Use of caching for performance.
-
Metrics to capture:
- Most ordered restaurant.
- Most ordered dish.
- Orders per restaurant.
-
-
Tools: HackerRank’s design whiteboard/drawing tool to draw architecture.
- Interveiwer was so frendly and was listeinig and supporting all approches and at the same time pointing out the mistakes in my explanation as well
📌 Round 4 – Managerial + Behavioural
-
Discussion around past work experience:
- Good coding practices followed.
- My role in previous projects.
- Ownership & impact of work delivered.
-
The manager also gave me ~15 minutes to ask questions about the team, role, and growth opportunities.
✅ Outcome
Finally, I received the offer for Uber SDE-2, Bangalore 🎉


