Uber L4(SDE-2) Interview Experience
Summary
I completed an 8-week interview process for an SDE-2 position at Uber, successfully securing an offer after multiple technical and behavioral rounds, including DSA, LLD, HLD, and a leadership assessment.
Full Experience
The entire interview process with Uber took 8 weeks, commencing after I successfully cleared the Online Assessment by solving 3.5 out of 4 questions. My first hurdle was the DSA Screening in Week 1, where I was presented with a LeetCode Hard question on Quad Trees. I received positive feedback and advanced to the onsite rounds.
In Week 2, I navigated two distinct rounds. The first was another DSA Round, where I tackled a LeetCode Hard question. The emphasis was heavily placed on delivering working code that passed all test cases, meticulously explaining my approach, and deriving the space and time complexities. Following that, I had an LLD Round, which was a machine coding challenge requiring me to implement a system with specific features. This round scrutinized my ability to produce runnable code, utilize appropriate design patterns, handle concurrency effectively, and employ the most optimal algorithms for the core logic.
Week 4 brought the Leadership Round, comprising situation-based questions. Here, I had to articulate how I would act, or had acted, in various workplace scenarios, aiming to convince the interviewer of my capabilities as an L4 level engineer.
The HLD Round took place in Week 5. I was tasked with designing an 'Order Processing System', with a particular focus on displaying top-k items based on their popularity score and presenting detailed item information. The discussion spanned requirement gathering, outlining a high-level solution, API design, and a thorough evaluation of various database choices.
By Week 6, the debrief concluded, and I received the much-anticipated hire call. I was informed that one round went exceptionally well, and the other three performed sufficiently to secure the offer.
Week 7 involved a Team Match Call, which was an informal discussion covering the team's ongoing work, my professional experience, and my preferences for future tasks.
Finally, in Week 8, after receiving approval from leadership, I got the official offer on November 30th.
Having previously worked at Microsoft, I've always aspired to work in a high-paced environment like Uber, and I'm incredibly pleased with this offer. I'd like to extend my gratitude to the community for providing invaluable information that greatly aided my preparation.
Interview Questions (1)
Design a High-Level System for an Order Processing System. The primary focus should be on how to efficiently display top-k items based on their popularity score, and also how to display detailed information for each item. The discussion covered requirement gathering, high-level solution architecture, API design, and database selection and evaluation.
Preparation Tips
I would strongly suggest speaking out your mind during interviews; it truly helps the interviewer understand your thought process. For Data Structures & Algorithms, my advice is to heavily grind LeetCode Hard problems, as this is the minimum they often ask these days; don't waste time on medium-level questions. For Low-Level Design, perfect your understanding of concurrency and design patterns, as these are crucial for developing robust, production-ready solutions. For System Design, start by mastering all the necessary theory (which is readily available online) for designing scalable solutions, and then practice a multitude of questions. I recommend focusing on more open-ended questions rather than common ones, as this will significantly improve your critical thinking. Finally, for the Leadership Round, prepare thoroughly for commonly asked behavioral questions, making sure you have real-life work stories ready to share.