Uber SDE-2 Interview Experience || L4 || Bangalore

uber logo
uber
SDE-2Bangalore3 yearsOffer
September 12, 202514 reads

Summary

I successfully interviewed for the Uber SDE-2 position in Bangalore, which involved 5 rounds including a coding elimination, DSA, Low-Level Design, High-Level Design, and a Managerial discussion, ultimately leading to an offer.

Full Experience

I went through a comprehensive interview process for the SDE-2 (L4) role at Uber in Bangalore, initiated through a referral. With 3 years of experience as an SDE-1, I faced a total of 5 challenging rounds.

📌 Round 0 – Elimination Coding Round

This round featured a problem statement: Given an array of integers nums and an integer limit, return the size of the longest non-empty subarray such that the absolute difference between any two elements of this subarray is ≤ limit. This was similar to LeetCode 1438 and framed in a driver-cab domain context. I explained four distinct approaches step by step:

  • Brute force (4 loops) to generate all subarrays and check conditions.
  • An improved brute force (3 loops) to avoid redundant calculations.
  • Further optimization (2 loops) by tracking min/max with sliding windows.
  • The optimal solution (Deque + Sliding Window, O(n)) using two deques to maintain min/max.

The interviewer was very particular about base cases and required me to explain the time and space complexity for each approach. I successfully cleared this round.

📌 Round 1 – DSA + DSU Problem

I was given logs in the format UserA-Shared-UserB-timestamp, indicating that UserA and UserB shared a cab. The problem had two versions:

  • For each log, return how many cabs are currently running.
  • For a given set of logs, return the timestamp when all users get into one cab.

I initially started discussing DFS/BFS for connected components, but then shifted to a more optimal Disjoint Set Union (DSU) approach for handling the problem. I implemented DSU from scratch, explaining path compression and union by rank/size, and also detailed the time and space complexity for my solution. This round was also successful.

📌 Round 2 – Low-Level Design (LLD)

The problem statement was to design a Train-Platform Management System with functionalities to: assign trains to platforms based on input, query which train is at a given platform at a specific time, and query which platform a train is at for a specific time. I was expected to write runnable code in Java, explain design patterns, and walkthrough every step while coding. I designed core classes such as Train, Platform, Scheduler, and Schedule Manager. I coded using a minHeap strategy and then explained a random assigning strategy, focusing on writing extensible code. My primary focus was on implementing time-based queries and accurately mapping train schedules. The interviewer continuously cross-questioned my design choices and pushed me to deliver a clean design with working code within the 60–75 minute timeframe.

📌 Round 3 – High-Level Design (HLD)

This round involved designing the Uber Eats Homepage. I focused on several key areas:

  • Location-based search, using concepts like GeoHashing and GeoIndexing.
  • Designing APIs for the homepage and search results.
  • Schema design for Restaurants, Dishes, and Orders.
  • Choosing between SQL and NoSQL databases and justifying my choice.
  • Implementing caching strategies for performance.

I also discussed how to capture metrics such as the most ordered restaurant, most ordered dish, and orders per restaurant. I utilized HackerRank’s design whiteboard/drawing tool to illustrate my architectural design. The interviewer was very friendly, listened attentively, and supported my approaches while also providing constructive feedback on my explanations.

📌 Round 4 – Managerial + Behavioural

This round was a discussion centered around my past work experience. We covered topics such as the good coding practices I followed, my specific roles in previous projects, and the ownership and impact of the work I delivered. Towards the end, the manager gave me approximately 15 minutes to ask questions about the team, the role, and available growth opportunities at Uber.

✅ Outcome

I am delighted to share that I finally received an offer for the Uber SDE-2 position in Bangalore! 🎉

Interview Questions (5)

Q1
Longest Continuous Subarray With Absolute Diff ≤ Limit
Data Structures & AlgorithmsMedium

Given an array of integers nums and an integer limit, return the size of the longest non-empty subarray such that the absolute difference between any two elements of this subarray is ≤ limit.

Q2
Cab Sharing Logs Analysis (DSU)
Data Structures & Algorithms

We were given logs in the format UserA-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 set of logs, return the timestamp when all users get into one cab.

Q3
Design Train-Platform Management System
System Design

Design a Train-Platform Management System with functionalities to:

  • 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.
I was expected to write runnable code (in Java), explain design patterns, and walk through every step while coding.

Q4
Design Uber Eats Homepage
System Design

Design the Uber Eats Homepage. Focus areas included:

  • 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. I used HackerRank’s design whiteboard/drawing tool to illustrate the architecture.

Q5
Managerial and Behavioral Discussion
Behavioral

This round involved a discussion around my past work experience. Topics included good coding practices I followed, my specific role in previous projects, and the ownership and impact of my delivered work. I was also given about 15 minutes to ask questions about the team, the role, and growth opportunities.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!