uber logo

Uber Interviews

63 experiences2,692 reads199 questions27% success rate
UBER SDE2 Interview | Rejected
uber logo
Uber
SDE IIRejected
December 19, 202523 reads

Summary

Applied for Uber SDE2 role and faced multiple rounds of interviews, but ultimately got rejected. The interview process included a phone screening with a stack problem, followed by DSA and system design rounds. Despite clearing some rounds, the candidate was not able to solve certain problems and was rejected in the end.

Full Experience

Got a HR call directly for the Phone screening round after updating my LinkedIn profile to be open for work. The first round was an OA with one medium DP question and one hard question on HackerRank, with a 90-minute time limit and camera/mic enabled. The second round was a phone screening where the interviewer gave a stack problem. The problem involved merging K cars together and repeating the merge process, returning the final arrangement. For example, given a list of cars, with K=2, the output was a specific arrangement. The interviewer then mentioned that I cleared the phone screening and was selected for the complete interview schedule.

The first DSA round had a question involving some minor math and a line sweep algorithm, but I wasn't able to solve it even after multiple hints, leading to a 'No Hire' decision. The LLD round required designing a voter management system with states, constituencies, districts, and EVMs, expecting working code for at least one feature. I struggled to code properly and was not hired. The HLD round involved designing a feed notification service similar to Instagram, which I handled well and was considered a 'Strong Hire'. The managerial round focused on behavioral questions about my projects and team. Despite the strong hire in the HLD round, the overall outcome was a rejection.

Interview Questions (2)

Q1
Merge K Cars Problem
Data Structures & Algorithms

You are given a list of car names. You can merge K cars together and after merging, the process can repeat. Return the final arrangement of the cars. For example, given the input: Honda, Honda, Maruti, Maruti, Maruti, BMW, Maruti, Maruti, Maruti with K=2, the output is Honda, Maruti, BMW, Maruti.

Q2
Line Sweep Algorithm Problem
Data Structures & Algorithms

The question involved a problem with some minor math and required the use of a line sweep algorithm. The exact problem statement wasn't detailed, but the candidate mentioned struggling to solve it even after multiple hints.

Uber SDE 2 Interview Round 1 (Elimination)
uber logo
Uber
SDE 2Ongoing
December 18, 202537 reads

Summary

During the Uber SDE 2 interview round, I encountered a challenging problem related to grouping people for trips with specific constraints. The problem required finding the maximum number of people who could go on a trip based on their group size requirements. Despite not being able to think of an approach, the problem provided valuable insight into handling complex grouping constraints.

Full Experience

Uber SDE 2 Interview Round 1 (Elimination)

There are n people. Each can create a group and add people to it, but they need to form a group with a minimum of L and maximum of M people, excluding themselves. The goal is to find the maximum number of people who can go on a trip. For example, if L is [1,1,1] and M is [1,1,1], with three people (A, B, C), A can create a group with B, allowing both to go on a trip. However, C is left alone and cannot form a group since he needs at least one person to join him.

I struggled to think of an approach for this problem, which highlighted the need for a more systematic strategy to tackle such grouping constraints.

Interview Questions (1)

Q1
Maximize Trip Participation with Group Constraints
Data Structures & Algorithms

There are n people. Each person can create a group and add people to it, but they need to form a group with a minimum of L and maximum of M people, excluding themselves. The goal is to find the maximum number of people who can go on a trip.

For example, if L is [1,1,1] and M is [1,1,1], with three people (A, B, C), A can create a group with B, allowing both to go on a trip. However, C is left alone and cannot form a group since he needs at least one person to join him.

Uber L4(SDE-2) Interview Experience
uber logo
Uber
SDE-2Offer
December 11, 202576 reads

Summary

I completed an 8-week interview process for an SDE-2 position at Uber, successfully securing an offer after multiple technical and behavioral rounds, including DSA, LLD, HLD, and a leadership assessment.

Full Experience

The entire interview process with Uber took 8 weeks, commencing after I successfully cleared the Online Assessment by solving 3.5 out of 4 questions. My first hurdle was the DSA Screening in Week 1, where I was presented with a LeetCode Hard question on Quad Trees. I received positive feedback and advanced to the onsite rounds.

In Week 2, I navigated two distinct rounds. The first was another DSA Round, where I tackled a LeetCode Hard question. The emphasis was heavily placed on delivering working code that passed all test cases, meticulously explaining my approach, and deriving the space and time complexities. Following that, I had an LLD Round, which was a machine coding challenge requiring me to implement a system with specific features. This round scrutinized my ability to produce runnable code, utilize appropriate design patterns, handle concurrency effectively, and employ the most optimal algorithms for the core logic.

Week 4 brought the Leadership Round, comprising situation-based questions. Here, I had to articulate how I would act, or had acted, in various workplace scenarios, aiming to convince the interviewer of my capabilities as an L4 level engineer.

The HLD Round took place in Week 5. I was tasked with designing an 'Order Processing System', with a particular focus on displaying top-k items based on their popularity score and presenting detailed item information. The discussion spanned requirement gathering, outlining a high-level solution, API design, and a thorough evaluation of various database choices.

By Week 6, the debrief concluded, and I received the much-anticipated hire call. I was informed that one round went exceptionally well, and the other three performed sufficiently to secure the offer.

Week 7 involved a Team Match Call, which was an informal discussion covering the team's ongoing work, my professional experience, and my preferences for future tasks.

Finally, in Week 8, after receiving approval from leadership, I got the official offer on November 30th.

Having previously worked at Microsoft, I've always aspired to work in a high-paced environment like Uber, and I'm incredibly pleased with this offer. I'd like to extend my gratitude to the community for providing invaluable information that greatly aided my preparation.

Interview Questions (1)

Q1
System Design: Order Processing System with Top-K Items
System Design

Design a High-Level System for an Order Processing System. The primary focus should be on how to efficiently display top-k items based on their popularity score, and also how to display detailed information for each item. The discussion covered requirement gathering, high-level solution architecture, API design, and database selection and evaluation.

Preparation Tips

I would strongly suggest speaking out your mind during interviews; it truly helps the interviewer understand your thought process. For Data Structures & Algorithms, my advice is to heavily grind LeetCode Hard problems, as this is the minimum they often ask these days; don't waste time on medium-level questions. For Low-Level Design, perfect your understanding of concurrency and design patterns, as these are crucial for developing robust, production-ready solutions. For System Design, start by mastering all the necessary theory (which is readily available online) for designing scalable solutions, and then practice a multitude of questions. I recommend focusing on more open-ended questions rather than common ones, as this will significantly improve your critical thinking. Finally, for the Leadership Round, prepare thoroughly for commonly asked behavioral questions, making sure you have real-life work stories ready to share.

Uber L4 interview experience | Accepted
uber logo
Uber
SDE II5.5 yearsOffer
November 29, 2025107 reads

Summary

I interviewed for an L4 position at Uber and was ultimately accepted after multiple rounds covering coding, system design, and behavioral aspects.

Full Experience

I had my interview experience for an L4 role at Uber with 5.5 years of experience. The process involved several rounds: Screening, DSA, LLD, HLD, and a Hiring Manager round.

Screening Round

This round focused on a LeetCode problem. I was given the 'Find The Closest Palindrome' problem and I was able to solve it successfully.

DSA Round

The main problem involved a grid with police stations, a thief, and a bank. Police stations patrolled within a 'k' Manhattan distance, and I had to determine if the thief could reach the bank without encountering police. My initial approach combined multi-source BFS to identify safe zones and then DFS to find a path. The interviewer then presented a follow-up: what if each police station had a different 'k' value? For this, I proposed using Dijkstra's algorithm. I was able to quickly code both approaches, which impressed the interviewer.

LLD Round

I was asked to design a data structure with time-to-live (TTL) functionality, receiving (key, timestamp) pairs in increasing order. The requirements included counting all active keys, active keys for a specific key, and standard CRUD operations. My initial idea was to use a Map<String, Queue<Timestamp>> and clean expired keys on each function call. The interviewer suggested an optimization using a global Queue<Pair> (where Pair = (timestamp, key)) to poll expired elements more efficiently, updating counts with a Map<String, Integer> and a global total counter. This improved the average-case complexity.

HLD Round

This round was about designing a recommendation system for the Amazon homepage. I framed it as a Top-K problem, explaining how I'd track metrics like item view and buy counts using Flink, maintain sorted sets, and use them for real-time recommendations. I realized afterward that I struggled with scale estimations, didn't provide enough diverse metrics (beyond views/buys, I only briefly mentioned comments/ratings), overlooked the need for country-specific recommendation sets, and my Redis cache approach for different metrics lacked extensibility.

Hiring Manager (HM) Round

This round consisted of generic behavioral questions, covering my past experiences and how I would handle various hypothetical situations.

Overall, I received a 'Strong Hire' for DSA and HM, 'Lean Hire' for LLD, and 'Hire' for HLD, which led to an offer.

Interview Questions (6)

Q1
Find The Closest Palindrome
Data Structures & AlgorithmsHard

Given a string n representing an integer, find the closest integer (not including itself), which is a palindrome. If there is a tie, return the smaller one.

Q2
Thief and Police in Grid (Manhattan Distance)
Data Structures & Algorithms

There is a grid with police stations, 1 thief, and 1 bank. Every police station can patrol within k Manhattan distance. You need to determine if there is any path for the thief to reach the bank without encountering the police.

Q3
Thief and Police in Grid (Varying Manhattan Distance)
Data Structures & Algorithms

Follow-up: What if the value of k is different for every police station?

Q4
Design a Time-to-Live (TTL) Data Structure
System Design

Design a data structure with time-to-live (TTL) where you receive (key, timestamp) pairs (in increasing order). You need to provide: a) Count of all active keys b) Count of active keys for a particular key c) CRUD functions

Q5
Design an Amazon Homepage Recommendation System
System Design

Design a recommendation system for the Amazon homepage.

Q6
Behavioral Questions on Past Experiences
Behavioral

Generic behavioral questions on past experiences and some hypothetical situations.

Uber L4 - SDE2 Android Interview experience
uber logo
Uber
sde2 androidRejected
November 23, 202572 reads

Summary

I interviewed with Uber for an L4 SDE2 Android position and completed a CodeSignal OA, phone screen, DSA, Android Machine Coding, HLD, and Hiring Manager rounds. Unfortunately, I was rejected after the final assessment.

Full Experience

I recently had the opportunity to interview with Uber for an L4 SDE2 Android position. The process began with a CodeSignal Online Assessment, where I managed to solve 3 problems completely and about 80% of the 4th one. A couple of days later, I received a call from the recruiter, inviting me for the subsequent rounds.

The first official round was a Phone Screen, where I was asked a Data Structures and Algorithms question about finding the minimum number of elements to append to a string to make it a palindrome. I solved this problem completely. My recruiter then informed me that my resume was moved forward for the onsite interviews.

The onsite rounds included:

  1. DSA Round: This round featured a mathematical DSA question. I was given a number x and an array, and had to determine if it's possible to make all elements in the array equivalent to any number y by adding or subtracting multiples of x. The initial question set x to 1, which I solved in multiple ways. The follow-up extended x to be any integer greater than or equal to 1.
  2. Android Machine Coding: For this round, I had to open a pre-written Android application in Android Studio and implement a couple of functionalities for a notes app, specifically edit and delete a note. I was also asked to review some of the existing code.
  3. HLD Round: This was a High-Level Design round where I was tasked with designing an Android SDK that includes a search bar, which, when typed into, would display a list of places. Despite feeling that this round went quite well, I received a 'no hire' feedback for it.
  4. HM Round: The final round was with a Hiring Manager, where I faced standard behavioral questions and was asked to deep dive into one of my projects.
Ultimately, I received a call from the recruiter informing me that they decided to move ahead with another candidate.

Interview Questions (4)

Q1
Minimum Appends for Palindrome
Data Structures & Algorithms

Given a string, what is the minimum number of characters that need to be appended at the end of the string to make it a palindrome?

Q2
Array Equivalence with X
Data Structures & Algorithms

Given a number x and an array of integers, determine if it's possible to make all elements in the array equivalent to some number y. You can add or subtract any multiple of x (including zero) from each element in the array. Initially, x was 1. The follow-up extended x to be any integer greater than or equal to 1.

Q3
Notes App Functionality Implementation
Other

Given a pre-written Android notes application, implement functionalities such as editing and deleting a note. This involved making changes within the provided codebase in Android Studio and reviewing existing code.

Q4
Design Android SDK for Places Search
System Design

Design an Android SDK that includes a search bar. When a user types into the search bar, it should display a list of places.

Uber interview sde1
uber logo
Uber
SDE I
November 13, 202561 reads

Summary

I interviewed for an SDE1 position at Uber and was challenged with a problem to find the kth smallest square in a sorted array, focusing on optimal time complexity.

Full Experience

I recently had my interview for the SDE1 role at Uber. It was a focused session on problem-solving, and I encountered a specific coding challenge. The interviewer asked me to find the kth smallest square in a given sorted array, with a particular emphasis on achieving a time complexity better than O(k), which made the problem quite interesting.

Interview Questions (1)

Q1
Kth Smallest Square in Sorted Array
Data Structures & Algorithms

Given a sorted array of integers, find the kth smallest square of an element from the array. The solution should aim for a time complexity smaller than O(k).

Uber SDE 3 Phone Screen
uber logo
Uber
SDE 3
November 7, 202568 reads

Summary

I had a phone screen for an SDE 3 role at Uber, which focused on designing an API for scheduling meetings within a fixed set of conference rooms.

Full Experience

I recently had a phone screen for an SDE 3 position at Uber. The interviewer presented a system design problem where I needed to build an API to manage meeting schedules across a predefined set of conference rooms. The core task was to implement a scheduleMeeting(startTime, endTime) method. This method should identify and reserve any available room during the specified time, returning the room's identifier. If no rooms were available for the given time slot, the API should throw an error. The problem statement included several example scenarios using Unix timestamps to demonstrate the expected behavior, such as assigning rooms with overlapping start times, handling fully booked periods, and re-assigning rooms once they become free. The interviewer also specified an expected time complexity of log(meetings) + O(rooms).

Interview Questions (1)

Q1
API Design: Conference Room Meeting Scheduler
System Design

Build an API that can schedule meetings in a predefined set of conference rooms. It should have a method like scheduleMeeting(startTime, endTime) which returns any available room at that time and reserves it or throws an error if no rooms are available.

For example, let's say an Uber building has 3 conference rooms and we start getting requests as follows: scheduleMeeting(1647718624, 1647718731) // assign let’s say room1. scheduleMeeting(1647718624, 1647718931) // same start time, assign room2. scheduleMeeting(1647718624, 1647718431) // assign room3 as same start time. scheduleMeeting(1647718624, 1647768731) // error as no room is available for this time. scheduleMeeting(1647718732, 1647728789) // assign room1 as it became free

We are using Unix timestamps here, for simplicity, we can take integer values as well. Expected Time Complexity: log(meetings) + O(rooms) (since number of rooms are finite). Similar problem: Range Module. There are differences between both problems, but you can take it as a reference.

Uber | SSE | Screening Round | Reject
uber logo
Uber
SDE IIRejected
November 7, 2025102 reads

Summary

I recently had a screening round interview with Uber for a Senior Software Engineer role. During the interview, I was presented with a grid-based problem involving robot movement constraints, which ultimately led to a rejection.

Full Experience

I interviewed with Uber for an SSE (Senior Software Engineer) position. It was a screening round, and unfortunately, I was rejected after this stage. The main part of the interview involved solving a coding problem. I had to identify robots in a 2D grid that satisfied specific movement requirements based on a query array. It was an interesting problem that tested my ability to navigate a grid and check conditions efficiently.

Interview Questions (1)

Q1
Robot Movement Constraints in a 2D Grid
Data Structures & Algorithms

You are given a 2D grid (Location Map) and a Query Array. The Location Map contains characters 'O' (robot), 'E' (empty space), and 'X' (blocker).

The Query Array specifies the exact distances a robot must be able to move before hitting a blocker in four directions:

  • Left: query[0] spaces
  • Top: query[1] spaces
  • Bottom: query[2] spaces
  • Right: query[3] spaces

The boundaries of the map are also considered blockers.

Inputs:

| O | E | E | E | X |
| E | O | X | X | X |
| E | E | E | E | E |
| X | E | O | E | E |
| X | E | X | E | X |

Query Array:

[2, 2, 4, 1]

This means a robot must be able to move 2 spaces left, 2 spaces top, 4 spaces bottom, and 1 space right without hitting a blocker.

Task:

Return the coordinates of all robots that meet these exact movement constraints in all four directions.

Uber | SDE 2 Interview Experience
uber logo
Uber
SDE 2Ongoing
November 4, 2025143 reads

Summary

I recently had my first coding round for the SDE 2 role at Uber. After successfully solving the Alien Dictionary problem, I received positive feedback and am now moving to the second coding round.

Full Experience

Initial Contact

An Uber recruiter reached out to me on LinkedIn in the second week of September 2025 regarding this opportunity. After completing the OA the next week, I requested some prep time until the end of October 2025, which they kindly agreed to.

Round 1 - Coding Interview

My first coding round happened a couple of days ago. The problem was exactly this one: Alien Dictionary — LeetCode.

Unfortunately, I hadn’t come across this question before since it’s a premium one, but I managed to solve it during the interview. There were a bunch of follow-ups and optimizations which I was able to answer within 1 hour of the interview. The interviewer emphasized time and space complexity, so being prepared to explain my approach clearly and optimize where possible was crucial.

Round 1 - Post-Interview Update

I got a call from the recruiter afterward — she mentioned that the round went really well, and they’d be scheduling the second coding round soon. That’s where things stand for now. I’ll keep this post updated as I progress through the next rounds. 🙌

Interview Questions (1)

Q1
Alien Dictionary
Data Structures & Algorithms

The coding problem presented was exactly the one found at the provided LeetCode link.

Uber Front End Software Engineer II Interview
uber logo
Uber
Front End Software Engineer IIOngoing
November 3, 202599 reads

Summary

I interviewed for a Front End Software Engineer II role at Uber, completing a phone round and four onsite rounds covering DSA, System Design, Behavioral, and Front End specialization. Despite feeling I met minimum bars for most rounds, especially after struggling with a graph problem in Javascript, I'm quite pessimistic about the final outcome.

Full Experience

Phone Round

My phone round involved a straightforward problem: finding the k-th smallest element in an array. I approached this by using a limited size heap, which felt like the most appropriate solution.

On Site Rounds

1. Data Structures & Algorithms (DSA)

This round featured a problem similar to Number of Islands II. Initially, I mistook it for Number of Islands I, but I quickly realized that the matrix would change and be queried multiple times, which pointed towards the 'II' version. Thankfully, I was familiar with the proper solution using Union Find and managed to implement it correctly just in the nick of time. I'm hoping this was a Strong Hire.

2. System Design

The system design problem was to design Google Calendar. I had prepared for this, but it felt like some of my planned points weren't entirely relevant, so the interviewer took more control, asking specific questions like "how to do A?" and "how to do B?". I was able to answer all their questions successfully, but I felt like I lost an opportunity to go above and beyond. Uber seems to have this interview style where you can either do well or extra well. I believe this was at least a Hire; the interviewer even mentioned they had "everything they needed," which I took as a positive sign.

3. Behavioral

This round is always hard to gauge. I believe I responded effectively to all questions based on my past work experiences. I have no reason to think it was anything less than a Hire.

4. Specialization - Front End

I consider this the most challenging round because it could be either a UI-building task or a LeetCode-style Javascript question. Despite having four years of React experience, I'm not accustomed to solving LeetCode problems in Javascript, which was a mistake in my preparation. I had prepared primarily for a UI question, but was surprised by a Javascript question involving graphs and async jobs. I struggled quite a bit, as I'm not used to implementing graph algorithms or using Sets in Javascript. The interviewer allowed me to use Google, but that definitely eats into precious time. Nevertheless, I managed to solve the problem, again, just in the nick of time, though I did have one minor loose end which I later corrected and emailed to the interviewer. Once more, the interviewer stated they had "everything they needed," leading me to believe I passed the minimum bar for a Hire.

Based on my performance (Strong Hire, Hire, Hire, Hire), I believe it should be sufficient, but you never truly know with Uber. I've noticed their evaluation process can extend further, with reviewers scrutinizing interviewers' feedback, which explains why some candidates get surprising rejections even after positive interviewer interactions.

Honestly, I'm quite pessimistic and anticipate a rejection. When you're not absolutely perfect, anything can hinder your evaluation. I fear the evaluations might be lower, like Lean Hire, Hire, Hire, Lean Hire, which might not be enough for an offer.

Interview Questions (4)

Q1
Find Kth Smallest Element in Array
Data Structures & Algorithms

Given an array, the task was to find the k-th smallest element. This is a common problem in data structures and algorithms.

Q2
Number of Islands II
Data Structures & AlgorithmsHard

The problem was Number of Islands II, where you're given an empty 2D binary grid and a list of operations. Each operation adds a land cell (1) to the grid. After each operation, you must return the number of islands. I initially confused it with the simpler Number of Islands I.

Q3
Design Google Calendar
System Design

The system design question involved designing a comprehensive system like Google Calendar. This included considerations for scheduling events, managing notifications, handling user synchronization, and ensuring scalability and reliability.

Q4
Javascript Graph Problem with Async Jobs
Data Structures & Algorithms

This was a Javascript-specific programming problem that involved working with graphs and managing asynchronous jobs. It required knowledge of graph traversal algorithms and handling async operations within a Javascript environment.

Preparation Tips

My preparation primarily focused on UI-building questions for the specialization round, as I have significant React experience. However, I was caught off guard by a Javascript question involving graphs and async jobs. In hindsight, practicing LeetCode-style problems specifically in Javascript is a critical area I should have focused on for frontend interviews.

Uber | SSE | Technical Phone Round
uber logo
Uber
SSE (L5-A) backend positionRejected
October 30, 202555 reads

Summary

Applied for Uber's SSE (L5-A) backend position. The interview process included a technical phone round with two questions. The first was a LeetCode problem on water and jug problem, which required an optimized solution. The second was a system design problem involving managing a hierarchy of employees with specific functions. Both interviews resulted in rejection.

Full Experience

Appeared for SSE (L5-A) backend position

  1. https://leetcode.com/problems/water-and-jug-problem/
    Interviewer won't help at all. He pasted the question and then turned off his audio video. Optimized working solution is expected. [Rejected]
  2. I again appeared for different job ID for same SSE position
    1. You are given a list of edges [[a,b], [b,c], [d,f], [f,g]]. Here a,b means a is manager of b. You have to implement 3 functions:
        a. Return total number of employees under a manager (both direct and indirect)
        b. Change the manager of an employee. If that employee has some reportees then those will also be affected.
        c. Add new employees. Eg: [c,d] needs to be added.

      Input format was not hardcoded. You have to write the main function on how input will be given to these apis.

      Basically if you create a tree structure you would be able to solve this question. The key was to have optimized solution such that (a) part should have TC - O(1)

      I couldn't come up with optimized solution in the given time.
      [Rejected]

Interview Questions (2)

Q1
Water and Jug Problem
Data Structures & AlgorithmsMedium

Water and Jug Problem - Determine if it is possible to measure exactly z liters using two jugs with capacities x and y liters.

Q2
Employee Hierarchy Management
Data Structures & Algorithms

You are given a list of edges representing a hierarchy where each edge [a,b] indicates a is the manager of b. Implement three functions:
  a. Return total number of employees under a manager (direct and indirect)
  b. Change the manager of an employee, propagating changes to reportees
  c. Add new employees to the hierarchy.

Input format is not hardcoded; you must define how input will be provided to the APIs. The key challenge is to design an optimized solution with O(1) time complexity for part (a).

Uber | Software Engineer II (SE-2) | Bangalore | Interview Experience
uber logo
Uber
Software Engineer II (SE-2)BangaloreOffer
October 25, 202582 reads

Summary

I successfully navigated through multiple technical and design rounds for a Software Engineer II role at Uber in Bangalore, ultimately receiving and accepting an offer.

Full Experience

A few months ago, I applied for a Software Engineer II position at Uber through a referral. My interview process began with a CodeSignal test where I successfully solved both coding questions.

Technical Screening

This round focused on Data Structures & Algorithms, specifically a dynamic programming question which I solved successfully.

Coding Round 1 (Algorithms & Data Structures)

I faced two coding questions in this round, with a strong emphasis on Time Complexity and Space Complexity. The problems were:

  1. Cheapest Flights Within K Stops
  2. Maximum Points You Can Obtain from Cards

Coding Round 2 (Depth in Specialization - Low-Level Design)

This round involved implementing file system APIs: mkdir, pwd, and cd. The mkdir and pwd functionalities were straightforward, but cd presented a challenge due to a wildcard * which needed to match '.', '..', or any child directory.

Design & Architecture (High-Level Design)

I was asked to design a backend system for an e-commerce website, specifically for the browsing experience and excluding the purchase process. The system needed to use popularity data to highlight top items. Additionally, I had to design an event processor for various product-related events ('Product added to Cart,' 'Product viewed,' etc.), discussing data storage and prioritizing consistency versus availability. I also had to elaborate on the data structure for product catalog storage.

Collaboration & Leadership

This round was scheduled but later canceled.

After completing these rounds, I received an offer from Uber and happily accepted it!

Interview Questions (5)

Q1
Minimum Appends for Subsequence
Data Structures & Algorithms

Given two strings, s and t, consisting only of lowercase English characters. Determine the minimum number of times s must be appended to itself for t to be a subsequence of the resulting string.

Example: s: boy t: oyb

Answer: 2, because "boyboy" contains "oyb" as a subsequence.

Q2
Cheapest Flights Within K Stops
Data Structures & Algorithms

Standard problem about finding the cheapest path between two nodes in a graph with a limit on the number of stops.

Q3
Maximum Points You Can Obtain from Cards
Data Structures & Algorithms

Standard problem about maximizing points by picking cards from the ends of a row.

Q4
Implement File System APIs
Data Structures & AlgorithmsHard

Implement basic file system APIs:

  1. mkdir
  2. pwd
  3. cd

The cd command must support a wildcard * that can match any of '.', '..', or any child directory.

Q5
E-commerce Product Browsing System Design
System DesignHard

Design a backend system for an e-commerce website that displays merchandise. The system's scope is limited to the browsing experience, specifically excluding the purchase process. Popularity data should be used to select and highlight the top items. I was also asked to design an event processor that would handle vast amounts of events, such as 'Product added to Cart,' 'Product viewed,' 'Product wishlisted,' and 'Product purchased.' Key questions posed to me were: 'Where should this data be stored?' and 'What should be prioritized: consistency or availability?' The interviewer also asked for an example of data that would be stored in MongoDB.

Uber System Design Round
uber logo
Uber
October 21, 202567 reads

Summary

I had a system design round with Uber where I was asked to design a chat application similar to Facebook Messenger, focusing on key features like 1:1 and group conversations, offline user handling, and message history.

Full Experience

I recently interviewed with Uber and was presented with a system design challenge. The interviewer asked me to design a chat application similar to Facebook Messenger, focusing on several core features. I had to describe the overall system architecture, including server-side storage, APIs, and how various components would interact. Key aspects I needed to address included 1:1 and group conversations, handling offline users, delivery and read receipts, message history, and group management functionalities like adding or removing users.

Interview Questions (1)

Q1
Design a Chat Application (e.g., Facebook Messenger)
System DesignHard

Design a chat application like Facebook Messenger. Describe the system architecture, server-side storage, the API, components, data models. Explain how they would work together. Core features to focus on:

  • 1:1 conversation (P0)
  • Group conversation (P0)
  • Offline users
  • Delivery/Read / Delivery Receipt
  • Message history
  • Group management (add/remove user)

Uber Interview Experience | L4 | Frontend #uber
uber logo
Uber
Frontend Engineer, L44.5 yearsOngoing
October 16, 2025120 reads

Summary

I recently went through the interview process for an L4 Frontend position at Uber, which included a screening round, two coding rounds focusing on DSA and UI, a UI system design round, and a manager discussion. The questions spanned from implementing interactive UI components to designing a concurrent task queue and a full-fledged calendar application.

Full Experience

I interviewed for an L4 Frontend role at Uber, bringing 4.5 years of experience. The interview process was comprehensive, covering various aspects of frontend development and problem-solving.

Screening Round

My screening round involved a UI component design and implementation task. I was asked to build a voting poll UI. The requirements were quite specific:

  • Display four voting options with buttons.
  • Dynamically update vote counts and percentage distribution upon a click.
  • Show a colored progress bar for each option, reflecting its current percentage, with smooth, real-time updates.

Optional features included distinct colors, animations, and total vote counters.

Loop Interviews

Coding 1 (DSA)

This round focused on Data Structures & Algorithms, specifically involving concurrency. I was tasked with designing and implementing a task queue in TypeScript. The queue needed to support controlled concurrency, executing up to K tasks in parallel, and queuing additional tasks until slots became available. Each task required a unique ID and support for success and error callbacks. An interesting design constraint was allowing a custom executor for logging, retries, or rate limiting.

Coding 2 (UI Coding)

The second coding round was another UI implementation challenge. I had to design and implement a modal component using any UI framework. The modal needed several features:

  • Primary and secondary action buttons (e.g., “Save” and “Cancel”).
  • An optional close icon ('X').
  • Configurable priority levels to manage modal stacking.
  • A mechanism to automatically close all other open modals when a new, higher-priority modal opens.

UI System Design

This was a more extensive design round where I had to design a calendar application similar to Google Calendar. Key features to cover included:

  • User authentication (sign up, log in, log out).
  • Event management (create, edit, delete, accept invitations), with events having title, time, date, participants, and description.
  • Multiple calendar views (Month, Week, Day) with seamless switching.

Manager Round (Zoom Collaboration)

The final round was with a manager, where we discussed leadership and collaboration. The questions were primarily behavioral, drawing from my past experiences to assess my approach to teamwork and leadership.

Interview Questions (4)

Q1
Voting Poll UI Component Design and Implementation
OtherMedium

Design and implement a voting poll UI component using any front-end framework (e.g., React, Vue, or Angular).

  1. The poll should display four voting options, each represented by a button.
  2. When a user clicks on a button, the corresponding option’s vote count increases, and the percentage distribution across all options updates dynamically.
  3. Each option should display a colored progress bar that visually represents its current percentage of total votes.
  4. The bars should update smoothly and in real time as users vote.

You may also include additional features such as:

  1. Distinct colors for each option’s bar.
  2. Animations or transitions for visual appeal.
  3. A total votes counter or percentage labels.
Q2
Task Queue with Controlled Concurrency in TypeScript
Data Structures & AlgorithmsHard

Design and implement a task queue in TypeScript that supports controlled concurrency. The queue should allow executing up to K tasks in parallel, while additional tasks are queued until slots become available.

Each task should have a unique task ID and support success and error callbacks. The design should also allow setting a custom executor to define how tasks are executed (for example, to add logging, retries, or rate limiting).

Q3
Modal Component Design and Implementation
OtherMedium

Design and implement a modal component using any UI framework of your choice (e.g., React, Vue, or Angular).

The modal should support the following features:

  1. Primary and secondary action buttons (e.g., “Save” and “Cancel”).
  2. An optional close icon (X) for dismissing the modal.
  3. A configurable priority level to control modal stacking or importance.
  4. A mechanism to close all other open modals automatically when a new modal with higher priority is opened.
Q4
Calendar Application System Design
System DesignHard

Design and implement a calendar application (similar to Google Calendar) using any front-end framework of your choice (e.g., React, Vue, or Angular).

The application should support the following core features:

  1. Authentication: Allow users to sign up, log in, and log out securely.
  2. Event Management: Users should be able to create, edit, delete, and accept event invitations. Each event should include details such as title, time, date, participants, and description.
  3. Calendar Views: Display events in multiple views: Month, Week, and Day. Enable switching between views seamlessly.
[USA] Uber SWE II, Backend Interview
uber logo
Uber
SWE II, BackendUSAOffer
October 13, 202582 reads

Summary

I successfully interviewed for a SWE II Backend role at Uber for their Grocery organization in the USA and received an offer. The interview process included an Online Assessment, two technical coding rounds, a system design interview for a cart management system, and a behavioral chat with the hiring manager.

Full Experience

My interview journey for the SWE II Backend role at Uber's Grocery organization, which is apparently their second largest vertical by gross revenue after Rideshare, was quite comprehensive. It started with an Online Assessment, which was similar to Codesignal GCA, featuring two easy questions, one tricky and confusing, and one algorithmic.

After passing a pretty chill recruiter phone screen that mostly served as a vibe check and confirmed my interest, I proceeded to the onsite rounds.

The first coding onsite was a 60-minute DSA round. It involved implementing an interface for a 2D MxN array of restaurants, specifically openRestaurant(r, c), countOpenRestaurants(r, c), and hasOpenRestaurant(r, c). The core challenge was countDeliveryZones(), which required finding connected components of open restaurants based on directional adjacency (up, down, left, right). I initially developed a working solution using DFS/BFS, but the interviewer indicated that Uber seems to highly favor Union-Find for such problems and was looking for a more optimal solution. The interviewer was unfortunately uncooperative and didn't offer hints like a coworker would.

The second 60-minute DSA round focused on implementing scheduleMeeting(startTime, endTime) to assign rooms within an office. The implementation itself wasn't too bad, but the follow-ups were quite insightful:

  • What would happen if we had 10,000 concurrent requests to scheduleMeeting? What would be the bottleneck, and how would you solve it?
  • My solution was initially O(M*N) where M is the number of rooms and N is the number of bookings. How could this be improved? A hint was given: what if bookings are sorted? Perhaps use binary search to achieve logarithmic time complexity by smartly checking likely intervals for overlap.

Next was the System Design interview, where I designed a Cart Management System, specifically in the context of a grocery delivery order application.

Finally, I had a great behavioral interview with the Hiring Manager, which was a pleasant conversation and the best part of the interview process. Overall, the recruiter and hiring manager were nice, but some of the technical interviewers were unfortunately not the most collaborative people. Uber also didn't really want to budge on the base salary, even with a competing offer, only offering to bump the sign-on bonus.

Interview Questions (3)

Q1
Restaurant Grid: Count Delivery Zones
Data Structures & AlgorithmsMedium

Given a 2D MxN array where each cell (r, c) represents the number of open restaurants. Implement an interface with the following functions:

  • openRestaurant(r, c): Open a restaurant at location (r, c).
  • countOpenRestaurants(r, c): Number of open restaurants at location (r, c).
  • hasOpenRestaurant(r, c): Are there open restaurants at location (r, c).

The main problem is countDeliveryZones(), where a delivery zone is defined as a clustering of open restaurants connected directionally (up, down, left, right). The task is to count these distinct delivery zones.

Q2
Meeting Room Scheduler with Concurrency & Optimization
Data Structures & AlgorithmsMedium

You have a set of rooms in your office. Implement a function scheduleMeeting(startTime, endTime) which should return an available room for the meeting.

Follow-up 1: What would happen if we had 10,000 concurrent requests to scheduleMeeting? What would be the bottleneck, and how would you solve for the bottleneck?

Follow-up 2: My solution is currently O(M*N) where M = number of rooms and N = number of bookings. Could you improve the time complexity? Hint: what if bookings are sorted? Maybe use binary search to get logarithmic time complexity and smartly check the likely intervals for overlap.

Q3
Design Cart Management System
System DesignHard

Design a Cart Management System, specifically in the context of a grocery delivery order application.

Preparation Tips

Based on my experience, Uber seems to particularly like problems disguised as Union-Find, so knowing how to implement it thoroughly would be to your best interest. Also, for the recruiter phone screen, it's essential to read the job posting and understand the company's mission to sound genuinely interested. For coding rounds, be prepared not just for the initial solution but also for significant follow-ups involving concurrency and time complexity optimizations. System design should cover common e-commerce or delivery-related systems like cart management.

Uber Frontend
uber logo
Uber
Frontend
October 7, 202563 reads

Summary

I recently interviewed for a Frontend position at Uber where I was tasked with implementing a custom Promise function.

Full Experience

During my interview process for a Frontend role at Uber, I was presented with a coding challenge focused on core JavaScript concepts. Specifically, I had to implement my own version of the Promise function, demonstrating an understanding of its asynchronous behavior and state transitions.

Interview Questions (1)

Q1
Implement Custom Promise
Data Structures & Algorithms

Implement your own Promise function. This involves understanding the Promise A+ specification, including handling then, catch, resolve, and reject mechanisms, and managing state transitions.

Uber | SSE | Bangalore | L5-A
uber logo
Uber
SDE IIbangalore5 yearsRejected
September 26, 202588 reads

Summary

I interviewed for an SSE role at Uber in Bangalore. I successfully cleared the BPS and DSA rounds, but likely failed the LLD/MC round due to an issue with meeting all requirements for a vending machine design problem, leading to an anticipated rejection.

Full Experience

I applied for the SSE L5-A role at Uber in Bangalore without a referral. My experience is 5 years.

BPS Round

In this round, I was presented with a grid problem:

  • You have an n x n grid.
  • Each cell (i, j) has a direction (U, D, L, R).
  • If you move in the same direction as indicated, cost = 0.
  • If you move in a different direction, cost = 1.
  • Find minimum cost to go from (0, 0) to (n-1, n-1).

I solved this problem using a 0/1 BFS approach and successfully cleared the round.

Onsite

DSA Round

  1. The first question was a variation of LeetCode 1438: Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit.
  2. The second question was: Given an integer N, find the smallest palindromic number greater than N.

I managed to solve both questions. For the second question, I had a bug in one test case, but I clearly explained my thought process and how I would resolve it, which satisfied the interviewer.

LLD/MC Round

I was asked to design a vending machine with several specific and somewhat unusual requirements. Unfortunately, I missed one crucial requirement during my implementation, and due to time constraints, I couldn't rewrite my solution to incorporate it. It felt like a very extensive implementation for a 1-hour round.

I am fairly certain that I won't be moving forward to the subsequent HLD and Hiring Manager rounds. It appears this is the end of my interview journey with Uber this time.

Interview Questions (4)

Q1
Minimum Cost Path in a Directed Grid
Data Structures & AlgorithmsMedium

You have an n x n grid. Each cell (i, j) has a direction (U, D, L, R). If you move in the same direction as indicated, cost = 0. If you move in a different direction, cost = 1. Find minimum cost to go from (0, 0) to (n-1, n-1).

Q2
Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit (Variation)
Data Structures & AlgorithmsMedium

A variation of LeetCode 1438, which is 'Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit'.

Q3
Smallest Palindromic Number Greater Than N
Data Structures & AlgorithmsMedium

You are given an integer N. Find the smallest palindromic number greater than N.

Q4
Vending Machine Design
System Design

I was asked to design a vending machine with specific requirements.

Uber L4 Interview Experience | US - OFFER
uber logo
Uber
SDE IIus2.5 yearsOffer
September 23, 202564 reads

Summary

I successfully navigated the L4 interview process at Uber in the US, securing an offer after several rounds including coding, behavioral, and system design challenges. The overall experience was positive, and I found the interviewers to be very friendly and supportive.

Full Experience

Overall Experience

I had a very positive interview experience at Uber for an L4 role in the US. Everyone I interacted with was friendly and genuinely seemed to want me to succeed. The interviewers were also very diverse, which was great to see. The difficulty felt reasonable overall, and I was fortunate with some of the problems I encountered.

OA Round

My journey began with a CodeSignal Online Assessment. I managed to solve problems 1, 2, and 4, though I couldn't crack problem 3. This was sufficient to pass and move on to the next stage.

Phone Screen

The phone screen involved a LeetCode Hard problem, LC 269 (Alien Dictionary). I was able to solve it, and I received an invitation for the on-site rounds within two days.

On-Site Interviews

I. Bar Raiser DSA

This round focused heavily on Data Structures & Algorithms. I was given LC 564 (Find the Closest Palindrome), which I successfully solved. I thoroughly explained my solution, and the interviewer continued to ask follow-up questions until the very end, seemingly pushing to find my limits, but I managed to hold my ground.

II. Hiring Manager Round

This round was with a TPM and focused on behavioral aspects. I was asked to share negative experience stories from my current company, which I structured using the CARL framework. There was a strong emphasis on collaboration, and the interviewer asked questions to understand how I work with a team and ensure I am a team player. They also inquired about how I handle team overburn and stay resilient during stressful periods.

III. Low-Level Design (LLD) / DSA

I had anticipated a Machine Coding round and had prepared extensively with Java patterns and template problems like a parking lot design. However, it turned out to be another Data Structures round. I was given a question similar to LC 230 (Kth Smallest Element in a BST). I was able to solve it, and the interviewer was very supportive. It felt like they wanted me to pass, as they gave me what seemed like an easy problem with a reasonable medium follow-up. I definitely felt lucky in this round.

IV. High-Level Design (HLD)

This round was conducted by a very knowledgeable backend Tech Lead. The main problem was to design a restaurant recommendation system based on user location. The initial requirements were quite straightforward, allowing me to sketch out a design in less than 10 minutes. However, things became much more interesting when the latency requirements were significantly decreased. After developing a high-level design with optimizations for various regions, caching strategies, and sharding, I was asked to explain geohashing to someone without prior knowledge. I then discussed quad trees, geohashing, database indexing, and the various tradeoffs involved.

Outcome & Negotiation

The recruiter contacted me within three days, immediately after the interview panel meeting concluded, confirming a strong 'hire' recommendation from all interviewers. I initially received an offer package of TC $310k for Year 1 and $270k for Year 2. After a week of negotiation, I finalized an improved offer of TC $335k for Year 1 and $310k for Year 2.

Overall, it was a smooth process, and I'm very happy with the outcome!

Interview Questions (6)

Q1
Alien Dictionary
Data Structures & AlgorithmsHard

You are given a list of words that are sorted lexicographically by the rules of an alien language. You need to find the order of its letters. For example, given ['wrt', 'wrf', 'er', 'ett', 'rftt'], return 'wertf'.

Q2
Find the Closest Palindrome
Data Structures & AlgorithmsHard

Given an integer n, find the closest integer (not including itself) which is a palindrome. The 'closest' is defined as the absolute difference minimized. For example, if n = "123", the closest palindrome is "121".

Q3
Behavioral Questions (Collaboration & Stress Management)
Behavioral

The interviewer focused on collaboration and stress management. I was asked to share negative experience stories from my current company using the CARL framework, and also how I ensure I'm a team player and handle overburn and stress within my team.

Q4
Kth Smallest Element in BST (Variation)
Data Structures & AlgorithmsMedium

During the LLD round, I was given a Data Structures problem that was similar to finding the Kth Smallest Element in a Binary Search Tree. I solved the initial problem and then tackled a medium-difficulty follow-up question.

Q5
Design Restaurant Recommendation System
System DesignHard

Design a system that recommends restaurants based on a user's location. The requirements initially were basic but evolved to include stringent low-latency requirements. The discussion covered high-level design, regional optimizations, caching strategies, and sharding.

Q6
Explain Geohashing
System DesignMedium

As a follow-up to the system design, I was asked to explain geohashing to someone unfamiliar with the concept. This included discussing quad trees, database indexing, and various tradeoffs associated with these techniques.

Preparation Tips

My preparation for the coding rounds involved practicing LeetCode problems. For the LLD round, I studied various Java patterns and template problems, although the actual problem turned out to be more DSA-focused. For the HLD round, I extensively watched 'HelloInterview' and 'Jordan has no life' videos, focusing specifically on concepts like geohashing and database indexing strategies. I also practiced for the CodeSignal OA by solving similar problems.

[Passed] Uber L5A Frontend
uber logo
Uber
Frontend Engineer L5A7.5 yearsOffer
September 23, 2025107 reads

Summary

I successfully navigated through a multi-stage interview process for a Frontend Engineer L5A position at Uber. The process, which spanned three weeks, included coding, system design, and behavioral rounds, ultimately resulting in an offer.

Full Experience

Background

I am a Frontend engineer with 7.5 years of experience, currently working in Big Tech.

Interview Process

Business Phone Screen [1 hour]

This round involved implementing a JavaScript memoization utility to cache responses from a callback-based async function, along with follow-up questions.

Coding 1 [1 hour]

I was presented with a problem similar to LeetCode 764, "Largest Plus Sign". The interviewer also asked follow-up questions on how to handle the problem efficiently in a sparse matrix.

Coding 2: Depth in Specialization [1 hour]

This was a React-based coding challenge where I had to build a Drag and Drop interface, similar to a Jira Board. I was allowed to reference MDN documentation during this round.

Design [Bar Raiser] [1 hour]

The design round focused on the end-to-end design of a configurable UI widget builder, including its client-side integration.

Hiring Manager (HM) [1 hour 45 mins]

This final round was split into two parts: a series of behavioral questions and a discussion/walkthrough of my previous projects.

The entire process took approximately 3 weeks.

Interview Questions (4)

Q1
JS Async Function Memoization Utility
Data Structures & Algorithms

Implement a JavaScript memoization utility that caches the response of a callback-based async function, with follow-up questions.

Q2
Largest Plus Sign with Sparse Matrix Follow-ups
Data Structures & Algorithms

A problem similar to LeetCode 764 (Largest Plus Sign). Follow-up questions included how to handle this problem efficiently in a sparse matrix.

Q3
React Drag and Drop (Jira Board Style)
Other

A React-based coding challenge to build a Drag and Drop interface, similar to a Jira Board. I was informed that I could reference MDN documentation.

Q4
Design Configurable UI Widget Builder
System Design

End-to-end design of a configurable UI widget builder and its client-side integration.

Uber L4 Interview Experience Ongoing
uber logo
Uber
Software Engineer L44.8 yearsOngoing
September 16, 2025136 reads

Summary

I interviewed with Uber for an L4 Software Engineer position, navigating through several rounds including Data Structures & Algorithms, Machine Coding, and System Design. While my DSA round was strong, the machine coding round proved challenging due to an emphasis on HLD over LLD under tight time constraints. I later faced a system design challenge for Uber Eats for train travelers, which I approached structurally. The process is ongoing, pending a final decision after some scheduling delays and an upcoming Bar-Raiser round.

Full Experience

My interview journey at Uber for an L4 Software Engineer role began with a BPS round, which focused on data structures and algorithms. I successfully tackled the 'Alien Dictionary' problem, covering all edge cases, and my solution ran perfectly on the first try within 20 minutes.

The first official DSA round, which had been postponed multiple times, presented two problems. One involved reversing every 'k' nodes in a linked list, leaving the remaining nodes untouched if fewer than 'k' were left (e.g., A->B->C->D->E, k=2 becomes B->A->D->C->E). The other problem was similar to the 'Bus Routes' problem, though I don't recall the exact details.

My second round, the Machine Coding round, turned out to be my most challenging interview experience in 4.8 years. After some initial scheduling hiccups where the interviewer asked me to rejoin after 30 minutes, I was given only 40 minutes for the entire session. A significant portion of this time (15-20 minutes) was spent discussing my past experience in detail. The problem itself was similar to a job scheduler. The interviewer, a Staff Engineer, emphasized that the expectation for this round was both Low-Level Design (LLD) and High-Level Design (HLD). I quickly outlined an HLD, but as I only had about 10 minutes left, I intended to move to LLD. However, he kept interjecting with questions about push vs. pull flows, which further consumed my time. Despite explaining various patterns and their rationale, I barely had 5 minutes left and couldn't write or run much code, only managing to sketch out structures and explain my approach.

Following this, although the machine coding round was difficult, the strong performance in my first round led HR to push me forward to a Bar-Raiser + Hiring Manager stage. Unfortunately, I fell ill after these interviews were scheduled, leading to the Bar-Raiser round being postponed and the Hiring Manager round being canceled.

The third round, the HLD/Bar Raiser round, was a system design challenge: 'Design the Uber Eats home page for customers traveling on a train, taking PNR as input and allowing food ordering based on the delivery station.' This time, I made sure to follow a structured approach. I started by detailing Functional Requirements (FR) and Non-Functional Requirements (NFRs), including capabilities and scalability. I then defined core entities, presented my High-Level Design, discussed database and caching strategies, and delved into specific components. The interviewer posed many questions, which I answered, and in some instances, he provided corrections. I am currently unsure about the outcome of this round. The overall process is still awaiting feedback; based on the Bar-Raiser verdict, they will decide whether to proceed to the Hiring Manager round or drop my application.

Interview Questions (3)

Q1
Alien Dictionary
Data Structures & AlgorithmsHard

Given a sorted list of words in an alien language, find the order of characters in this language.

Q2
Reverse Nodes in k-Group
Data Structures & AlgorithmsHard

In a linked list, reverse every k nodes in the list. If the number of nodes is less than k for the last group, leave them as they are. For example, given A->B->C->D->E and k=2, the output should be B->A->D->C->E.

Q3
Design Uber Eats Home Page for Train Travelers
System DesignHard

Design the Uber Eats home page experience for customers traveling on a train. The system should take PNR as input and allow ordering food based on the station where it needs to be delivered.

Uber SDE-2 Interview Experience || L4 || Bangalore
uber logo
Uber
SDE-2Bangalore3 yearsOffer
September 12, 202583 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.

Uber SDE 2 - Phone Screen Experience
uber logo
Uber
SDE 2Rejected
September 11, 202576 reads

Summary

I was rejected after a phone screen for an SDE 2 role at Uber. I tackled a problem similar to LeetCode 305 but faced significant interruptions and time constraints from the interviewer, which hampered my performance and debugging.

Full Experience

I recently had my phone screen interview for an SDE 2 role at Uber. My interviewer was based in Canada, and while they mentioned their camera wasn't working, we proceeded with the interview. The main coding question I received was very similar to LeetCode 305, 'Number of Islands II', with only minor differences. Having solved this problem before, I felt quite confident in my ability to tackle it. I proceeded to explain two potential approaches: one utilizing Depth-First Search (DFS) and another employing the Union Find data structure. After discussing both, I received approval to implement the Union Find solution. However, as I was coding and verbalizing my thought process, the interviewer interrupted me several times to question my choices. Each interruption broke my concentration, and I had to re-explain my logic, sometimes even reading my code aloud for clarity. These frequent interruptions, occurring about three or four times, severely impacted my time management and disrupted my problem-solving flow. Towards the end of the almost hour-long session, I identified a bug—a 'return' statement in a loop that should have been a 'continue'. Despite my explanation, the interviewer insisted the bug was elsewhere and, due to time constraints, did not allow me to debug it further. I'm feeling quite disheartened by the outcome, but I hope sharing this experience offers some insight into the interview process at Uber and the types of questions they might ask.

Interview Questions (1)

Q1
Number of Islands II (Variation)
Data Structures & AlgorithmsHard

I was asked a problem that was a variation of LeetCode 305, 'Number of Islands II'. The core concept involved tracking the number of distinct islands in a 2D grid after a series of 'add land' operations. Each operation turns a water cell into land, and I needed to report the number of islands after each operation.

Uber India L5 (SSE) Interview experience
uber logo
Uber
Staff Software Engineer L5Bengaluru, IndiaOffer
September 7, 2025131 reads

Summary

I successfully navigated a multi-round interview process at Uber India for an L5 Staff Software Engineer role, which spanned approximately two months, ultimately resulting in an offer.

Full Experience

My interview journey for the Staff Software Engineer L5 position at Uber India consisted of five comprehensive rounds, stretching over roughly two months.

Round 1: Data Structures & Algorithms

This round focused on a complex DSA problem involving a binary tree. The problem description itself was quite detailed and involved player interactions and point calculations based on node visitation order and timing.

Round 2: Data Structures & Algorithms

The second DSA round presented a problem where I had to process a 2D location map and a query array. The goal was to identify robots that could satisfy specific movement conditions based on distances to blockers, including map boundaries.

Round 3: High-Level Design

In this round, the discussion revolved around designing a system for real-time aggregated metrics for Uber Eats restaurants. The key requirements were to calculate total order values and top K food items over various time intervals, emphasizing real-time updates.

Round 4: Low-Level Design

This round required me to implement a meeting room booking system with fixed room numbers and varying sizes. I needed to handle booking availability, maintain history, and abstract different scheduling implementations, with the expectation of delivering fully working code within an hour.

Round 5: Hiring Manager Round

The final round was with the Hiring Manager. It began with standard behavioral questions. Following that, I was asked to deep-dive into the complete architecture of the most complex system I had built previously. The manager posed numerous follow-up questions concerning design trade-offs, challenges, learnings, and my technology stack choices during my explanation.

Interview Questions (5)

Q1
Binary Tree Path with Parent Pointer and Player Conflict
Data Structures & Algorithms

There is a binary tree with each node having value and also reference to parent pointer. A starts from root Node and B starts from some leaf node. Calculate the maximum points A can collect if A moves downward and B moves up with below condition:

  1. If node is visited by B first, A gets 0 and vice versa
  2. If both visits at the same time, both gets half value
Q2
Robot Movement with Blocker Distances
Data Structures & Algorithms

Given two inputs:

First input is the location map, a 2D array:

| O | E | E | E | X |
| E | O | X | X | X |
| E | E | E | E | E |
| X | E | O | E | E |
| X | E | X | E | X |

O = Robot, E = Empty, X = blocker

Second input is the query array. It’s a 1D array consisting of distance to the closest blocker in the order from left, top, bottom and right:

[2, 2, 4, 1]

This means distance of 2 to the left blocker, 2 to the top blocker, 4 to the bottom blocker and 1 to the right blocker.

Note: The location map boundary is also considered a blocker, meaning if the robot hits the boundary it also means it’s hitting the blocker.

Return the coordinates of all robots who can satisfy the move given by the second input.

Q3
Real-time Aggregated Metrics for Uber Eats Restaurants
System Design

Consider food orders placed from different restaurants via the Uber Eats app. Restaurant owners want to view aggregated metrics related to their orders in real-time:

  1. Total value of all orders placed in their restaurant for various time intervals - last 1 hour, 1 day, 1 week
  2. List of top k food items that were ordered from their restaurant for various time intervals - last 1 hour, 1 day, 1 week

Metrics should be real-time as much as possible.

Q4
Meeting Room Booking System
System Design

There are a fixed number of meeting rooms with various sizes. Given a start time and end time, I needed to book an available meeting room. I also had to maintain past booking history of meeting rooms. The interviewer expected me to abstract different types of implementations for meeting room scheduling. Fully working code was expected within 1 hour.

Q5
Discuss Most Complex System Built
System Design

The interviewer asked me to explain the complete architecture of the most complex system I had built in my past. This was followed by many follow-up questions during my explanation, covering design trade-offs, challenges faced, learnings, and choices of tech stack.

Uber SDE1 Experience
uber logo
Uber
SDE INo Offer
September 2, 202550 reads

Summary

I interviewed for an SDE1 role at Uber, successfully solving two problems fully and one partially, but ultimately did not receive an offer as Uber emphasized 'coding profile strength' and encouraged me to reapply.

Full Experience

I recently had my interview for the SDE1 role at Uber. The interview consisted of three challenging problems, primarily focusing on graph algorithms and array manipulations. I managed to solve two of them completely and the third one partially, achieving a score of 14/15. Despite my performance, Uber shared feedback emphasizing the importance of 'coding profile strength' and encouraged me to reapply for future roles.

Although I didn't receive an offer this time, I consider this a valuable learning experience, particularly in handling complex graph edge cases. The hiring for my specific role later closed, but I received positive feedback and encouragement from the Uber team to reapply.

Interview Questions (3)

Q1
Maze Game with Time Limits
Data Structures & AlgorithmsHard

You are given a weighted undirected graph with n nodes and m edges. Each node i has a time limit t[i] (or -1 if unlimited).

You start at node 1 with time 0. You can only visit a node if the current time is strictly less than its time limit.

Find the minimum time to reach every node, or -1 if it’s unreachable.

Q2
Count Valid Subarrays with Allergic Pairs
Data Structures & AlgorithmsMedium

You are given n bacteria samples arranged in a row. Some pairs (a, b) are allergic/poisonous and cannot appear in the same subarray.

Count the number of valid subarrays.

Q3
Reachable Nodes in Subdivided Graph
Data Structures & AlgorithmsHard

You are given a graph with n nodes, edges, and a number of subdivisions for each edge.

You can start from node 0 and can use at most maxMoves.

Return the number of nodes reachable (including subdivided ones).

Preparation Tips

My preparation mainly revolved around practicing various LeetCode problems, with a specific emphasis on graph algorithms, which proved very helpful given the interview questions. I also utilized tools like GPT to structure my explanations and improve the clarity of my solutions during my post-interview reflection, though all core coding solutions presented were my own.

Uber | SDE3 Frontend Interview
uber logo
Uber
Senior Frontend Engineer
August 13, 20253 reads

Summary

I interviewed for a Senior Frontend Engineer position at Uber, which involved rounds on JavaScript problem solving and Data Structures & Algorithms, including graph problems like Topological Sort and Cycle Detection.

Full Experience

Uber – Senior Frontend Engineer Interview Experience

Round 1 – JavaScript Problem

Uber Driver question: Implement a chainable JS Class (pickup(), drop(), coffeeBreak()) where coffeeBreak() must always execute first.
<br/>new UberDriver()<br/> .pick("Alice", 1)<br/> .drive(5)<br/> .coffeeBreak(3) // always executes first<br/> .pick("Bob", 2)<br/> .status()<br/> .drop()<br/> .rest(2)<br/>

Tested method chaining, promise, and async handling.

Followup Question
Driver can take break anytime but it should execute at beginning only

Round 2 – DSA (Graphs)

Topological Sort (implemented using Kahn’s Algorithm).

Cycle Detection in a Graph (DFS + recursion stack).

Interview Questions (3)

Q1
Chainable JS Class with Priority Method
Other

Implement a chainable JS Class (pickup(), drop(), coffeeBreak()) where coffeeBreak() must always execute first. The example usage is:
<br/>new UberDriver()<br/> .pick("Alice", 1)<br/> .drive(5)<br/> .coffeeBreak(3) // always executes first<br/> .pick("Bob", 2)<br/> .status()<br/> .drop()<br/> .rest(2)<br/>
This tests method chaining, promise, and async handling.

Followup Question
Driver can take break anytime but it should execute at beginning only

Q2
Topological Sort (Kahn's Algorithm)
Data Structures & Algorithms

Implement Topological Sort using Kahn’s Algorithm.

Q3
Cycle Detection in a Graph (DFS)
Data Structures & Algorithms

Implement Cycle Detection in a Graph using DFS with a recursion stack.

Preparation Tips

Uber tests JavaScript design patterns + DSA fundamentals.

Strong graph algorithm knowledge is essential.

Even frontend roles have pure algorithm rounds.

[Uber - L5A] SSE interview experience
uber logo
Uber
senior software engineerOffer
August 4, 202575 reads

Summary

I interviewed for a Senior Software Engineer (L5A) position at Uber. Despite an initial 'NO-HIRE' feedback in one of the technical rounds, the hiring manager and bar-raiser managed to flip the decision, leading to a successful offer.

Full Experience

I appeared for the Uber hiring drive around mid-May. The interview process consisted of five rounds, covering data structures & algorithms, machine coding, system design, and behavioral aspects.

Round 1: Screening (DSA)
This round felt like a proper DSA assessment where a working solution was expected. The question was: Given an n*m 2-D matrix with arrows in different directions, find the minimum cost to travel from the top-left grid to the bottom-right grid. Traveling in the direction of a grid arrow costs nothing, but moving in any other direction costs 1 quantity.
I initially suggested a DFS approach, mentioning it was brute force, and we discussed its time complexity. I then proposed a graph-based approach, explaining that I would construct a weighted (0,1 edge) graph and apply Dijkstra's algorithm. I managed to code this within 60 minutes.

Round 2: DSA
In this round, I was asked to find the next greater palindrome number for a given number. I had encountered a similar problem before, which allowed me to write a working solution within the hour using a 'Mirror and Carry Propagation' approach.

Round 3: Machine Coding
This round asked me to implement an expiry counter. I needed to create a class with methods like put_element(k), get_element_count(k), and get_total_elements(), initialized with an expiry time 't' seconds. I initially suggested a priority queue and hashmap-based approach, but the interviewer wasn't convinced. I then proposed a binary search based approach, maintaining a mapping of elements to a list of timestamps (e.g., 'k': [t1, t2, ...]). For reads, valid timestamps would be found in O(log n). I coded this in Python, and it worked, but the interviewer questioned why I wasn't discarding stale timestamps more efficiently, which I believe led to an initial 'NO-HIRE' feedback for this round.

Round 4: System Design
This round, taken by a Staff Software Engineer who was also the bar-raiser, focused on designing a heatmap of Uber drivers in a city for an internal analytics dashboard. I needed to cover two scenarios: a near real-time heatmap for the past 20 minutes and a dashboard showing hourly buckets after 24 hours. I had some prior exposure to this problem. My approach for the real-time use case involved consuming location events from Kafka, using a geo-hashing library, pushing to a Kafka stream partitioned by geohashId, and using an Apache Flink cluster to count over a 1-minute tumbling window, persisting to Redis. For the 24-hour use case, another Flink processor would flush hourly aggregates to PostgreSQL. The interviewer had minor questions on scalability and fault-tolerance, but overall, the feedback was 'good'.

Round 5: Behavioral/Leadership (TLM)
The final round was with a Tech Lead Manager. After discussing my current and previous roles, I was asked to detail a complex or impactful project I had worked on, focusing on both technical and non-technical challenges. This was a 45-minute monologue with minimal interruptions. We also discussed the type of work to expect at Uber and my career aspirations.

A week later, I received a call from the recruiter informing me that despite the initial 'NO-HIRE' in one round, the HM and BR had overturned it in the final debrief, and I would be receiving an offer!

Interview Questions (5)

Q1
Minimum Cost Path in 2D Matrix with Arrows
Data Structures & Algorithms

Given an n*m 2-D matrix with arrows in different directions, find out the minimum cost to travel from the top-left grid to the bottom-right grid. If the cost to travel in the direction of the grid arrow costs you nothing, but if you want to travel in any other direction, it would cost you 1 quantity.

Q2
Next Greater Palindrome Number
Data Structures & Algorithms

Find the next greater palindrome number of the given number. This is a standard interview problem often referred to as 'next greater palindrome'.

Q3
Expiry Counter Implementation
Other

Implement a custom counter class with methods put_element(k), get_element_count(k), and get_total_elements(). The class should be initialized with an expiry time of 't' seconds, meaning elements should automatically expire after 't' seconds.

Q4
Uber Driver Heatmap System Design
System DesignHard

Design a system to build a heatmap of Uber drivers in a city and display this data in an internal dashboard for an analytics team. The system needs to cover two scenarios:

  1. Near real-time display of the heatmap for the past 20 minutes.
  2. Display of the heatmap after 24 hours, bucketized by the hour.
Assumptions should be made, and the focus is on a sub-system to address the core problem.

Q5
Discuss Complex/Impactful Project
Behavioral

Discuss a complex or impactful project I had worked on or led. The interviewer emphasized going over the details of every challenge faced, both technical and non-technical.

Preparation Tips

I started preparing from mid-March, solving over 200 questions on LeetCode and reading through another 20-30. I worked through roughly 70% of a popular 'top 150' problem list while tackling the LeetCode questions. For machine coding, I practiced 7-8 of the most frequently asked problems at Uber. For system design prep, I utilized a paid practice platform that sequentially walks through Functional Requirements (FRs), Non-Functional Requirements (NFRs), API contracts, and design steps. I also referred to a system design interview book for specific topics.

Uber SDE1 | Selected
uber logo
Uber
SDE I1 years
July 22, 20252 reads

Summary

I was selected for the Uber SDE1 role after four interview rounds, which included Data Structures & Algorithms, projects, Low-Level Design, and a behavioral hiring manager interview.

Full Experience

College: Tier 1 (Btech in CSE from NIT) YOE: 1 Previous Experience: Product Based Company Date of Offer: July 2025

Round 1 (DSA): It took place on codesignal, there were 3 DSA leetcode medium-hard level questions to be solved in 60 mins. I don't remember exactly but the topics were around binary search, prefix sum and 2D DP.

Round 2 (Projects+DSA): The interviewer first asked about my experience and projects that I have been working on in my previous company along with some followup questions than gave 2 DSA leetcode medium level questions on DP and Graphs. The DSA level was lower than previous round and the interviewer was very friendly.

Round 3 (LLD): He asked me to design a food delivery system like zomato. We started with discussions about requirements, classes and interfaces, than DB schema, tables and relationships between them like delivery partners, user, shopkeeper, orders. Some questions like how would i maintain data consistency and followups.

Round 4 (HM): Fully behavioral with scenario-based questions (handling conflicts, team issues, etc.). Hard to gauge performance, but it felt okay. Wrapped up by asking a few questions.

Verdict: Selected

I applied through a google form shared by recruiter on Linkedin who was my connection. These days you can try boostmyreferral, or keep an eye on telegram groups where you can get a referral link.

Interview Questions (2)

Q1
Design a Food Delivery System like Zomato
System Design

He asked me to design a food delivery system like zomato. We started with discussions about requirements, classes and interfaces, than DB schema, tables and relationships between them like delivery partners, user, shopkeeper, orders. Some questions like how would I maintain data consistency and followups.

Q2
Behavioral Questions (Handling Conflicts, Team Issues)
Behavioral

Fully behavioral with scenario-based questions (handling conflicts, team issues, etc.).

SDE-2 Frontend Interview Uber
uber logo
Uber
SDE-2 Frontend
July 17, 20252 reads

Summary

I interviewed for an SDE-2 Frontend role at Uber, undergoing multiple coding rounds, Low-Level Design, High-Level Design, and a Hiring Manager discussion, but was ultimately rejected.

Full Experience

Ubers Interview:-

Coding 1:-

Question 1:-

#Uber's trip history system has encountered a malfunction ing a passenger's journey to be fragmented into multiple unordered segments. Each segment cares a portion of the trip sequence, but the correct chronological order of these segments is unknow

Lily, a data engineer at Uber, has been assigned the tas of restoring the complete trip history. She must analyze the given segments, identify overlapping metails, and piece them together in the correct order to reconstruct the original journey.

Solve jt in js #Your task is to design an efficient algorithm to ass sequence from the unordered segments.

Its n*m aarray

Question 2:-

"Consider you are in an IPL auction for selection of players and there are few (even number of players) left over players (displayed on the screen in a row) who needs to be picked between 2 teams. Each player has a respective score number assigned which suggests how good that player is. Each team selector gets alternating turns. In each turn, a selector have to select either ist or last player from the screen.
Determine the maximum possible score you can win if we move first. P.S Opponent selector is as clever as you" "Sample 1
Input Surya kumar- 5, Ashwini 3, Pandiya-7, Virat 10:: (5, 3, 7,10) Output: 5+10 = 15

Sample 2 Input Surya kumar- 8, Ashwini - 15, Pandiya-3, Vrat- 7 :: (8, 15, 3, 7}

Coding Round 2:-

Create a queue that allows concurrent processing of async tasks up until a limit. Tasks can be added to it after creation at any time. The queue has the following signature: /* type Task any; type Queue = (ProcessorFn, OnCompleteFn, concurrency: number) => QueueObject I type QueueObject = { drain: (error?: Error) => void push: (Task or Array, CallbackFn) => void error: (error?: Error, Task) => void unshift: (Task or Array, CallbackFn) => void
} type ProcessorFn = (Task, CallbackFn) => void type OnCompleteFn = (data: any, error: Error, Task) => void type CallbackFn = (error?: Error) => void

LLD:-

Render C shape squares (25px) a row. A square would have a border black and bg color white. Keep space of 10px between ares Clicking on a square will ange its color to green.
An unwinding process would start once all 3 squares are green. It will turn them back to white in the reverse order of click. Unwinding should decolor boxes one by one with a delay of 1 second between them

HLD:-

Design Google Calender

HM:- Genral Discussions on previous projects and normal HM questions.

Verdict:- Rejected

Interview Questions (5)

Q1
Reconstruct Trip History from Fragmented Segments
Data Structures & Algorithms

#Uber's trip history system has encountered a malfunction ing a passenger's journey to be fragmented into multiple unordered segments. Each segment cares a portion of the trip sequence, but the correct chronological order of these segments is unknow # Lily, a data engineer at Uber, has been assigned the tas of restoring the complete trip history. She must analyze the given segments, identify overlapping metails, and piece them together in the correct order to reconstruct the original journey. Solve jt in js #Your task is to design an efficient algorithm to ass sequence from the unordered segments. Its n*m aarray

Q2
Maximize Score in IPL Auction Game
Data Structures & Algorithms

"Consider you are in an IPL auction for selection of players and there are few (even number of players) left over players (displayed on the screen in a row) who needs to be picked between 2 teams. Each player has a respective score number assigned which suggests how good that player is. Each team selector gets alternating turns. In each turn, a selector have to select either ist or last player from the screen. Determine the maximum possible score you can win if we move first. P.S Opponent selector is as clever as you" "Sample 1 Input Surya kumar- 5, Ashwini 3, Pandiya-7, Virat 10:: (5, 3, 7,10) Output: 5+10 = 15 Sample 2 Input Surya kumar- 8, Ashwini - 15, Pandiya-3, Vrat- 7 :: (8, 15, 3, 7}

Q3
Concurrent Async Task Queue
System Design

Create a queue that allows concurrent processing of async tasks up until a limit. Tasks can be added to it after creation at any time. The queue has the following signature: /* type Task any; type Queue = (ProcessorFn, OnCompleteFn, concurrency: number) => QueueObject I type QueueObject = { drain: (error?: Error) => void push: (Task or Array, CallbackFn) => void error: (error?: Error, Task) => void unshift: (Task or Array, CallbackFn) => void } type ProcessorFn = (Task, CallbackFn) => void type OnCompleteFn = (data: any, error: Error, Task) => void type CallbackFn = (error?: Error) => void

Q4
Interactive C-Shape Squares UI
System Design

Render C shape squares (25px) a row. A square would have a border black and bg color white. Keep space of 10px between ares Clicking on a square will ange its color to green. An unwinding process would start once all 3 squares are green. It will turn them back to white in the reverse order of click. Unwinding should decolor boxes one by one with a delay of 1 second between them

Q5
Design Google Calendar
System Design

Design Google Calender

Uber | Software Engineer 2 | Interview Experience
uber logo
Uber
Software Engineer 22.5 years
July 10, 20252 reads

Summary

I interviewed for a Software Engineer 2 position at Uber, which included a Code Signal assessment, a Zoom interview, and two on-site rounds focusing on Data Structures and Low-Level Design. My experience concluded with a rejection after completing all scheduled rounds.

Full Experience

Background: YOE: 2.5 years, Currently working at a PBC

Round 1 : Code Signal Assesment (70 min) This consisted of 4 DSA problems. I don't remember the exact questions, but the first two were easy, the third was of medium difficulty, and the fourth was medium to hard.

Round 2 : Zoom Interview (1 hr) This is an elimination round. I was asked only one question. https://leetcode.com/problems/reconstruct-itinerary/description/

Rounds 3 and 4 are conducted in person at the Uber office on the same day. Candidates who clear both rounds proceed to Rounds 5 and 6, which are also held face-to-face on another day.

Round 3 : Data Structures (1 hr)

https://www.techiedelight.com/find-optimal-cost-to-construct-binary-search-tree/

I hadn't seen this question before the interview. I managed to come up with a recursive solution during the interview, but the interviewer asked for an optimized approach. I later discovered that it's a well-known problem, couldn't find similar question on LeetCode.

Round 4 : LLD (1 hr)

It was more like a machine coding round, where I was given a set of use cases and had to design classes and implement the solution accordingly. The round was conducted on CodeSignal.

Got rejection mail the next day

Interview Questions (2)

Q1
Reconstruct Itinerary
Data Structures & Algorithms

I was asked only one question. The problem Reconstruct Itinerary is linked here: https://leetcode.com/problems/reconstruct-itinerary/description/

Q2
Find Optimal Cost to Construct Binary Search Tree
Data Structures & Algorithms

I hadn't seen this question before the interview. I managed to come up with a recursive solution during the interview, but the interviewer asked for an optimized approach. I later discovered that it's a well-known problem, couldn't find similar question on LeetCode. The problem Find Optimal Cost to Construct Binary Search Tree is linked here: https://www.techiedelight.com/find-optimal-cost-to-construct-binary-search-tree/

Uber SDE-1 2025 || Interview Experience || Pending Status
uber logo
Uber
SDE-1
June 28, 20252 reads

Summary

I interviewed for the SDE-1 role at Uber, completing four rounds covering technical coding, a graph-based problem with a real-world scenario, low-level design, and a hiring manager round focusing on behavioral aspects. I am currently awaiting the final decision.

Full Experience

🛣️ My Uber SDE-1 Interview Experience 🚗

I recently interviewed for the SDE-1 role at Uber and wanted to share my experience to help others who might be preparing. Here’s a breakdown of the process:

🔄 Total Rounds: 4


📌 Round 1: Technical Coding (DSA Elimination Round)

  • Got two problems:
    1. A medium-hard graph problem, requiring a DFS/BFS-based approach.
    2. A conceptual discussion around the classic Edit Distance problem.
  • I was able to solve both efficiently and optimally.
  • The interviewer seemed satisfied with my approach and clarity of explanation.
  • I think , I will get hire/strong hire from this round.

📌 Round 2: Problem Solving with a Twist (Uber Story Style)

  • The question was framed in an Uber real-world scenario.There is a city connected to each other , where we want to put maximum number of Uber cabs to reach each and every location fast.
  • Simplified the problem , I had to find all nodes from which the maximum distance to other nodes is minimized.
  • It was a blend of graph algorithms and topological sorting.
  • Take all the leaf Nodes and run toposort from all leaf Nodes and you will get the centre of the graph.
  • Took a bit of time but was able to arrive at a correct and optimized solution.
  • I think , I will get hire/lean hire as I was not that quick in this round , took a lot of time to understand the problem but solved correctly in the most optimized way.

📌 Round 3: Low-Level Design (LLD)

  • This round didn’t go as well.
  • The task was to implement a design problem with appropriate classes, methods, and logic.
  • There is a company , who has employees and a referal bonus system , where one employee will get some bonus for referring another one.
  • I had to implement it from the scratch and interviewer wanted to query on the employee or the company.
  • I misunderstood some part of the requirement and implemented the logic incorrectly.
  • Tried to correct it mid-way, but ran out of time to fully recover.
  • As I communicated properly and wrote clean code with proper structure , hoping for atleast lean Hire :)

📌 Round 4: Hiring Manager (HM) Round

  • Focused more on behavioral questions, past projects, and team fit.
  • Discussed decision-making, ownership, challenges I’ve faced, and how I handled them.
  • Overall, it was a calm and friendly discussion.
  • Expecting a hire from here.

🎯 Takeaways:

  • Be strong with graph algorithms (especially BFS/DFS and shortest-path problems).
  • Expect real-world story-based questions that map to classic CS problems.
  • For LLD, practice clarifying requirements before coding, and rehearse end-to-end implementations :).

Still waiting on the final decision, but I hope this helps someone preparing for similar roles. Feel free to connect or ask if you have questions — happy to help!

Interview Questions (3)

Q1
Uber Cab Placement - Minimize Max Distance to Nodes
Data Structures & Algorithms

The question was framed in an Uber real-world scenario: There is a city connected to each other, where we want to put maximum number of Uber cabs to reach each and every location fast. Simplified, I had to find all nodes from which the maximum distance to other nodes is minimized.

Q2
Low-Level Design: Employee Referral Bonus System
System Design

Implement a low-level design problem for a company that has employees and a referral bonus system, where one employee gets a bonus for referring another. The task was to implement this system from scratch, allowing the interviewer to query on the employee or the company.

Q3
Behavioral: Decision-Making, Ownership, Challenges
Behavioral

Focused on behavioral questions, past projects, and team fit. Discussed my decision-making process, sense of ownership, challenges I’ve faced, and how I handled them.

Uber Off-Campus 2025 for SDE 1
uber logo
Uber
SDE 1
June 27, 20252 reads

Summary

I applied off-campus to Uber for an SDE 1 role and successfully received an offer after completing an online assessment, an elimination round, two coding rounds (one focusing on System Design), and a hiring manager behavioral round. The overall experience was great, and I found the interviewers and process logical.

Full Experience

Applied through a link which i found on either linkedin or telegram (don't remember exactly), with out any referral (I am from 2025 batch). After sometime received a link for OA on 15th June 2025 (ig everyone who applied, received the link).

OA round :

It took place on Codesignal platform, I was part of group 1 (all applicants were divided into batches for test) and had a window of 1 hr to give the test (there were some issue with the link, they told me to open it on new brower window after copy pasting the link and it worked).

Had 60 mins to solve 3 questions of medium to hard difficulty.

  1. Based on greedy (solved in 8 min, practice standard greedy questions on CF) (medium).
  2. Based on Binary Search (solved in 10 min, easier) (medium).
  3. I solved it using prefix sum and some BFS like logic (it was the hardest question in the OA and it took me the next 47 min to solve with just 1 min remaining)(hard). (Question was about finding number of ways in a grid).

Got an email about further rounds taking place on the next monday (22nd june 2025).

Elimination Round :

Was interviewed by an experienced SDE2 at Uber

45 min for solving a coding question and last 15 min for discussion on my previous projects and experience.

  1. Introduction of both the sides in the first 5 min
  2. A grid based easy to medium question. (first gave the brute force solution, then a binary search solution, then a linear time solution with preprocessing).
  3. Ended with asking the interviewer some questions.

Cleared this round and a 3 interview virtual loop was scheduled.

Coding round 1 and 2 happened on the same, while HM round happened after a gap of 1 day

Coding round 1 (DSA):

Was interviewed by an experienced SDE2 at Uber

60 min for solving a coding question with production quality code.

  1. Intro
  2. Question based on string and map (first gave brute force solution, then gave an optimized solution with map and prefix window and then coded the solution).
  3. Discussion on solving the same question using a trie
  4. Ended with asking the interviewer some questions.

Coding round 2 (System Design/Architecture) :

Was interviewed by 2 interviewers, 1 was SDE1 and other was SDE2

  1. Intro
  2. Was asked to discuss design of a messaging app and i blundered here, i thought that an LLD solution was to be provided (as in the mail it was mentioned that this was an LLD round), but the interviewer hinted me multiple times that think of it in terms of a real world project, write DB schema, etc (But i think my nervousness stopped me from listening to these hints). Finally realized in the last 15 min, about what really was the question. Then started DB schema design and they asked some follow ups. Since time was limited, was not given much time to spend on follow ups and could not answer some of those and i think they had more questions to ask me, but they stopped due to time.
  3. Ended with asking the interviewer some questions.

Due to miscommunication from my side and not clarifying the question, this was the worst performance by me in an interview.

HM round (Behaviour and culture fit) :

Was interviewed by an experienced Engineering Manager 2 at Uber

  1. Intro.
  2. Behavioural and lots of situation based questions, like how do i handle conflict, etc
  3. Ended with asking the interviewer some questions.

As all the questions were behaviour based, i couldn't tell about my performance, since these type of questions don't have only 1 correct answer. But I don't think that it went bad, lets see.

Verdict : Offer Accepted (updated).

Finally i can move from spending most of time doing CP for interviews and little time to build something to spending most of the time building something and doing CP for the fun

But anyways it was a great experience overall. All rounds seemed logical, interviewers were great and punctual and recruiter too maintained clean communication.

Feel free to ask any doubts in the comments below.

Interview Questions (3)

Q1
Number of Ways in a Grid (Prefix Sum & BFS)
Data Structures & AlgorithmsHard

A grid-based problem about finding the number of ways, which I solved using prefix sum and some BFS-like logic. This was described as the hardest question in the OA.

Q2
Design a Messaging App
System Design

Design a messaging application. The interviewer expected a real-world project design, including aspects like DB schema, rather than a Low-Level Design (LLD) focused solution. Follow-up questions were asked regarding the design.

Q3
Behavioral: Conflict Resolution
Behavioral

A behavioral question regarding how I handle conflicts or difficult situations.

Preparation Tips

My primary preparation involved competitive programming (CP) for interviews, which I dedicated most of my time to, particularly for Data Structures and Algorithms. I also prepared for system design, although I faced challenges in interpreting the scope of the question during the interview. Behavioral questions were also part of my overall preparation strategy.

Uber SDE 2 Interview Experience (Verdict: Positive)
uber logo
Uber
SDE 2Ongoing
June 24, 202576 reads

Summary

I successfully interviewed for an SDE 2 position at Uber, clearing several rounds including coding, object-oriented design, distributed system design, and behavioral discussions. I received positive feedback and am currently moving forward in the offer process.

Full Experience

I recently had the opportunity to interview for an SDE 2 position at Uber, and I'm pleased to share a breakdown of my experience across all rounds.

1. Recruiter Connect:

After a brief profile discussion with an Uber recruiter, I received an invitation for an interview.

2. Online Screening Round:

This round primarily focused on graph-based problems, which were at a LeetCode medium level. I was able to solve both questions within the given time, employing optimized approaches, and all test cases passed successfully.

3. Loop Rounds:

✅ DSA/Coding Round

The questions in this round covered Strings, Graphs, and Topological Sorting. I approached them using multiple methods, discussing the trade-offs of each with the interviewer. All the interviewer's test cases passed successfully.

✅ Code Design Round

I was asked to design an Employee & Team Directory Management System. This involved implementing functionalities like adding employees, assigning managers, adding employees to teams, providing a hierarchical view from any employee, and calculating employee and team CTC. I managed to implement the core logic and run it against the provided test cases. Due to time constraints, I couldn’t add all the validations and edge-case handling.

✅ System Design Round

This round required me to design a system similar to Omegle. The key requirements included one-to-one user matching, limited chat messages, and ensuring real-time connections. I proposed a design utilizing SSE, WebSockets, Redis, PostgreSQL, and Queue Managers, carefully addressing aspects like scalability, chat restrictions, and the matching logic.

✅ Behavioral Round

The behavioral discussion revolved around my previous projects, demonstrating ownership, and how I approached conflict resolution. The interviewer focused on real work situations and inquired about my handling of them.

Verdict:

I received positive feedback following these rounds and am now moving forward in the offer process.

Interview Questions (2)

Q1
Employee & Team Directory Management System Design
Other

Design an Employee & Team Directory Management System with the following functionalities:

  • Add employee
  • Assign manager
  • Add to team
  • Hierarchical view from any employee
  • Calculate employee and team CTC

Q2
Omegle-like Real-time Matching & Chat System Design
System Design

Design a system similar to Omegle with the following features:

  • One-to-one user match
  • Limited chat messages
  • Real-time connection

Uber SDE-2 Interview Experience - India
uber logo
Uber
SDE-2India3.9 years
June 24, 20254 reads

Summary

I interviewed for the SDE-2 role at Uber in India. The interview process included a phone screen, two data structures and algorithms rounds, one low-level design round, one high-level design round, and a managerial discussion.

Full Experience

Phone Screen https://leetcode.com/problems/number-of-islands-ii/description/

Round 1 - DSA https://leetcode.com/problems/longest-path-with-different-adjacent-characters/description/

Round 2 - LLD Design Meeting scheduler. There are n meeting rooms. We will keep getting requests for bookings - start time and end time. Allocate any room that is available. (Designing classes, interactions, design patterns)

Round 3 - HLD Bus booking system.

Managerial Round Questions like challenges in work, handling conflicts, a time when you proposed a unique way of solving a problem, etc.

Interview Questions (5)

Q1
Number of Islands II
Data Structures & Algorithms

The problem asked was Number of Islands II.

Q2
Longest Path With Different Adjacent Characters
Data Structures & Algorithms

The problem asked was Longest Path With Different Adjacent Characters.

Q3
Design Meeting Scheduler
System Design

Design Meeting scheduler. There are n meeting rooms. We will keep getting requests for bookings - start time and end time. Allocate any room that is available. (Designing classes, interactions, design patterns)

Q4
Design Bus Booking System
System Design

Bus booking system.

Q5
Behavioral/Managerial Questions
Behavioral

Questions like challenges in work, handling conflicts, a time when you proposed a unique way of solving a problem, etc.

Uber | SSE | US | Onsite - 1 hr 15 mins System design round
uber logo
Uber
SDE IIUS
June 17, 20253 reads

Summary

I had a 1 hour 15 minutes onsite system design round at Uber where I was asked to detail the hardest technical problem I recently solved from my projects, focusing on system scale and complexity.

Full Experience

Explain in detail hardest technical problem you solved recently (This needs to be your project that you have worked on recently) - System design

What they are looking for the scale of the system and complex system

Explain the story why it was implemented

Draw the previous System Design - Step 1

Draw the system design after you solved the problem - Step 2

Data flow through the process - Step 3

Interview Questions (1)

Q1
Discuss Hardest Technical Problem Solved (System Design Focus)
System Design

Explain in detail the hardest technical problem you solved recently. This should be a project you have worked on recently. The discussion should focus on the scale and complexity of the system. Explain the story why it was implemented. Draw the previous System Design (Step 1). Draw the system design after you solved the problem (Step 2). Describe the data flow through the process (Step 3).

Uber | SDE-2 – Frontend Engineer | Interview Experience
uber logo
Uber
SDE-2 – Frontend Engineer
June 13, 20255 reads

Summary

This post details my interview experience for an SDE-2 Frontend Engineer role at Uber, which involved three rounds. The rounds focused on implementing a memoize utility, an async scheduler with concurrency limits, and a task runner with dependencies.

Full Experience

🧠 Round 1 (Screening): Memoization + Data Structures Problem: Implement a memoize() utility with nested argument support using a trie-like structure.

Given a function, memoize it such that multiple arguments (primitives + refs) are cached correctly.

Required building a trie inside a Map to support nested argument caching.

Discussed time-space tradeoffs, argument uniqueness, and cache invalidation strategies.


⚙️ Round 2: Async Execution with Limit Problem: Implement a scheduler that runs async tasks with a concurrency limit (like Promise.all with limit = 2).

I used a queue + counter mechanism to throttle concurrent executions.

Discussion included edge cases (failures, infinite queues) and performance under load.

Covered task queue backpressure and the role of microtasks vs macrotasks.


🧩 Round 3: Task Runner with Dependencies Problem: Execute a set of async tasks with dependencies (like a build graph).

Input: tasks A–E with dependencies { D: ['A','B'], E: ['C','D'] }

Wrote a runTasks utility to resolve and run in order using a custom dependency resolver (not topo sort).

My approach worked but the interviewer hinted I should’ve used topological sorting.

⚠️ Feedback: Functional but the interviewer seemed unsatisfied without topo sort.

Interview Questions (3)

Q1
Implement Memoize Utility with Nested Argument Support
Data Structures & Algorithms

Given a function, memoize it such that multiple arguments (primitives + refs) are cached correctly. Required building a trie inside a Map to support nested argument caching.

Q2
Implement Async Scheduler with Concurrency Limit
Data Structures & Algorithms

Implement a scheduler that runs async tasks with a concurrency limit (like Promise.all with limit = 2).

Q3
Execute Async Tasks with Dependencies
Data Structures & Algorithms

Execute a set of async tasks with dependencies (like a build graph). Input: tasks A–E with dependencies { D: ['A','B'], E: ['C','D'] }.

Uber SDE-II Interview Experience [March-25]
uber logo
Uber
SDE-II2.5 years
June 9, 20253 reads

Summary

I successfully navigated the Uber SDE2 interview process, which involved five rounds covering coding, DSA, LLD, HLD, and behavioral aspects, ultimately leading to a hire decision which I declined due to personal reasons.

Full Experience

Uber SDE-II Interview Experience

Sharing my recent Uber interview journey for the SDE2 role. Hope this helps someone preparing for it.

YOE: 2.5 yrs Education: Tier-1 College Application: Applied via referral.

Round 1: Screening (Coding) Got asked Find the Closest Palindrome. Solved it in ~20 minutes. Had a good discussion with the interviewer around edge cases and follow-ups. Cleared the round.

Round 2: DSA Round Got a graph-based question related to finding the smallest distance between nodes(not djikstra). I hadn’t solved this exact one before, so it took me a little time to think through it. Managed to solve it and code the follow-up within 45 minutes. Good round overall.

Round 3: Low-Level Design Was asked to design a pub-sub system. The twist here was that the interviewer wanted it to be implemented using Java threads to simulate multiple publishers and subscribers. If you're preparing, I'd recommend brushing up on Java concurrency — Uber tends to ask about it.

Round 4: High-Level Design Design an e-commerce platform. Covered major components like service design, database choices, scalability, and consistency. Resources like “Hello Interview” and Alex Xu’s system design books helped a lot for this.

Round 5: Hiring Manager / Behavioral This was focused on past experience, projects, and some standard behavioral questions (why I wanted to switch, challenges faced, how I handle ownership, etc.). STAR framework worked well here.

Verdict: Got a Hire 🎯 Decision: Didn’t join due to personal reasons.

Interview Questions (4)

Q1
Find the Closest Palindrome
Data Structures & Algorithms
Q2
Design a Pub-Sub System with Java Concurrency
System Design

Was asked to design a pub-sub system. The twist here was that the interviewer wanted it to be implemented using Java threads to simulate multiple publishers and subscribers.

Q3
Design an E-commerce Platform
System Design

Design an e-commerce platform. Covered major components like service design, database choices, scalability, and consistency.

Q4
Behavioral Questions (Past Experience, Projects, Challenges, Ownership)
Behavioral

This was focused on past experience, projects, and some standard behavioral questions (why I wanted to switch, challenges faced, how I handle ownership, etc.). STAR framework worked well here.

Preparation Tips

My preparation included using resources like “Hello Interview” and Alex Xu’s system design books. I also recommend brushing up on Java concurrency, as Uber tends to ask about it.

Uber | SDE-2 | Frontend
uber logo
Uber
SDE-2 FrontendIndia2 years
June 7, 20252 reads

Summary

I interviewed for an SDE-2 Frontend role at Uber, completing 5 rounds including a hiring manager round. Despite a strong performance in early rounds, I received a 'No hire' decision due to a lean hire in system design and a 'No hire' from the HM, though I was asked to reapply after 6 months.

Full Experience

Background - Currently working as frontend engineer in India's leading quick-commerce company having 2 years and 10 months of experience.

I interviewed for a role at Uber where all the interview rounds were scheduled to be completed in a single day, provided I cleared the initial eliminator round.

Round - 1 ( elimnatory round )

  1. In this round got a dsa question which was pretty easy, it was related to priority_queue
  2. Then a JS currying question
  3. Then had discussions on my projects

After 10 mins recutier told me result was positive and they are moving with next 4 rounds.

Round - 2 ( Problem solving round ) Question was related to method chaining and promises, queue question ->

new UberDriver()
  .pick("TestUser")
  .pick("Rahul")
  .drive(2)
  .drop("Rahul")
  .drive(4)
  .drop("TestUser")
  .rest(10);

output ->

Hello uber driver is online
User TestUser is picked
User Rahul is picked
Driver is driving     <-- wait 2 seconds
Drop Rahul
Driver is driving     <-- wait 4 seconds
Drop TestUser
Driver is in offline mode <-- wait 10 seconds

was able to solve it correctly in half an hour then she extends the question with some followups like if i have to give priority to users, how will the code behave, what all changes we have to make, i discuss the approach not able to code it but interviewer seems happy

-> It was strong-hire call

Round - 3 ( Machine coding round ) Need to build a memory game [https://www.youtube.com/watch?v=DCoIeGt4g7M&t=41s](This was the exaclty same question) it was a very easy task for me, i tell him the approach how i will solve it in react, but then he told me to do it vanilla js with proper optimization completed it in 45 minutes , then discussion on my projects

-> I was expecting a strong hire but got hire call ( feedback -> candidate lack in writing optimise code in vanilla )

Round - 4 ( System design round ) Asked me design google calendar

  1. functional requirements ( satisfied )
  2. non functional ( satisfied )
  3. MVC architecture + server communication ( not satisfied )
  4. data models ( satisfied )
  5. apis -> ( not satisfied ig ), he grill me on graphql query for paginated data for week view and month view, and how caching works with graphql
  6. client storage -> ( satisfied )
  7. optimization -> (satisfied)

-> Lean hire

Round - 5 ( HM round ) Unfortunately, this round didn’t go well for me.

The first 10 minutes were quite rough due to internet issues, which seemed to frustrate the hiring manager and set a negative tone early on. Once we got started, I tried to walk him through my projects, but he struggled to connect with them. I made multiple attempts to clarify, but I don’t think it landed well from his perspective. I also spoke about the web performance optimizations and engineering efforts we implemented, but it seems he didn’t find them impactful enough in the context of what they were looking for.

-> No hire ( feedback -> No major impactful work demonstrated )

**End result - The recruiter mentioned that if the hiring manager had marked me as a strong hire, they would’ve moved forward. Since that wasn’t the case, they’ve asked me to reapply after 6 months.

Interview Questions (4)

Q1
JavaScript Currying
Other

A question related to JavaScript currying.

Q2
UberDriver Method Chaining with Promises and Queue
Data Structures & Algorithms

Implement a UberDriver class with method chaining using promises and a queue to handle actions like picking users, driving for a duration, dropping users, and resting.

Example usage:

new UberDriver()
  .pick("TestUser")
  .pick("Rahul")
  .drive(2)
  .drop("Rahul")
  .drive(4)
  .drop("TestUser")
  .rest(10);

Expected output:

Hello uber driver is online
User TestUser is picked
User Rahul is picked
Driver is driving     <-- wait 2 seconds
Drop Rahul
Driver is driving     <-- wait 4 seconds
Drop TestUser
Driver is in offline mode <-- wait 10 seconds

Follow-up questions involved prioritizing users and the necessary code changes.

Q3
Build a Memory Game
Other

Implement a memory game. The exact problem was demonstrated via this YouTube link. The task involved implementing it in vanilla JavaScript with proper optimization, initially discussing a React approach.

Q4
Design Google Calendar
System Design

Design Google Calendar, covering:

  1. Functional requirements
  2. Non-functional requirements
  3. MVC architecture + server communication
  4. Data models
  5. APIs (specifically grilled on GraphQL query for paginated data for week view and month view, and how caching works with GraphQL)
  6. Client storage
  7. Optimization
Uber interview Experience
uber logo
Uber
June 1, 20252 reads

Summary

I appeared in an Uber interview recently and was asked a coding question in the first round, which I solved but failed some test cases, leading to rejection.

Full Experience

I appeared in uber interview recently and was asked below quastion in the first round.

There are n cars on x axis. i-th Car's initial position is denoted by location[i] and maximum speed by speed[i]. cars can travel in both directions(left and right). At the end, all cars need to meet at the same location, what would be the minimum time required at which all cars can meet.

Test case cars : 3 position: [1, 3, 7] speed: [2, 1, 1]

Answer: 2 if these cars meet at 5. each car will take 2 units of time.

I solved this problem but few test cases didn't pass, so got rejected. All the best to you guys.

Interview Questions (1)

Q1
Minimum Time for All Cars to Meet
Data Structures & Algorithms

There are n cars on x axis. i-th Car's initial position is denoted by location[i] and maximum speed by speed[i]. cars can travel in both directions(left and right). At the end, all cars need to meet at the same location, what would be the minimum time required at which all cars can meet.

Test case cars : 3 position: [1, 3, 7] speed: [2, 1, 1]

Answer: 2 if these cars meet at 5. each car will take 2 units of time.

Uber SDE2 DSA Interview Round
uber logo
Uber
SDE II
May 31, 20253 reads

Summary

I was asked to design a reservation system in a DSA interview round.

Full Experience

Question : Design a Reservation System where you are given a list of rooms [roomA, roomB, ...] and starTime and endTime of a meeting. Write a method scheduleMeeting(startTime, endTime) whick books a room if any room is available for that particular time period and returns the roomId , else errors out.

You need to provide the optimised approach for booking the room.

Interview Questions (1)

Q1
Design a Room Reservation System
Data Structures & Algorithms

Design a Reservation System where you are given a list of rooms [roomA, roomB, ...] and starTime and endTime of a meeting. Write a method scheduleMeeting(startTime, endTime) whick books a room if any room is available for that particular time period and returns the roomId , else errors out. You need to provide the optimised approach for booking the room.

Uber | L4 | Bangalore | Offer
uber logo
Uber
SDE IIBangalore3 years
May 22, 20257 reads

Summary

I interviewed for an L4 role at Uber in Bangalore and received an offer. The interview process included a HackerRank round, a phone screen, two DSA rounds, LLD, HLD, and a Hiring Manager round, with initial negative feedback in LLD and HM rounds that was later overturned.

Full Experience

Experience: ~3 yrs

HackerRank Round: 4 questions had to be solved in 90 mins. Question were medium to hard difficulty.

On clearing hackerrank round, 1 phone screen round was scheduled

Phone screen

Similar to this - https://leetcode.com/problems/minimum-number-of-taps-to-open-to-water-a-garden/description/

After clearing phone screen 4 rounds were scheduled

DSA 1

Started off with this sliding window problem - https://leetcode.com/problems/maximum-points-you-can-obtain-from-cards/description/

And then asked - https://leetcode.com/problems/cheapest-flights-within-k-stops/description/

LLD

Design a parking lot system with the following specifications:

  • The parking lot consists of multiple levels, and each level contains multiple rows of parking spots.
  • There are two types of vehicles: motorcycles and cars.
  • A motorcycle can park in any available parking spot, regardless of the spot type.
  • A car can only park in a designated car spot.

Also implement park, unpark and search functions.

HLD

Send push notifications to users subscribed to a stock when its price jumps or drops more than 5% compared to its closing price.

HM

Don't remember all the questions but here are a few -

  1. Tell me about a time when you received critical feedback from your manager and how did you handled it
  2. About a time when you had to work with someone outside from your team
  3. Had some conflict with co-workers and how did you solved it
  4. Too many back to back questions on everything I say.

Offer:- https://leetcode.com/discuss/post/6770915/uber-l4-bengaluru-accepted-by-anonymous_-sbhq/

Initially, HR informed me that I received negative feedback in the LLD and HM rounds, which came as a surprise to me because I had provided working code during the LLD round. I mentioned this to him, and he told he would update me after the debrief. In the end, I received a hire call overall. The only negative point raised during the HM round was my lack of mentorship experience.

I feel that HRs sometimes try to downplay the offer if you don't have competing offers.

Interview Questions (8)

Q1
Minimum Number of Taps to Open to Water a Garden
Data Structures & AlgorithmsHard

Given an array ranges where ranges[i] denotes that the i-th tap can water the area [i - ranges[i], i + ranges[i]]. There is a garden of length n that extends from point 0 to point n. Return the minimum number of taps to open to water the whole garden, or -1 if the garden cannot be watered.

Q2
Maximum Points You Can Obtain from Cards
Data Structures & AlgorithmsMedium

There are several cards arranged in a row, and each card has an associated number of points. The points are given in the integer array cardPoints. In one step, you can take one card from the beginning or from the end of the row. You have to take exactly k cards. Your score is the sum of the points of the cards you have taken. Given the integer array cardPoints and the integer k, return the maximum score you can obtain.

Q3
Cheapest Flights Within K Stops
Data Structures & AlgorithmsMedium

There are n cities connected by some number of flights. You are given an array flights where flights[i] = [fromi, toi, pricei] indicates that there is a flight from city fromi to city toi with cost pricei. You are also given three integers src, dst, and k, return the cheapest price from src to dst with at most k stops. If there is no such route, return -1.

Q4
Design a Parking Lot System
System Design

Design a parking lot system with the following specifications:

  • The parking lot consists of multiple levels, and each level contains multiple rows of parking spots.
  • There are two types of vehicles: motorcycles and cars.
  • A motorcycle can park in any available parking spot, regardless of the spot type.
  • A car can only park in a designated car spot.

Also implement park, unpark and search functions.

Q5
Stock Price Push Notification System
System Design

Design a system to send push notifications to users subscribed to a stock when its price jumps or drops more than 5% compared to its closing price.

Q6
Tell me about a time when you received critical feedback
Behavioral

Tell me about a time when you received critical feedback from your manager and how did you handled it.

Q7
Describe a time you collaborated with someone outside your team
Behavioral

About a time when you had to work with someone outside from your team.

Q8
Describe a conflict with co-workers and how you resolved it
Behavioral

Had some conflict with co-workers and how did you solved it.

Uber Technical Interview Experience (L4)
uber logo
Uber
SDE II
May 21, 20252 reads

Summary

I had a technical interview for an L4 role at Uber, where I was asked a grid-based problem involving robot placement and blocker detection. Unfortunately, I was not selected.

Full Experience

Verdit: Not selected

Interview Questions (1)

Q1
Find Robot Position with Specific Blocker Distances in a Grid
Data Structures & Algorithms

you have a grid with 3 type of elements O, X, E.

  • O denotes robot
  • X denotes blocker
  • E denotes empty space

grid is of size M x N.

you are also given an array of size 4 with [L, T, B, R] which represents the closest blocker at distance L from left of robot, distance T from Top of robot, distance B from bottom of robot, distance R from right of robot. boundary outside matrix is considered as blocker.

give the position of the robot which satisfies given criteria if there is one, else return [-1, -1]

closest blocker should absolutely exist at given position L, T, B, R. if it does not, it's not valid robot.

grid = [
    ['E', 'X', 'E', 'E'],
    ['O', 'E', 'X', 'E'],
    ['E', 'E', 'E', 'X'],
    ['X', 'E', 'E', 'E']
]
blockers = [1, 1, 1, 1]
Uber | Phone Screen | L5-A role
uber logo
Uber
L5-A role
May 16, 20254 reads

Summary

I had a phone screen interview with Uber for an L5-A role. The interview involved a data structures and algorithms problem where I had to implement methods to ingest numbers into a stream and find the minimum missing number so far.

Full Experience

There is a stream of numbers incoming. They can come in any order. We have to implement two methods.

  1. incoming(num : int) -> This will ingest the number
  2. getMissingMinSoFar() : -> This will return minimum missing number from the stream

Interview Questions (1)

Q1
Minimum Missing Number in a Stream
Data Structures & Algorithms

Implement two methods for a stream of numbers:

  1. incoming(num : int) -> This will ingest the number
  2. getMissingMinSoFar() : -> This will return minimum missing number from the stream

Example stream.getMissingMinSoFar() -> 0 stream.incoming(0) stream.incoming(1)
stream.getMissingMinSoFar() -> 2

stream.incoming(5) stream.getMissingMinSoFar() -> 2 stream.incoming(2) stream.getMissingMinSoFar() -> 3

Uber | L3 | Bangalore | Interview Experience
uber logo
Uber
SDE 1 (L3)Bangalore1.67 yearsOffer
May 8, 202539 reads

Summary

I successfully completed my interview process for an SDE 1 (L3) position at Uber in Bangalore, receiving and accepting an offer. The rounds included an Online Assessment, DSA, System Design, and a Behavioral discussion, ultimately leading to a positive outcome.

Full Experience

I recently interviewed for an SDE 1 (L3) role at Uber in Bangalore, and I'm thrilled to share that I've cleared the interviews and accepted the offer. The entire process involved four distinct rounds after an initial screening.

First, I tackled an Online Assessment which comprised 4 LeetCode questions. I managed to solve 3 completely and made significant progress on the remaining one.

Next was Technical Interview 1, lasting 60 minutes, focused on DSA and debugging. The interviewer presented a challenging problem, which I believe I handled well, solving it optimally. This round also involved follow-up discussions on scalability and performance.

Round 3 was a 60-minute Design round, tailored for an L3 position. This involved coding for an employee management system's core functionalities.

Finally, the Behavioral + Project Deep Dive (EM Round) covered my past work experience, projects, and standard STAR method questions.

After four days, the recruiter informed me that I had received a hire call, and we proceeded to team matching. It took another 10-15 days for a call with the hiring manager, and the offer was rolled out approximately 20 days from the verdict.

Interview Questions (6)

Q1
Unique City Triplets from Log File
Data Structures & Algorithms

Given a log file with rider information (name, city_visited, timestamp), the task is to identify unique triplets of cities visited by riders, ordered by timestamp. For each unique triplet, return the number of riders who have visited those cities in the exact same order.

Follow-up questions included considerations for when the information is too large to be stored in memory and strategies to solve the problem faster.

Q2
Employee Management System: Add Employee & Count Under Manager
Data Structures & Algorithms

Given an employee management system, I was asked to write code to implement two core functionalities:

  1. Adding an employee under a specific manager.
  2. Calculating and returning the total count of employees reporting, directly or indirectly, under a given manager.

Q3
Behavioral: Team Conflict
Behavioral

Describe a situation where you experienced a team conflict and how you handled it using the STAR method.

Q4
Behavioral: Conflicted Opinion with Manager
Behavioral

Recount a time when you had a conflicted opinion with your manager over a decision, and how you navigated that situation using the STAR method.

Q5
Behavioral: Fast Delivery Under Pressure
Behavioral

Share an experience where you had to deliver quickly under pressure, detailing your approach and the outcome using the STAR method.

Q6
Behavioral: Why Uber?
Behavioral

Explain your motivations and reasons for wanting to work at Uber.

Uber Sr Software Engineer hyderabad Phone Screen Round
uber logo
Uber
Sr Software EngineerHyderabad
April 20, 20255 reads

Summary

This post details a specific coding question encountered during a phone screen round for a Senior Software Engineer position at Uber in Hyderabad.

Full Experience

Given two inputs, First input is the location map, a 2D array

| O | E | E | E | X | | E | O | X | X | X | | E | E | E | E | E | | X | E | O | E | E | | X | E | X | E | X |

O = Robot, E = Empty, X = Blocker

Second input is the query. It’s a 1D array consisting of distance to the closest blocker in the order from left, top, bottom and right

[2, 2, 4, 1] -> This means distance of 2 to the left closest blocker, 2 to the top closest blocker, 4 to the bottom closest blocker and 1 to the right closest blocker

Note: The location map boundary is also considered blocker, meaning if the robot hits the boundary it also means it’s hitting the blocker.

Write a function that takes these two inputs and returns the index of the robots (if any) that matches the query that we’re looking for.

Example -

Solution for the example above would be the robot located at index [1, 1]

| O | E | E | E | X | | E | >O< | X | X | X | | E | E | E | E | E | | X | E | O | E | E | | X | E | X | E | X |

Interview Questions (1)

Q1
Find Robots Matching Blocker Distance Query
Data Structures & AlgorithmsMedium

Given a 2D map with robots ('O'), empty spaces ('E'), and blockers ('X'), and a query array representing distances to the closest blocker in four directions (left, top, bottom, right).

The map boundaries are also considered blockers. The task is to write a function that takes the map and the query, and returns the indices of all robots that satisfy the given blocker distance query.

Example: Map: | O | E | E | E | X | | E | O | X | X | X | | E | E | E | E | E | | X | E | O | E | E | | X | E | X | E | X |

Query: [2, 2, 4, 1] (distance to left, top, bottom, right blockers respectively)

Expected Output: Robot at index [1, 1]

Uber SDE II Interview experience
uber logo
Uber
SDE II
April 17, 20253 reads

Summary

I successfully interviewed for an SDE II position at Uber, navigating various technical and behavioral rounds, and ultimately received an offer.

Full Experience

Here is my complete interview experience at Uber.

  1. Codesignal OA a. I was able to solve 2.5-3 out of 4 questions

  2. Screening/Elimination DSA round a. Question can be deduced to cycle finding algorithm in an directed graph, given list of inequalities need to tell whether they are valid or not. Some implementation complexities were involved in the followups. I was able to run the code and pass the given test cases.

  3. DSA round a. Similar to this was able solve optimally using deques in O(n) TC and SC

  4. LLD/Depth in specialisation

    1. it was an easy problem had to write one class with 3-4 functions.
    2. one of the core function was to find top k largest elements, did this using priority queue.
    3. was able to implement and run the tests provided
  5. HLD/Bar raiser a. Design Uber SOS feature.. fingerprint data is sent from frontend for every 5 minutes, when there is two consecutive miss backend needs to trigger an external api call.

    started with FRs and NFRs, Back of the envelope estimation, Block diagram of components, included redis, kaafka, and their justifications, DB choice/schema and api design, these are the things covered.

  6. HM round a. around 15 mins of CV grilling. b. 2-3 HLD/Normal technical problems like how will you block your own employees from participating in sales provided they are using their personal email and devices, how to refresh passwords automatically and sync with all the other dependent services, How will you scale your product when there is huge incoming traffic, things like auto scaling, CDN, load balancer, Data replication/ sharding all of these were discussed, for each question there were multiple followups until you cannot answer further. c. behaviourial questions like conflict resolution, critical feedbacks from manager, handling team members when they are not meeting deadlines etc.there were multiple followups for these scenarios aswell.

  7. Non evaluatory round discussion with manager a. work details of current team b. their expectations vs my expectations

Verdict: Offered

Interview Questions (10)

Q1
Cycle Finding with Inequalities in Directed Graph
Data Structures & AlgorithmsHard

Question can be deduced to cycle finding algorithm in an directed graph, given list of inequalities need to tell whether they are valid or not. Some implementation complexities were involved in the followups.

Q2
Longest Continuous Subarray With Absolute Diff Less Than or Equal To Limit
Data Structures & AlgorithmsMedium

Similar to this

Q3
Find Top K Largest Elements
Data Structures & AlgorithmsEasy

One of the core functions was to find top k largest elements.

Q4
Design Uber SOS Feature
System DesignHard

Design Uber SOS feature. Fingerprint data is sent from frontend for every 5 minutes; when there are two consecutive misses, the backend needs to trigger an external API call.

Q5
Block Employees from Participating in Sales
OtherMedium

How will you block your own employees from participating in sales provided they are using their personal email and devices?

Q6
Automatic Password Refresh and Sync
System DesignMedium

How to refresh passwords automatically and sync with all the other dependent services?

Q7
Scaling Product for Huge Traffic
System DesignHard

How will you scale your product when there is huge incoming traffic?

Q8
Conflict Resolution
Behavioral

Behavioral question about conflict resolution.

Q9
Handling Critical Feedback
Behavioral

Behavioral question about critical feedbacks from a manager.

Q10
Managing Underperforming Team Members
Behavioral

Behavioral question about handling team members when they are not meeting deadlines.

Uber | SSE | Bangalore | L5-A
uber logo
Uber
SSE L5-ABangalore7 years
April 8, 20252 reads

Summary

I had a positive experience interviewing for an SSE L5-A role at Uber in Bangalore, covering various rounds including coding, LLD, HLD, and a hiring manager discussion. I successfully received an offer.

Full Experience

YOE - 7 years

Working code was expected for all the rounds

Screening round - Some referral system question. Had to write optimised solution by using HashMap, unordered_set

DS Round - Alien Dictionary

LLD Round - Design Stock trading platform

HHD Round - Design Youtube view count system

HM Round - In depth project discussion

Overall positive experience Got offer from Uber

Interview Questions (3)

Q1
Alien Dictionary
Data Structures & Algorithms

Asked to solve the Alien Dictionary problem.

Q2
Design Stock Trading Platform
System Design

Asked to design a stock trading platform, focusing on Low-Level Design (LLD).

Q3
Design YouTube View Count System
System Design

Asked to design a system for YouTube view counts, focusing on High-Level Design (HLD).

Uber | SDE 2 | Interview Experience | Rejected
uber logo
Uber
SDE 2
April 8, 20254 reads

Summary

I interviewed for an SDE 2 role at Uber, which included an online assessment and five interview rounds covering Data Structures & Algorithms, Low-Level Design, High-Level Design, and behavioral questions. Despite receiving positive feedback, I was ultimately rejected for not exceeding the bar.

Full Experience

There was 1 online test followed by 5 rounds of interviews.

For online assessment I don't remember exact questions but 3 questions were easy and last question was bit trick which I guess can be solved with BST.

Round 1 - This was elimination round We are given an array, minRange, maxRange. Need to count number of subarrays which have both minRange and maxRange inside them and all other elements in the subarray should be between the range.

After that there were 3 interviews scheduled.

1 DSA - Was asked to build a system in which we are getting stream of userIds visiting a website. And we need a functionality to return the first user who visited website only once till now.

2 LLD - Design similar to org chart which we have on teams. There were multiple requirement. Like allocate budget. Add manager, add IC, remove manager, remove IC and few more requirements

3 HLD - Design chat application. There were no exact requirement but discussed about all these - Handling 1:1 chatting, grp chatting, offline message, handling sudden surge of messages. DB design, API contracts, websockets.

After 2-3 days got a call from recruiter to schedule HM round In this rounds there was indepth discussion about my past project and few behavioural questions. This felt like stress test back to back question, cross questions.

Received Feedback after 3 days that overall it was +ve. You are meeting the bar but not exceeding it so we can't proceed. So bascially it is not -ve but not extremely +ve 🤷🏻‍♂️

Interview Questions (5)

Q1
Count Subarrays with Min and Max Range
Data Structures & Algorithms

Given an array, minRange, maxRange. Need to count number of subarrays which have both minRange and maxRange inside them and all other elements in the subarray should be between the range.

Q2
First Unique User in a Stream
Data Structures & Algorithms

Build a system in which we are getting stream of userIds visiting a website. And we need a functionality to return the first user who visited website only once till now.

Q3
Design an Org Chart System
System Design

Design a system similar to an org chart on teams. There were multiple requirements, including: allocate budget, add manager, add IC, remove manager, remove IC, and a few more requirements.

Q4
Design a Chat Application
System Design

Design a chat application. Discussion covered topics such as handling 1:1 chatting, group chatting, offline messages, handling sudden surges of messages, database design, API contracts, and websockets.

Q5
Behavioral Questions and Project Discussion
Behavioral

In-depth discussion about my past projects and several behavioral questions. This round felt like a stress test with back-to-back questions and cross-questions.

Uber SDE-2 Interview | Reject
uber logo
Uber
SDE-2Bengaluru, India2.6 years
April 7, 20254 reads

Summary

I interviewed for an SDE-2 role at Uber in Bengaluru, India, and was ultimately rejected despite positive outcomes in most rounds, including DSA screening and onsite. My final verdict was rejected after failing the Machine Coding and Bar Raiser rounds.

Full Experience

I just finished my Uber SDE-2 (Bengaluru, India) loop. Here's how it went.

Current Company : Ecom company Current Exp: 2.6 YoE Current Designation: SDE-2

1. Online Assessment (19th Jan)

It consists of four problems. I don't remember the problems now, but problems 1 and 2 were easy, 3 was implementation-heavy, and 4 was medium. Got 523/600 as I was able to solve the last problem partially.

2. DSA Screening Round (22 March)

Interviewer Designation: SSE

Duration: 1 hr

Problem:

  1. Given a 2D plan & you have incoming requests for isLand(I,j) & setLand(I,j): Told the basic Set approach.
  2. Now there’s another request for numberOfIslands(): Told I’ll do BFS or DFS whenever I get the numberOfIslands requests. 
  3. Now, the frequency of the numberOfIslands requests increased: Told that I’ll utilise DSU, find & merge, whenever we are processing setLand(I,j) , I’ll be try to merge this with neighboring elements, this way our setLand will take extra time than before but our numberOfIslands will be in O(1)

The interviewer asked me to write the code for 3rd follow-up. Was able to write the working code within the given time frame.

Verdict: Positive 

3. DSA Onsite Round (22 March)

Interviewer Designation: SDE-2

Duration: 1 hr

Problem: https://leetcode.com/problems/making-a-large-island/description/ 

Was able to solve this problem completely within the time frame.

Verdict: Positive 

4. Hiring Manager Round (22 March)

Interviewer Designation: Senior EM

Duration: 1 hr

  1. Asked me about the work I’m doing in my current company. 
  2. Deep dived into the work I mentioned in my resume with some HLD diagrams on excalidraw. 
  3. Behavioural questions like: Why do you want to leave your current company?
  4. Tell me about your interaction with your juniors within the team.

Verdict: Positive 

5. Machine Coding Round (22 March)

Interviewer Designation: SSE

Duration: 1 hr

Problem: Implement the File system API. The function will mimic their respective Linux commands 

  1. Implement mkdir
  2. Implement cd (The path may contain regex)
  3. Implement pwd

Verdict: Negative

6. Bar Raiser Round (1 April)

Interviewer Designation: Staff Engineer

Problem: Design a type ahead suggestion like in Google Search. 

Started with NFR & FR, then Back of the Envelope, then told the basic approach which wasn’t scalable using Relational DB. Later told that I’ll be using Trie to maintain the prefix and at each node will cache the top 10 words. But I feel like my HLD diagram could have been better, although I told him things verbally above

Verdict: Negative

Final Verdict: Rejected PS: I participated in 22 March Hiring Drive.

Interview Questions (12)

Q1
2D Plan Land Operations (Basic Set)
Data Structures & Algorithms

Given a 2D plan and incoming requests for isLand(I,j) and setLand(I,j).

Q2
2D Plan Land Operations with numberOfIslands (BFS/DFS)
Data Structures & Algorithms

Follow-up to 2D plan land operations: There’s another request for numberOfIslands().

Q3
Optimized Number of Islands with DSU
Data Structures & Algorithms

Follow-up to 2D plan land operations: The frequency of numberOfIslands requests increased. Optimize the solution.

Q4
Making A Large Island
Data Structures & Algorithms
Q5
Current Work Discussion
Behavioral

Asked me about the work I’m doing in my current company.

Q6
Resume Deep Dive with HLD Diagrams
System Design

Deep dived into the work I mentioned in my resume with some HLD (High-Level Design) diagrams on Excalidraw.

Q7
Why leave current company?
Behavioral

Behavioural question: Why do you want to leave your current company?

Q8
Interaction with junior team members
Behavioral

Behavioural question: Tell me about your interaction with your juniors within the team.

Q9
Implement mkdir
Data Structures & Algorithms

Implement the mkdir function as part of a File System API that mimics Linux commands.

Q10
Implement cd with Regex Support
Data Structures & Algorithms

Implement the cd function as part of a File System API, where the path may contain regex.

Q11
Implement pwd
Data Structures & Algorithms

Implement the pwd function as part of a File System API that mimics Linux commands.

Q12
Design Type Ahead Suggestion
System Design

Design a type-ahead suggestion system like in Google Search.

Uber | Senior Software Engineer | Bangalore | March 2025
uber logo
Uber
Senior Software EngineerBangalore5.5 years
April 1, 20254 reads

Summary

I interviewed for a Senior Software Engineer role at Uber in Bangalore and was rejected due to issues in the managerial and low-level design rounds. The process included an online assessment, two coding rounds, a managerial interview, high-level design, and low-level design.

Full Experience

I am currently working as a Senior Software Engineer in a fintech company with a total of 5.5 years of experience. Below is my interview experience with Uber.

Round 1: Online Assessment (OA) on Codility

This round was an online assessment conducted on Codility. I don't remember the exact questions, but they were related to arrays, hashmaps, and OOPS concepts.

Round 2: Pre-Screening

  • Coding Question

    Problem: Sort an array by comparing the squares of each number.

    Solution: I implemented a brute-force solution first and then optimized it using a two-pointer approach.

  • Follow-up Problem: Extend the solution to find the kth largest element.

    Discussion: We discussed code cleanup, modularity, and removing the auxiliary array for the second question.

Round 3: Coding

Problem:

Given an n-ary tree (each edge is a directed edge from parent to children) with each node as a character, find the length of the longest two paths from top to bottom such that no two consecutive characters are the same.

Follow-up:

Problem: The edges in the n-ary tree are now undirected, and the path can be in any direction. Find the longest path.

Solution:

I was able to solve the question, although it took some time due to the complexity of the n-ary tree. I used a DFS approach combined with sorting to find the top 2 longest valid children for each node. I returned the current character + the max child string during each recursion while keeping track of the global answer variable to compare with the longest path (including a second max length child, if it existed). The logic was similar to the "max path sum in a binary search tree" problem.

Round 4: Managerial Interview

I was asked to draw and explain the components of my previous project and justify any non-functional requirements with my design.

Below questions were asked to judge my past expeirnece.

  • Discussed cross-team collaboration. Provide examples of working with different teams on various aspects of the project.
  • Explain a situation where I had a conflict with a colleague and how I resolved it.
  • Share an example where I took on a leadership role to ensure a project met deadlines and objectives. How did you organize the work, and what challenges did you overcome?
  • Share an example of an unrelated project I took over to ensure it met standards and deadlines. How did you achieve that, how did you track success etc.

Round 5: High-Level Design (HLD)

Problem: Design a system to notify users if a stock price changes by x% compared to its last closing price. The stock exchange is providing the following information:

  • Stock name
  • Current price
  • Previous closing price

Round 6: Low-Level Design (LLD)

Problem: Write code to create a publisher-consumer model where multiple producers publish messages to a queue, and multiple consumers can consume messages from the queue. System can have multiple such queues.

Solution: I created all required entities and had PublisherQueueSubscription and ConsumerQueueSubscription stored as a HashMap/List in a subscription repository. My design followed a synchronous approach where the message was deleted from the queue once all consumers received it by getting he front message. I also proposed an asynchronous solution, where each consumer would have its own local queue to poll messages (similar to how Amazon SQS/SNS works).

Verdict: Rejected

Reason:

  • Managerial Round: I was told that I could not provide more complex answers.
  • LLD Round: I overcomplicated my solution and was not able to write running code at the end due to some syntax issues.

The recruiter encouraged me to apply again in a few months.

Interview Questions (11)

Q1
Sort Array by Squares
Data Structures & Algorithms

Problem: Sort an array by comparing the squares of each number.

Q2
Find Kth Largest Element After Squaring and Sorting
Data Structures & Algorithms

Problem: Extend the solution to find the kth largest element. Discussion: We discussed code cleanup, modularity, and removing the auxiliary array for the second question.

Q3
Longest Path in Directed N-ary Tree with Non-Consecutive Different Chars
Data Structures & Algorithms

Given an n-ary tree (each edge is a directed edge from parent to children) with each node as a character, find the length of the longest two paths from top to bottom such that no two consecutive characters are the same.

Q4
Longest Path in Undirected N-ary Tree
Data Structures & Algorithms

Problem: The edges in the n-ary tree are now undirected, and the path can be in any direction. Find the longest path.

Q5
Explain Previous Project Design and NFRs
Behavioral

I was asked to draw and explain the components of my previous project and justify any non-functional requirements with my design.

Q6
Cross-Team Collaboration Experience
Behavioral

Discussed cross-team collaboration. Provide examples of working with different teams on various aspects of the project.

Q7
Conflict Resolution with Colleague
Behavioral

Explain a situation where I had a conflict with a colleague and how I resolved it.

Q8
Leadership in Project Delivery
Behavioral

Share an example where I took on a leadership role to ensure a project met deadlines and objectives. How did you organize the work, and what challenges did you overcome?

Q9
Taking Over an Unrelated Project
Behavioral

Share an example of an unrelated project I took over to ensure it met standards and deadlines. How did you achieve that, how did you track success etc.

Q10
Design Stock Price Change Notification System
System Design

Problem: Design a system to notify users if a stock price changes by x% compared to its last closing price. The stock exchange is providing the following information:

  • Stock name
  • Current price
  • Previous closing price
Q11
Design Publisher-Consumer Model with Multiple Queues
System Design

Problem: Write code to create a publisher-consumer model where multiple producers publish messages to a queue, and multiple consumers can consume messages from the queue. System can have multiple such queues.

Uber | SDE 2 Interview | Hard Question
uber logo
Uber
SDE 2
March 30, 20254 reads

Summary

I interviewed with Uber for an SDE 2 role and encountered a challenging QuadTree compression problem during a virtual onsite round, ultimately receiving a rejection.

Full Experience

I recently got a chance to interview with Uber for SDE 2 role. I faced a interesting and challenging question in Virtual Onsite round 1.

[QuadTree Compression of a Matrix]

Problem Statement

A QuadTree is a tree data structure in which each internal node is either a leaf node or has exactly four children. QuadTrees are often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions.

Given an n x n matrix of integers, compress it using a QuadTree. A region can be compressed into a single value if all elements in that region are the same.

Example

Input:

|2 | 2 |3 |3| |2 | 2 |3 |3| |4 | 2 |5 |5| |2 | 3 |5 |5|

output:

| | | | 2 | 3 | | | | | 4 | 2 | 5 | | 2 | 3 | |

IMG_9212.jpeg

I gave recursive approach, using quadTree data structure, but interviewer doesnt seemed impressed. I got a rejection mail after a day.

Please feel free to post your solution in comments.

Edit: Everyone is using GPT,Bard,etc to solve this problem. Just think of odd size case. Say 6 x 6 -> 3 x 3 -> (?) GPT sucks for such cases.

Follow up: What if given matrix is not square matrix ?

Interview Questions (1)

Q1
QuadTree Compression of a Matrix
Data Structures & AlgorithmsHard

A QuadTree is a tree data structure in which each internal node is either a leaf node or has exactly four children. QuadTrees are often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions.

Given an n x n matrix of integers, compress it using a QuadTree. A region can be compressed into a single value if all elements in that region are the same.

Example

Input:

|2 | 2 |3 |3| |2 | 2 |3 |3| |4 | 2 |5 |5| |2 | 3 |5 |5|

output:

| | | | 2 | 3 | | | | | 4 | 2 | 5 | | 2 | 3 | |

IMG_9212.jpeg

Follow up: What if given matrix is not square matrix ?

Uber | SDE 2 Interview | Hard Question
uber logo
Uber
SDE 2
March 30, 20253 reads

Summary

I recently interviewed with Uber for an SDE 2 role and faced a challenging QuadTree compression problem during a virtual onsite round, ultimately receiving a rejection.

Full Experience

I recently got a chance to interview with Uber for SDE 2 role. I faced a interesting and challenging question in Virtual Onsite round 1.

[QuadTree Compression of a Matrix]

Problem Statement

A QuadTree is a tree data structure in which each internal node is either a leaf node or has exactly four children. QuadTrees are often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions.

Given an n x n matrix of integers, compress it using a QuadTree. A region can be compressed into a single value if all elements in that region are the same.

Example

Input:

|2 | 2 |3 |3| |2 | 2 |3 |3| |4 | 2 |5 |5| |2 | 3 |5 |5|

output:

| | | | 2 | 3 | | | | | 4 | 2 | 5 | | 2 | 3 | |

IMG_9212.jpeg

I gave recursive approach, using quadTree data structure, but interviewer doesnt seemed impressed. I got a rejection mail after a day.

Please feel free to post your solution in comments.

Interview Questions (1)

Q1
QuadTree Compression of a Matrix
Data Structures & AlgorithmsHard

A QuadTree is a tree data structure in which each internal node is either a leaf node or has exactly four children. QuadTrees are often used to partition a two-dimensional space by recursively subdividing it into four quadrants or regions.

Given an n x n matrix of integers, compress it using a QuadTree. A region can be compressed into a single value if all elements in that region are the same.

Example

Input:

|2 | 2 |3 |3| |2 | 2 |3 |3| |4 | 2 |5 |5| |2 | 3 |5 |5|

output:

| | | | 2 | 3 | | | | | 4 | 2 | 5 | | 2 | 3 | |

IMG_9212.jpeg

Uber Amsterdam (SE1) Interview Experience
uber logo
Uber
se1amsterdamRejected
March 22, 202538 reads

Summary

I applied for a Software Engineer 1 position at Uber Amsterdam. After a coding assessment, I had a technical interview involving a graph problem on currency conversion. Despite solving the problem efficiently, I received a rejection a month later without any feedback.

Full Experience

I went through the application process for an SE1 role at Uber Amsterdam, which started with a coding assessment. This was followed by a technical interview where I was given a graph problem. The task was to determine the cost value after converting between different currencies, provided a list of currencies and their conversion values. I managed to solve and code the question within 20 minutes. I felt the interviewer was satisfied; they asked for some improvements in variable names and potential changes to optimize the solution, but I believed my solution was already quite robust. However, after about a month, I received a rejection without any feedback, and I'm still unsure what happened.

Interview Questions (1)

Q1
Currency Conversion Graph Problem
Data Structures & Algorithms

I was presented with a graph problem where the goal was to determine the cost value after converting between different currencies. The problem provided a list of various currencies and their respective conversion values or rates.

Uber | Senior Software Engineer (SSE) Interview experience
uber logo
Uber
Senior Software Engineer (SSE)Rejected
January 15, 202540 reads

Summary

I recently interviewed for a Senior Software Engineer position at Uber, going through three rounds focused on Data Structures & Algorithms and Machine Coding. Despite the overall difficulty not being excessively high, I was ultimately rejected after the third round, which I suspect was due to my limited background in Object-Oriented Programming (OOPS) for the machine coding challenge.

Full Experience

I had the opportunity to interview for a Senior Software Engineer role at Uber, which involved three distinct rounds. I'm sharing my experience to give back to the LeetCode community that has been instrumental in my job search.

Round 1 (Data Structures & Algorithms)

This round featured a Trie-based problem. The core task was to find all words that share a specific prefix. However, the question included a particular 'catch' that made it more complex than a standard prefix-matching problem using a Trie.

Round 2 (Data Structures & Algorithms)

The second round focused on a graph-based problem centered around currency conversion. The interviewer was keen on exploring various graph algorithms and extended the problem to touch upon different BFS-based weighted graph questions, including Dijkstra's algorithm. The goal seemed to be to cover a broad spectrum of fundamental graph algorithms through this single problem.

Round 3 (Data Structures & Algorithms + Machine Coding)

The final round was a combination of DSA and a machine coding challenge. I was tasked with building an event assignment module. The scenario was to imagine an office environment where rooms needed to be booked, and my task was to assign a suitable room to an incoming calendar event.

Unfortunately, I received a rejection after this round. While I didn't find the difficulty too high, and I spent about two weeks to prepare specifically for the DSA aspects of these rounds, I believe I struggled with the machine coding part, likely due to my weaker background in Object-Oriented Programming principles.

Interview Questions (3)

Q1
Trie Prefix Search with Catch
Data Structures & Algorithms

The problem involved a Trie data structure. The primary goal was to find all words in a given set that shared a specific prefix. The interviewer added a particular 'catch' or additional constraint to the problem, making it more challenging than a straightforward prefix search.

Q2
Currency Conversion Graph Problem
Data Structures & Algorithms

This was a graph-based problem where the main task was to handle currency conversions. The interviewer then extended the problem significantly to cover various basic graph algorithms. The discussion involved exploring concepts related to Breadth-First Search (BFS) for weighted graphs and touched upon Dijkstra's algorithm, with the aim of assessing my understanding of fundamental graph traversal and shortest path algorithms.

Q3
Event Assignment Module Design
System Design

For this machine coding challenge, I was asked to build an event assignment module. The scenario provided was similar to a room booking system within an office. The core functionality required was to take an incoming calendar event and assign an appropriate, available room to it based on certain criteria (implicitly, time, availability, etc.).

Preparation Tips

I dedicated approximately two weeks to prepare specifically for the Data Structures & Algorithms components that would be covered in these interview rounds.

Uber Winter Intern Offer 2025
uber logo
Uber
Software Engineering InternBangalore, or Hyderabad IndiaOffer
November 19, 202432 reads

Summary

I successfully secured a Software Engineering Intern offer for Winter 2025 at Uber, after navigating through their application process which included an online assessment and three interview rounds focusing on DSA, Low-Level Design, and a Hiring Manager discussion.

Full Experience

I initiated my application for the Uber Winter Intern position through their career portal. I've learned that it's crucial to check their portals regularly, as openings for mass drives typically last only a day or two. After applying, I was invited to an Online Assessment consisting of three questions, to be completed in 90 minutes. A pattern I observed was that the penultimate question often proved to be the toughest, so I strategically saved it for last. The difficulty of the questions ranged from LeetCode Medium to Hard, and I managed to solve all three. Approximately three weeks after the OA, my interview was scheduled.

All my interview rounds were conducted on the same day, and I was thrilled to receive an offer just two working days later. The interview experience felt pretty standard for Uber. My first round was dedicated to Data Structures and Algorithms, where I was presented with two LeetCode Hard problems. I was able to code the first question quite quickly, which led to a second question being posed, and I completed that within the allotted time as well. The second round focused on Low-Level Design, specifically the 'Parking Lot' problem. The final round was with a Hiring Manager, where we delved into my previous internships and discussed my interest in Uber.

Interview Questions (1)

Q1
Low-Level Design: Parking Lot
System Design

Design a parking lot system. This typically involves designing classes for parking spots (different types like handicapped, compact, large), vehicles (car, truck, motorcycle), entry/exit points, parking lot structure, and handling operations like parking a vehicle, unparking, displaying available spots, etc.

Preparation Tips

My advice for anyone preparing for Uber interviews, especially juniors, is to be highly mindful of the strict time limits; they won't extend even a minute beyond the allocated 45 minutes per round. For LLD, I recommend drafting a bare-bones design as quickly as possible to ensure you have a functional prototype rather than spending too much time on details you might not complete. The same principle applies to DSA: if you know the solution, dive straight into coding the most efficient approach without hesitation.

Uber L4 | Online assessment
uber logo
Uber
SDE IINo Offer
November 5, 202429 reads

Summary

I recently underwent an online assessment for an L4 role at Uber, which included four technical questions. My performance was not satisfactory, especially on the final question, and I did not receive any feedback.

Full Experience

Hi Folks,
Recently, I appeared for the Uber online assessment interview for an L4 position. The assessment lasted 70 minutes and comprised four questions. I found the questions challenging, particularly the fourth one, where I struggled to pass all the test cases. Unfortunately, I did not receive any feedback after the assessment, and I believe my performance was not good.

Interview Questions (3)

Q1
Difference of Uppercase and Lowercase Letters
Data Structures & AlgorithmsEasy

Given a string containing only alphabets, find the absolute difference between the count of uppercase letters and the count of lowercase letters.

Q2
Bucket with Maximum Files
Data Structures & AlgorithmsMedium

You are given a list of commands where each command has either a goto operation or a create operation.
commands = ["goto Bucket_A", "create File_A", "create File_B", "goto Bucket_C", "create File_Y"]
The goto operation changes the current active bucket to the specified bucket. The create operation creates a file in the current active bucket. Your task is to return the name of the bucket which has the maximum number of files.

Q3
Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
Data Structures & AlgorithmsMedium

Find the longest continuous subarray such that the absolute difference between any two elements in this subarray is less than or equal to a given limit.

Uber - Software Engineer(Data)
uber logo
Uber
Software Engineer(Data)
October 4, 202437 reads

Summary

I interviewed for a Software Engineer (Data) role at Uber and was asked to design a flight booking system that handles both user and admin functionalities.

Full Experience

During my interview for the Software Engineer (Data) position at Uber, I was presented with a system design challenge. The interviewer asked me to design a comprehensive flight booking system that could manage various operations for both end-users and administrators. I had to consider user interactions like searching and booking flights, as well as admin tasks such as adding new flights and reviewing existing bookings. The discussion also involved outlining the core entities and their attributes required for such a system.

Interview Questions (1)

Q1
Flight Booking System Design
System Design

Design and implement a flight booking system that allows users to search and book flights, and enables administrators to add new flight details and show bookings for a given flight.

User functionalities:

  • flightSearch
  • bookFlight
  • addUser

Administrator functionalities:

  • addFlight
  • showBookings

Proposed entities and their attributes:

  • User: user_id, name, phone, email_id, identity_card, userType
  • Admin: admin_id, name, phone, email_id, identity_card
  • Flights: flight_id, no_of_seats, src, desc, time_duration
  • Bookings: flight_id, user_id, seat_number, src, desc
Uber | SDE 2 | Bangalore | July 2024 [Offer]
uber logo
Uber
SDE 2bangalore3 yearsOffer
August 18, 202445 reads

Summary

I recently interviewed at Uber for an SDE 2 role in Bangalore and successfully received an offer after a comprehensive process that included an OA, a technical phone screen, and four onsite rounds focusing on DSA, LLD, HLD, and behavioral aspects.

Full Experience

Online Assessment

My interview process began with an Online Assessment, which consisted of three questions, all ranging from LeetCode Easy to Medium difficulty. I successfully solved all of them with all test cases passing.

Technical Phone Screen

Following the OA, I moved to a Technical Phone Screen. The question was to find the minimum absolute difference between any two elements within every K-sized rolling window of a given N-sized array. I managed to implement a working solution with O(NKlogK) time complexity. However, the interviewer expected a more optimal O(NlogK) solution. The idea behind this optimal approach involves a one-time construction of a K-sized sorted set for the first window and a K-1 sized sorted set of differences, which takes O(KlogK). Subsequent window operations (removal, addition, and minimum difference computation) can then be performed in O(logK) each, leading to the overall O(NlogK) complexity. Although I couldn't implement or clearly discuss the optimal solution, I surprisingly still received an onsite interview call.

Onsite DSA

The onsite DSA round had two questions. The first was to construct an N-sized array containing elements from 0 to N-1, given K subsequences of that array. A follow-up asked to return the 'lowest' value solution in case of multiple valid arrays. I was able to solve both the question and the follow-up with optimal time complexity, using topological sort for the first part and a minor modification to the DFS for the second part to ensure descending order traversal. The second question was a string manipulation problem, similar to one found in this post. I implemented a working solution. We discussed that a Trie might be overkill given the limited element set, and the interviewer agreed, so a simple hash-map based approach sufficed.

LLD

For the Low-Level Design round, I was asked to design a well-defined logging library API with get and set methods, where data was expected to be handled in memory. I first implemented a functionally complete solution, incorporating appropriate design patterns like singleton and fluent interfaces. We then discussed and partially implemented improvements, including concurrency handling with locking and time complexity optimization. I encountered some strange compilation issues while working on the optimization, preventing me from fully completing all discussed requirements, but there were no major gaps.

HLD

The High-Level Design round involved a problem statement that the interviewer copy-pasted, rather than verbally discussing. While I don't recall the exact problem statement, it was well-defined, which made the interview more straightforward than usual HLD rounds.

Hiring Manager

Finally, the Hiring Manager round consisted of several behavioral questions and cross-questioning, with a significant focus on my experience managing multiple stakeholders.

Notes

Overall, the interviews were comprehensive and covered standard topics. I found that the most challenging part of the process was getting the initial call from the recruiter, which required personal referrals and patience.

Interview Questions (3)

Q1
Min Absolute Difference in Rolling Window
Data Structures & Algorithms

Given a size N array, for every K sized rolling window in the array, find the minimum absolute difference between any two elements in the K sized window.

Q2
Construct Array from Subsequences with Lowest Lexicographical Order
Data Structures & Algorithms

Construct an N sized array consisting of elements from 0 to N - 1 given K subsequences of that array. It can be assumed that at least one valid answer always exists. Follow-up: In case of multiple valid solutions, return the one that corresponds to the "lowest" value. (i.e. [0, 1, 2, 3] is lower than [0, 2, 1, 3])

Q3
Logging Library API Design
System Design

Design a well-defined logging library API with get and set methods, where data is expected to be handled in memory.

Preparation Tips

I regularly used LeetCode for DSA. For the LLD interview, I read up about design patterns and multithreading. For HLD, I watched videos from the System Design Interview YouTube channel and read a few case studies from Alex Xu's books. Reviewing existing Uber interview experiences was also helpful for fine-tuning my preparation before each round.

Uber SE 2 | Selected
uber logo
Uber
SE 22.5 yearsOffer
April 12, 202451 reads

Summary

I successfully navigated multiple rounds of interviews at Uber for an SE 2 role, culminating in an offer. The process included an Online Assessment, DSA-focused screening and technical rounds, a System Design round, a Hiring Manager discussion, and an additional DSA round.

Full Experience

Online Assessment

With 2.5+ years of experience as an SDE2, I applied to Uber through an employee referral and received an online assessment link within 3-4 days. The assessment consisted of 4 DSA-based questions. I fully solved the first two, achieved 15/20 test cases for the third, and for the fourth, I only had time for a brute-force approach, passing 6/20 test cases. The total time allotted was 70 minutes, and the difficulty level of the questions increased progressively. Although I'm unsure about the exact cutoff, I received a call from the recruiter shortly after to schedule a DSA-based screening round.

Screening Round

This was a DSA-based round, featuring a medium to hard difficulty question. It was similar to the LeetCode problem Longest Continuous Subarray With Absolute Diff Less Than or Equal To Limit. I began by articulating a brute-force approach and then iteratively refined it to an O(N log N) solution using a priority queue. I successfully wrote working code for this optimized approach. Three to four days later, the recruiter informed me that I had cleared the screening round and my four-round interview loop would be scheduled. I believe my iterative refinement of the solution and clear communication, moving from brute-force to optimization, were key to my success in this round.

Round 1: DSA

This round was another DSA-based one, with a medium to hard difficulty problem. It was similar to the HackerRank challenge Haunted House. Initially, I struggled to fully grasp the problem statement. However, with the interviewer's guidance and a few hints, I was able to formulate a brute-force solution and quickly coded it. Unfortunately, I couldn't optimize the solution further, despite discussing several data structures with the interviewer. I felt this round didn't go well and wasn't optimistic about advancing, but I maintained a positive attitude and continued with the process.

Round 2: DSA (Originally LLD)

I was informed that this round would be focused on LLD (Domain Specialization), but it turned out to be another hard-difficulty DSA problem, similar to the LeetCode question Bus Routes. I discussed a couple of graph-based approaches with the interviewer, who appeared satisfied with my overall strategy, though he had a few clarifying questions. I proceeded to code a working solution on my first attempt. We then discussed various aspects of the code, including edge cases and time complexity. Overall, I felt this round went quite well. My focus areas included clear approach communication, writing clean and working code, handling edge cases, and demonstrating a strong understanding of time and space complexity.

Round 3: System Design

In this system design round, I was tasked with designing a single central authentication system to grant access to multiple portals. As an extension, the interviewer asked me to incorporate an OTP (One-Time Password) mechanism. I was able to construct a robust system diagram, addressing scalability, database choices, DB schema, APIs and their schemas, and failure scenarios. I initially overlooked some failure scenarios but managed to discuss them at a high level due to time constraints. While not perfect, the round went well. The interviewer was particularly pleased with my system diagram, choice of databases, and database schema.

Round 4: Hiring Manager

This was the Hiring Manager round, which primarily involved 3-4 situation-based behavioral questions. Examples included how I would handle conflict with a peer or deliver a project under a tight deadline. For each question, I structured my answers using the STAR method, detailing my projects and actions. The interviewer also interjected with a few technical questions related to my past projects. Overall, this round went very well, and clear communication was essential.

Additional Round

Approximately two weeks later, the recruiter contacted me, stating that they needed more clarity on a DSA round and asked if I was open to an additional interview. This additional round took 2-3 weeks to schedule. It was a medium-difficulty DSA round. Initially, I approached the problem as a graph-based one, proposing a brute-force Dijkstra's algorithm. The interviewer prompted me to optimize. After asking a few clarification questions, I realized the problem could be rephrased as an N-ary tree problem, similar to finding the maximum path sum in a tree. I coded a clean solution, requiring only one or two minor fixes for correct output. As an extension, the interviewer asked me to compute the distance between two nodes in that tree. I quickly implemented a clean BFS-based solution, which worked correctly on the first attempt. The interviewer seemed satisfied with both solutions.

About a week later, I received a call from the recruiter informing me that I had cleared all rounds, and I received the official offer letter on the same day.

Interview Questions (6)

Q1
Longest Continuous Subarray With Absolute Diff Less Than or Equal To Limit
Data Structures & AlgorithmsMedium

The problem was similar to finding the longest continuous subarray where the absolute difference between any two elements is less than or equal to a given limit.

Q2
Haunted House
Data Structures & AlgorithmsMedium

The problem was similar to the 'Haunted House' challenge on HackerRank. Initially, I struggled to understand it but with the interviewer's help, I arrived at a brute force solution. I wasn't able to optimize it beyond that.

Q3
Bus Routes
Data Structures & AlgorithmsHard

This was a hard difficulty DSA problem, similar to 'Bus Routes' on LeetCode. I discussed a couple of graph-based approaches with the interviewer, who seemed satisfied. I then coded a working solution on the first attempt, covering edge cases and complexity analysis.

Q4
Central Authentication System with OTP
System DesignHard

Design a single central authentication system that grants access to multiple portals. As an extension, integrate an OTP (One-Time Password) mechanism into the system.

Q5
Max Path Sum in N-ary Tree
Data Structures & AlgorithmsMedium

Initially presented as a graph problem, I identified it could be simplified to finding the maximum path sum in an N-ary tree. I implemented a clean solution for this.

Q6
Distance Between Two Nodes in N-ary Tree
Data Structures & AlgorithmsMedium

As an extension to the previous N-ary tree problem, I was asked to compute the distance between any two nodes in that tree.

Preparation Tips

For DSA rounds, I would strongly advise practicing medium and hard-level questions previously asked by Uber. This targeted practice, along with a general focus on data structures and algorithms, proved very helpful for my preparation.

Uber | SDE | 6M intern | India [offer]
uber logo
Uber
SDE InternIndiaOffer
December 7, 202134 reads

Summary

I interviewed for an SDE Intern role at Uber in India, which involved an online test, a machine coding round, a problem-solving round focused on dynamic programming, and an HR discussion. I successfully received an offer.

Full Experience

My Uber Internship Interview Experience was an on-campus process that started with an online test on Code-signal. I faced 3 coding problems of medium-hard level within 60 minutes.

The interviews were conducted on Zoom + Code-signal, consisting of 3 rounds.

Round 1: Machine Coding Round (40 minutes)
I was tasked with designing a Multi-Queue management System for a bank using Object-Oriented Programming. The discussion evolved from developing a simple queue management system with multiple counters to providing a solution for priority-based customers and calculating waiting times. My approach involved implementing a class with functionalities like getCounter and getWaitingTime, and I was able to implement all the required features.

Round 2: Problem Solving Round (40 minutes)
This round focused on a Dynamic Programming problem. The problem asked to return the total number of sets S of a given size n within a number range [l, r], where l <= Si <= r, and the sum of elements in S is divisible by 3. Repetition of elements was allowed. I started by defining the DP state and writing a recursive solution, which I then optimized using memoization. I also suggested ideas for further optimization involving case breaking and mathematical approaches, though I couldn't implement the most optimal solution due to time constraints.

Round 3: HR Round
This was a straightforward discussion about my prior experience and projects.

Interview Questions (2)

Q1
Design a Multi-Queue Management System
Data Structures & Algorithms

Design a Multi-Queue management System for a bank using Object Oriented Programming. It started with simple discussion to develop queue mangement system with multiple counter and ended with give the solution for priority based customer and waiting time of each customer in the bank.

Q2
Count Subsets with Sum Divisible by 3
Data Structures & Algorithms

Given a range of numbers [l,r]. Return the total number of sets S of a given size n where l <= Si <= r whose sum is divisible by 3. Repetition of elements is allowed in the set.

Preparation Tips

Based on my experience, I have a few suggestions for future candidates. For the machine coding round, it's crucial to be strictly time-bound, focusing on implementing and explaining your solution within 40 minutes. Writing clean and correct code is key, and be prepared to shorten your code for clarity. Explain your approach while coding to manage time effectively, and be ready to adapt your data structure if the interviewer modifies the question. A strong brush-up on DS knowledge and operations is essential.

For problem-solving rounds, remember that time is a strict constraint, and code quality and complexity are judged. If you can't immediately come up with the most optimal algorithm, implement a less optimal solution first; something is better than nothing. While interviewers might offer hints, be aware they often come with a penalty.

Overall, Uber interviews are very time-sensitive, so managing your time is critical. Focus on writing clean, short, and concise code whenever possible.

Uber | L4(SDE 2) | India | [Offer]
uber logo
Uber
sde 2india2.5 yearsOffer
May 24, 202140 reads

Summary

I successfully interviewed for an SDE 2 position at Uber in India, receiving an offer after six rounds covering coding, system design, and behavioral aspects. Despite facing challenges with a segment tree problem and complex system design requirements, I managed to clear all rounds.

Full Experience

I recently interviewed for the SDE 2 (L4) role at Uber in India. My profile includes 2.5 years of experience, coming from a well-funded startup, and I've solved 60 LeetCode questions (seen 140) from a Tier 2 college. My preparation spanned about one month.

Round 1: CodeSignal Test (1 hour)

This was the initial screening test, consisting of LeetCode Easy/Medium questions. The time provided was more than sufficient, and I completed both questions within 30 minutes.

Round 2: Machine Coding Round (1 hour)

The problem presented was focused on concurrency, specifically related to a job scheduler. I needed to explain my approach and then code it within the given time. The code had to be demoable and capable of handling concurrency and multithreading issues. I worked in my own IDE, and my solution successfully passed all edge cases. I highly recommend practicing for this round as it felt trickier than the others.

Round 3: Problem Solving (1 hour)

This round involved a single LeetCode Hard coding question based on segment trees. Initially, I wasn't familiar with the concept and struggled to find a solution. However, with hints from the interviewer, I was able to write working code within the time limit. The platform used was CodeSignal, and the code was not compiled during this round.

Round 4: System Design (1 hour)

I was tasked with designing the system for Facebook Messenger. Although I felt well-prepared for this design, I encountered some difficulties with the interviewer's additional requirements, which led to significant changes in my initial schema. Despite these challenges, I believe the interviewer was satisfied with my approach and design decisions.

Round 5: Hiring Manager (1 hour)

The hiring manager inquired extensively about my current projects, their design, and my specific role within them, along with several situational-based questions. I felt well-prepared for these types of discussions and managed to navigate them easily.

Round 6: Bar Raiser (1 hour)

This round was similar to the HM round, but the interviewer delved much deeper into my current projects. After an extensive discussion regarding the design decisions of my current work, the interviewer seemed quite impressed. No separate design or PSDS questions were asked during this round.

Four days later, I was informed that I received a 'Hire' call and that an offer would be extended.

Interview Questions (2)

Q1
Problem involving Segment Trees
Data Structures & AlgorithmsHard

I was asked a LeetCode Hard coding question that required the application of segment trees. Despite initial unfamiliarity, I solved it with interviewer hints.

Q2
Design Facebook Messenger
System Design

I was asked to design the system architecture for Facebook Messenger. This involved discussing various components, scalability, and handling real-time communication, with a focus on adapting to specific interviewer requirements.

Preparation Tips

My preparation for the interview spanned approximately one month. I had already solved 60 LeetCode questions and reviewed 140 others, which helped build a foundation for the coding rounds. I focused on understanding various data structures and algorithms, especially noting the importance of specific topics like segment trees, even though I wasn't initially familiar with them. For system design, I dedicated time to prepare, which proved helpful, though specific interviewer requirements still posed a challenge. I also prepared for behavioral and project-based questions, ensuring I could articulate my current work and design decisions effectively.

Uber Coding questions OA
uber logo
Uber
san francisco
April 7, 202128 reads

Summary

I recently completed the online assessment for Uber, which featured two distinct coding challenges: a Word Wrap problem with a dash-separated output and a Nearest Exit problem on a 2D board.

Full Experience

I took the online assessment for Uber for a role in San Francisco. The assessment presented two primary coding questions. The first involved a Word Wrap problem where I had to format a list of words into lines of a maximum length, separated by dashes. The second question was a maze-solving problem, specifically finding the nearest exit from a given entry point on a 2D board with obstacles.

Interview Questions (2)

Q1
Word Wrap with Dash Separator
Data Structures & Algorithms

Given a list of words and a max line length, create a function that returns a wrapped list with dash separated words.

EXAMPLE
input:
["Tom","is","a","dragon","that","breathes","fire"]
maximum length of characters per line = 9

output:
["Tom-is-a-",
"dragon-t-",
"hat-brea-",
"thes-fire"]

Q2
Nearest Exit in a Maze
Data Structures & Algorithms

There is an m x n rectangular 2d array called board which has rows and columns containing '0' or '+' only.
Rows and columns start at index 0.
The '0' value means it is a passable path whereas the '+' value is a wall that cannot be crossed.
You are a snake that can move in four directions- up, down, left, right. Entering and exiting the board must only happen at a '0' value. You can enter the board from any four sides/borders.
After entering the board, there can be multiple exits. Find the nearest exit.

EXAMPLE

+ 0 0 + + +

  • 0 0 0 + +
      • 0 + +
      • 0 + + 0 + 0 0 0 0 0 0 0 + + +

board = [
 ['+', '0', '0', '+', '+', '+'],
 ['+', '0', '0', '0', '+', '+'],
 ['+', '+', '+', '0', '+', '+'],
 ['+', '+', '+', '0', '+', '+'],
 ['0', '+', '0', '0', '0', '0'],
 ['0', '0', '0', '+', '+', '+']
]

find_exit(board, (4, 5))

OUTPUT
(5,2)

EXPLANATION
You are given the board array and a set of coordinates. 4 is the rowId, 5 is the columnId for entry. There are multiple exits. The goal is the find the nearest exit. Exit is at row 5 column 2. Answer is (5,2).
Senior Interview Behavioral question Uber
uber logo
Uber
San FranciscoOngoing
March 20, 202131 reads

Summary

I experienced a behavioral interview at Uber in San Francisco, where I was asked to describe a time I had to grow and stretch myself.

Full Experience

I had a behavioral interview at Uber's San Francisco office. The interviewer posed a question asking me to recount a situation where I pushed my boundaries and demonstrated significant personal or professional growth, whether through a project, skill acquisition, or other challenge.

Interview Questions (1)

Q1
Describe a Time You Grew and Stretched Yourself
Behavioral

Please share an experience where you had to push your boundaries, grow significantly, or stretch yourself beyond your comfort zone. This could involve a challenging project, acquiring a new skill, or any other relevant situation.

Node sharing question Uber
uber logo
Uber
SeniorSan Francisco
March 19, 202128 reads

Summary

I was asked a challenging node-sharing system design question during my Uber interview for a Senior position in San Francisco, involving the implementation of hardware request and release functions.

Full Experience

During my interview for a Senior position at Uber in San Francisco, I encountered a practical problem related to managing nodes within a server cluster. The core task involved designing and implementing two primary functions: one to request_hardware and another to release_hardware. I had to consider different node types (T1, T2, T3), ensuring each node was unique and tied to its specific type. The problem specified constraints such as handling zero available nodes and preventing the release of an already free node. A crucial part of the discussion also involved analyzing the time and space complexity of my chosen data structures and algorithm.

Interview Questions (1)

Q1
Node Sharing in Server Cluster
Data Structures & Algorithms

In a server cluster, there are three different types of nodes, denoted by T1, T2, T3. Each node is unique and limited to one fixed type. The minimum quantity of nodes that can exist in the cluster for each type (T1, T2, T3) is 0 (zero), with no upper limit on availability. Implement the following functions:

1. request_hardware function:

  • Given a valid requested node type, it looks up the collection of available nodes of that type.
  • Returns one available node of the requested type and sets its state to 'in use'.
  • If there are zero or no available nodes of the requested type, it cannot be requested.

2. release_hardware function:
  • Given a valid node whose state is 'in use', it releases the node back to the server cluster.
  • Sets the state of the released node as 'free'.
  • If the given node is already set to a state of 'free', it cannot be released.

Ending question: What is the time/space complexity of the data structure/algorithm?

Have a Uber Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Uber.