Uber | SDE-2 | Frontend
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 )
- In this round got a dsa question which was pretty easy, it was related to priority_queue
- Then a JS currying question
- 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
- functional requirements ( satisfied )
- non functional ( satisfied )
- MVC architecture + server communication ( not satisfied )
- data models ( satisfied )
- 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
- client storage -> ( satisfied )
- 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)
A question related to JavaScript currying.
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.
Design Google Calendar, covering:
- Functional requirements
- Non-functional requirements
- MVC architecture + server communication
- Data models
- APIs (specifically grilled on GraphQL query for paginated data for week view and month view, and how caching works with GraphQL)
- Client storage
- Optimization