uber logo
Uber· SDE-2 Frontend

Uber | SDE-2 | Frontend

Location
India
Experience
2 years
Posted
7 Jun 2025
553 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.

How it went

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.

Questions asked (4)

  1. 01

    JavaScript Currying

    Other

    A question related to JavaScript currying.

  2. 02

    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.

  3. 03

    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.

    Open the problem
  4. 04

    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

Know someone preparing? Send it to them:WhatsAppLinkedInX

Interviewed at Uber recently?

Write up your rounds while you still remember the questions. It helps the next person more than you would think.

Share your experience
Discussion 0

Questions for the author, or how your own interview compared.

Join the discussion

Sign in with Google to comment or ask the author a question.

No comments yet

Be the first to share your thoughts and start the discussion!