Uber recruiter reached out to me via Linkedln. I had not given any interview for last 5 years bit thought of giving a try. Shared resume, got shortlisted anf process started after 3–4 weeks.
Online Assessment round
Got a codesignal link. Had 2 DSA problems.
Was able to solve it within 30 mins.
5–6 MCQs as well.
Was sure of coding questions but wasn’t sure about MCQ’s.
Verdict of the round :- Passed and we can move ahead with the process.
Round 1:- DSA round called as Depth in specialization
You are designing a cache system for uber with following requirements
1. Adding a key, value pair to cache.
2. Removing key, value pair from cache.
3. Getting value from cache provided a key
4. Getting random key value pair from cache
Optimizied TC and SC expected for each operation.
Solved it using list and map. Similar to
https://leetcode.com/problems/insert-delete-getrandom-o1/ problem.
Feedback
Rating : YES
Round went well. Interviewer considered code quality as decent only. Rest he was aligned.
Round 2 : DSA Round
Duration : 60 mins
First 30 mins discussed about the projects which was challenging. Gave him two examples and he seems convinced. However, he wrote in feedback that candidate was already prepared as if this question would be asked. I am not sure what did he expect.
There is a bank and multiple transactions are queued throughout the day in format
Ram : Sham 500
Sham : Priya 600
Sham : Ram 200
There is a clearing house which settle these transactions a day later. Find the final transactions which clearing house should make.
Ram : Sham 300
Sham : Priya 600
Here he wanted a simple solution and he was analyzing my problem solving skills and communication. A day before interview I solved
https://leetcode.com/problems/optimal-account-balancing and I solved the question in similar way.
I took solution in direction that if A has to pay X amount to B and B has to X amount to C, then A to C with X amount is the solution.
He wasn’t expecting this. He wrote in feedback that candidate chose complex solve for the problem and has communication issue. So solving a question a day before and directly jumping to solution without understanding what he expects landed me in SOFT NO result questioning communication skills.
Round 3: System Design Round
First 40 mins he asked me to explain a complex project I did. I explained him the same and he was satisfied.
Next 20 mins he asked me
There are millions of messages with message Id and text. Design a system given a word can fetch all the message Ids. This could be answered in Distributed key value pair design way or in similar to twitter search.
Within 20 mins I couldn’t explain him all the areas of design like partitioning, replication, scaling
and round got over.
Verdict
Got a mail after 40 mins of round stating rejection.
Learnings
Don’t assume that you will certainly clear the round if you have solved similar problem prior. It’s not leetcode its a interview. All skills are being judged.
Don’t rush for optimal solution. Uber wanted to test problem solving skills more than arriving at optimal solution.
Listen to the hints given in interview. He wants you to change direction if he is hinting again and again. Don’t overlook.
Even if you don’t want to join the company and interviewing for practice, don’t be overconfident. Not every company follows the same pattern of optimal solution otherwise rejection.
Prepare well for short system design round also. You will not always get 45 mins to explain solution.