Uber L4 Interview Experience Ongoing

uber logo
uber
Software Engineer L44.8 yearsOngoing
September 16, 202518 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.

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!