Uber | SDE-2 | Frontend

uber logo
uber
SDE-2 FrontendIndia2 years
June 7, 20251 reads

Summary

I interviewed for an SDE-2 Frontend role at Uber, completing 5 rounds including a hiring manager round. Despite a strong performance in early rounds, I received a 'No hire' decision due to a lean hire in system design and a 'No hire' from the HM, though I was asked to reapply after 6 months.

Full Experience

Background - Currently working as frontend engineer in India's leading quick-commerce company having 2 years and 10 months of experience.

I interviewed for a role at Uber where all the interview rounds were scheduled to be completed in a single day, provided I cleared the initial eliminator round.

Round - 1 ( elimnatory round )

  1. In this round got a dsa question which was pretty easy, it was related to priority_queue
  2. Then a JS currying question
  3. Then had discussions on my projects

After 10 mins recutier told me result was positive and they are moving with next 4 rounds.

Round - 2 ( Problem solving round ) Question was related to method chaining and promises, queue question ->

new UberDriver()
  .pick("TestUser")
  .pick("Rahul")
  .drive(2)
  .drop("Rahul")
  .drive(4)
  .drop("TestUser")
  .rest(10);

output ->

Hello uber driver is online
User TestUser is picked
User Rahul is picked
Driver is driving     <-- wait 2 seconds
Drop Rahul
Driver is driving     <-- wait 4 seconds
Drop TestUser
Driver is in offline mode <-- wait 10 seconds

was able to solve it correctly in half an hour then she extends the question with some followups like if i have to give priority to users, how will the code behave, what all changes we have to make, i discuss the approach not able to code it but interviewer seems happy

-> It was strong-hire call

Round - 3 ( Machine coding round ) Need to build a memory game [https://www.youtube.com/watch?v=DCoIeGt4g7M&t=41s](This was the exaclty same question) it was a very easy task for me, i tell him the approach how i will solve it in react, but then he told me to do it vanilla js with proper optimization completed it in 45 minutes , then discussion on my projects

-> I was expecting a strong hire but got hire call ( feedback -> candidate lack in writing optimise code in vanilla )

Round - 4 ( System design round ) Asked me design google calendar

  1. functional requirements ( satisfied )
  2. non functional ( satisfied )
  3. MVC architecture + server communication ( not satisfied )
  4. data models ( satisfied )
  5. apis -> ( not satisfied ig ), he grill me on graphql query for paginated data for week view and month view, and how caching works with graphql
  6. client storage -> ( satisfied )
  7. optimization -> (satisfied)

-> Lean hire

Round - 5 ( HM round ) Unfortunately, this round didn’t go well for me.

The first 10 minutes were quite rough due to internet issues, which seemed to frustrate the hiring manager and set a negative tone early on. Once we got started, I tried to walk him through my projects, but he struggled to connect with them. I made multiple attempts to clarify, but I don’t think it landed well from his perspective. I also spoke about the web performance optimizations and engineering efforts we implemented, but it seems he didn’t find them impactful enough in the context of what they were looking for.

-> No hire ( feedback -> No major impactful work demonstrated )

**End result - The recruiter mentioned that if the hiring manager had marked me as a strong hire, they would’ve moved forward. Since that wasn’t the case, they’ve asked me to reapply after 6 months.

Interview Questions (4)

Q1
JavaScript Currying
Other

A question related to JavaScript currying.

Q2
UberDriver Method Chaining with Promises and Queue
Data Structures & Algorithms

Implement a UberDriver class with method chaining using promises and a queue to handle actions like picking users, driving for a duration, dropping users, and resting.

Example usage:

new UberDriver()
  .pick("TestUser")
  .pick("Rahul")
  .drive(2)
  .drop("Rahul")
  .drive(4)
  .drop("TestUser")
  .rest(10);

Expected output:

Hello uber driver is online
User TestUser is picked
User Rahul is picked
Driver is driving     <-- wait 2 seconds
Drop Rahul
Driver is driving     <-- wait 4 seconds
Drop TestUser
Driver is in offline mode <-- wait 10 seconds

Follow-up questions involved prioritizing users and the necessary code changes.

Q3
Build a Memory Game
Other

Implement a memory game. The exact problem was demonstrated via this YouTube link. The task involved implementing it in vanilla JavaScript with proper optimization, initially discussing a React approach.

Q4
Design Google Calendar
System Design

Design Google Calendar, covering:

  1. Functional requirements
  2. Non-functional requirements
  3. MVC architecture + server communication
  4. Data models
  5. APIs (specifically grilled on GraphQL query for paginated data for week view and month view, and how caching works with GraphQL)
  6. Client storage
  7. Optimization
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!