Hi community, I wanted to share my recent experience with Uber's SDE2 interview process. All rounds were in-person except for the online assessment.
Current company- Amazon
YOE - 3.5
-
I reached out to the recruiter, and they sent me an online assessment. I don't recall the exact questions, but I cleared it.
-
Round 1 - Screening (Strong Yes)
- Short and straightforward: Design a multi-floor parking lot with different spot types for cars and bikes. In busy times, you can park 4 bikes in one car spot.
- I discussed the class diagram and implemented a pseudo class.
- We also explored different approaches to retrieve available parking spots, from brute force to an efficient solution using a custom tree.
- The interviewer was kind and supportive.
-
Round 2 - DSA (Strong Yes)
- I don't remember the exact LeetCode reference, but the problem was divided into two phases.
- For both phases, the input was a matrix (n x m) where each cell could be either white or black.
- Phase 1: Write code to determine if a color is "trapped" by the opposite color, meaning it's completely surrounded by the opposite color in the immediate neighboring cells.
- Phase 2: Extend this to n degrees, meaning a color is trapped by its opposite at a distance greater than 1.
- Considering the edge case if coordinated are out of bound then consider it as trapped.
-
Round 3 - LLD (Strong Yes)
- Design a leaderboard.
- Ask 1: Design a simple use case.
- Ask 2: Implement caching.
- Ask 3: Make it thread-safe.
- I completed the first two asks and discussed all possible approaches for the third. I asked for 10 more minutes to implement a keyed executor.
-
Round 4 - Hiring Manager (Strong Yes)
- This was the longest interview I’ve ever had, lasting 2.5 to 3 hours.
- It started with some casual questions about my hobbies.
- We then discussed my first company (Paysafe) project in detail for about 30 minutes.
- Similarly, we spent 30-40 minutes discussing my current project at Amazon.
- The technical part involved designing a stock price notification system that alerts users if a stock price goes up by 10% or hits a static value.
- We spent 35 minutes discussing the design, and I had to create a detailed low-level design on the whiteboard.
- By the end, I felt quite frustrated with how long it took, especially since all the rounds were happening on the same day.
-
Round 5 - HLD (Soft Yes)
- The interviewer asked me to design the Uber Eats restaurant feed backend.
- They didn’t provide any further details or interact much beyond stating the requirement.
- I had to decide the scope and solution on my own.
- I designed a basic high-level design, but the main discussion revolved around how I would store and retrieve restaurant data efficiently. I suggested using a quad tree and geo hashing , But proceeded wit quad tree assuming Uber already uses it, but that seemed to work against me.
- We discussed the quad tree storage logic, rebuilding it when a restaurant shuts down, and how a new node would construct or borrow the tree.
- Serialization and deserialization were also discussed in detail on the whiteboard.
The recruiter later informed me after 2 days that the HLD round received a 'Soft Yes,' with the reasoning being that I was already familiar with the problem because of the phrase used for the quad tree: 'It is already used by Uber.' However, all other rounds received a 'Strong Yes.' They also mentioned that based on my debrief, the 'Soft Yes' would likely turn into a 'Strong Yes.'
-
Last Round - Team Matching
- I had a call with three managers, where I clearly stated my expectations.
-
Offer Released
Overall, the process was quick, and it was my first in-person interview. Apart from the HM round, the other rounds went smoothly. I actually felt more comfortable and confident in person compared to online interviews. The ability to switch between the screen and whiteboard gave me a significant advantage.
Thanks