Uber India L5 (SSE) Interview experience

uber logo
uber
Staff Software Engineer L5Bengaluru, IndiaOffer
September 7, 202520 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.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

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