Uber | L4(SDE 2) | India | [Offer]
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)
I was asked a LeetCode Hard coding question that required the application of segment trees. Despite initial unfamiliarity, I solved it with interviewer hints.
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.