Uber SDE-2 Interview Experience || L4 || Bangalore
Anonymous User
11995

🚖 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 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.
    (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:

    1. Brute force (4 loops) → Generate all subarrays and check conditions.
    2. Improved brute force (3 loops) → Avoid redundant calculations.
    3. Further optimization (2 loops) → Track min/max with sliding windows.
    4. 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 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 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:

      1. Most ordered restaurant.
      2. Most ordered dish.
      3. 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 🎉

Comments (11)