Experience: 2 years 4 months
Position: SDE2-L4
Location: Bangalore, India
Offer Date: May, 2022
I had contacted the uber HR who had contacted my friend over LinkedIn, she was happy to consider me as well for the same role and sent me all the details, i asked for a week to prepare to which she agreed and shared with me the OA
-
Round 1 - Online Assessment
-- https://leetcode.com/discuss/interview-question/1515709/Uber-or-CodeSignal-OA-or-SE-2 , both were easy enough and i solved them in around 35 minutes
Received a confirmation from the HR i had cleared that round
-
Round 2 - DSA -- 60 minutes -- Medium
-- The interview started with introduction & then he asked me to explain my solutions to the OA questions
-- Next he asked me a question which was like https://stackoverflow.com/questions/1761626/weighted-random-numbers [ i solved this by using a prefix array, generating its lower bound]
-- Next he asked to replace the STL lower bound with my own implementation (which actually took me 4-5 minutes as it failed on a corner case he gave me] (he wanted complete running code for both these things and made me run the code in a for loop of 1000 over 3-4 times to check the answer is coming respecting the weights and is not a fluke]
-- Next he asked me something very very similar to https://leetcode.com/problems/pacific-atlantic-water-flow/ , i told him my approach he was happy and since we were short of time i only gave him the psuedo code
-
Round 3 -- DSA -- 60 minutes -- Medium + Hard
-- the interview started with introduction again, but quickly moved to the question
Minimise number of transactions.
Eg: A -> B : 200
B -> C : 500
A -> B : 300
Solution : A -> C : 500
-- though this seemed simple it wasn't as the interviewer gave me a few corner case to my initial solutions, we came to a final solution after around 10-15 minutes of discussion and she was happy, she asked me to code which took me around 15 minutes, she made me run the code and it worked, tested out a few edge cases as well and those worked too
-- i got tensed in this round because the initial 2 solutions i proposed failed at the very first corner cases she gave me and we lost 10 minutes in that, i had only 35 minutes left but luckily i got the right solution and coded it with 10 minutes to go, the interviewer was a great person and gave enough hints and asked me not to worry and be calm
-
Round 4 -- 75 Minutes -- LLD
--Asked me to implement a multi threaded publisher subscriber message queue , i had. practiced that earlier itself so it was easy enough for me to implement
-- Interivewer questioned on how i used solid principles and what are the design patterns used by me and why
-- A few questions on locks , mutex and synchronized because i used the same in my code
-
Round 5 -- 60 Minutes -- Bar Raiser
-- Asked me about my previous projects and tech in depth
-- Asked me to design a system which levied taxes/penalties on drivers&riders with some constraints like completing 10 rides a month or getting lesser than average rating of that area consistently
-- Asked me about all the design choices i made in the project and why so
-- he was from the infra team & dug deep into my monitoring alerting work and asked me which all metrices will i be choosing to monitor if i have to monitor a restful web service
-- asked me which mechanism of alerting will i prefer (pull or push) and why
-
Round 6 -- 60 Minutes -- HM
-- Asked me about my previous project in depth
-- Asked me explain him my most challenging project, why it was challenging , will i if now. given the chance go back and change something in that , what and why
-- Behavioural questions like : What comments have you received in code reviews, a situation where you had a disagreement with your manager and how did you handle it.
-- asked me a problem related to distributed caches, later on asked me to tell the difference between write back and write through cache and when should we use which
Received a confirmation from the HR after 4 days that i was selected