Uber SE 2 | Selected

uber logo
uber
SE 22.5 yearsOffer
April 12, 20240 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.

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!