Education + Jobs Hiring Website - 2025
0 like 0 dislike
24 views
Uber Interview Experience(Software Engineer II) - 6 Rounds

I recently went through the Uber Interview process and sadly was not able to secure an offer. Sharing my experience to the community so it can help others prepare better as it helped me too.

 

1. Online Assesment

2 DSA Questions (Not Remeber the questions exactly)

One was based on Graph and can be solved by DSU efficiently, one was String operations related

Difficulty Medium Hard

2. BPS Round(Business Phone Screen):-

This round only involves one Graph related question (medium - hard)

 

You have given number of allowed itineraries and you need to design an algorithm that takes a list of allowed itineraries as input and identify the itinerary with the most visited unique cities

 

Input:-

Chennai -> Hyderabad

Hyderabad -> Bangalore

Bangalore -> Delhi

Hyderabad -> Delhi

 

Expected Output:- Chennai->Hyderabad->Bangalore->Delhi

 

You need to print the longest route from starting point to end.

 

Key Idea

If you run the dfs from every node and comparing which node will give us the longest path then it will be O(N^2) as dfs complexity O(n) and run for each node O(n).

 

And as you noticed already there will be overlapping subproblems, so to save extra time complexity you need to save the length for each node in some array or table and just return from their if you reach that node.

 

In that way you don't need to visit the particular node once again. Interviewer was good with this approach and implemented the solution.

 

Discussion around Space and time complexity happened. In the end, you need to think of various test cases which your code is covering and in my case, I didn't think of if there is any cycle in the itinerary, But interviewer was also not expecting this Test case. So It was a Strong Hire.

 

Coding Round

Earliest Full Connectivity Timestamp

 

We have a log of Uber rides when passengers shared their rides together through Uber Share. The log string is sorted chronologically.

 

Example Log:-

 

167001 Alice shared-ride-with Bob

167003 Charlier shared-ride-with Dan

167008 Bob shared-ride-with Charlie

167010 Alice shared-ride-with Eve

167020 Bob shared-ride-with Dan

 

Given this log set and list of all possible ridersm write a function that returns the earliest timestamp when all riders become connected through car shared network. Riders are connected, if they shared a ride.

 

Key Idea

 

Problem started with BFS approach and it'll be again quadratic complexity. So Implemented the DSU approach here. You need to implement the code from scratch input parsing and graph everything.(Originally timestamp was of 12 digits)

 

Discussion around space and time complexity happened. and then Follow up question popped.

 

Follow Up

Riders can also block each other. Log can include blocking event which can break a connection. How would you update your solution to handle these events and find earliest timestamp.

 

I gave approach with DSU while computing the graph but I missed few cases and in the end I couldn't think much due to time shortage so I explained the BFS approach.

 

Feedback was HIRE.

 

LLD Round

Design the key value store which can perform the following operations with constant time complexity

 

V get(K)

(K,V) getRandom()

void put(K,V)

V delete(K)

 

This was the standard problem and as I'm doing coding in C++. I quickly code it from scratch and cover all the cases and run on different test cases.

 

In the end, Interviewer asked me to implement the template class type instead of just int-int pair types and I completed the coding and also executed the cases.

 

Overall Feedback was Strong Hire

 

HLD Round

Before scheduling HLD round,I didn't get any response for my previous round untill 10 days and then I send the follow up email and then they scheduled the next interview.

 

Little Background:- Currently I'm in Security & networking company, coding in C++. So HLD was not my strong suite, so I tried to prepare well for this.

 

HLD Round is most important of all of them(Bar Raiser Round)

 

Design Stock Broker Notification Framework:-

 

External Source will send us the data in form

{ Stock Symbol,

Price

Closing Price

}

 

So a set of users registered on your service who are subscribed to set of stocks. You need to design a system with requirement that if any stock price jumps or drops 5% as compared to closing price, send a push notifications to all the users

 

I started designing and used the Kafka for event ingestion, and used Postgres DB for storing users with stocks subscriptions.

 

There was a flaw in my design as I was hitting the DB everytime, interviewer tried to correct me and after 1-2 hints, I was able to design it.

In the end Separated the threshold calculating service and send filtered out events to other service for DB Lookup for the Users for that particular stock.

 

In the end, there were questions around DB choice, I used the postgres as 50k QPS can be handled via sharding done by stock symbols but system can be write heavy ocassionally, So I told them we can use cassandra as well but it may suffer us consistency.

 

Discussion around At Most Once notification, Dead Letter Queue, Idempotency key.

 

In the end, I was little dicy about the feedback as I have taken few hints and missed few cases.

 

HM Round

Behavioural Round

 

Discussion around most interesing or crucial project done till now

Have you work acorss multiple teams? Team Collaboration

How you handled the feedback received from seniors?

 

Questions asked around Experience

 

Interviewer didn't ask standard questions may be they're tired to hear just standard answers for all of them

 

Preparation Tips

Strong Grip on DSA(especially Graph, DP)

Practice real world design questions

Be structred in LLD and HLD problems

Prepare behavioural questions thoroughly(Don't write this off, because I saw many candidates rejected in HM round as well)

Focus on Communication and Tradeoffs

 

For HLD I used HelloInterview youtube channel + TechGranth

For LLD, I used CoderArmy + TechGranth

 

Verdict :- Rejected

 

I was little dicy about my HLD round and I got to know that it was No Hire for HLD round and I got Strong Hire + Hire for all the other rounds including HM as well. Recruiter told me I can re-appear after 6 months.

 

Complete process took around 2 months due to some holidays and availability issue.

 

Didn’t make it this time, but every interview adds experience, clarity, and resilience. Taking the learnings forward and continuing the grind.

 

The goal remains the same.

 

Hope this helps. Happy to answer Questions.

 

Also Please suggest me some good resources for HLD
ago in Interview-Experiences by Expert (138,420 points) | 24 views

Please log in or register to answer this question.

Get best answers to any doubt/query/question related to programming , jobs, gate, internships and tech-companies. Feel free to ask a question and you will receive the best advice/suggestion related to anything you ask about software-engineering , development and programming problems .