Uber Onsite | L5 | Dec 2019 | SF | [Reject]

Intro:

Exp: 7 YOE
Current Role: Backend Software Developer
Edu: Masters in IS

Round 1:

Behavioral interview by hiring manager:

  • Discussion around my resume
  • Most difficult project and why. Followup questions
  • More behavioral question

Feedback:

  • Good communication skills
  • Executer
  • May need more experience as a leader

Round 2:

  • Design data structure to get/insert/delete an element. It should also support DeleteRandom method. All the methods should be O(1)
  • Followup - edge cases and multithreading

Feedback:

  • your best interview
  • came up with the optimal algo quickly
  • clean code
  • Candidate may require more exp for L5 position

Round 3:

System design - Design chat application. It should have a feature that the user can see the status of the sent message.

Feedback:

  • Candidates reasoning for data model design wasn't convincing (SQL vs No SQL). <------

My take:

  • I agree with the feedback. I think my estimates were little off initially. I discussed the pros and cons of different approaches and which databases to use(NoSQL vs SQL). I proposed using NoSQL and gave the reasoning that they are easier to scale. But given the estimates, this reason wasn't strong enough to use NoSQL.

Learnings:

  • Needed more practice with the estimates while designing the data model.
  • I was following a template but somehow it didn't feel structured enough. Need more practice

Round 4:

Coding round. Have to code and run on the computer.
Q: Given a partially sorted array, find min range (i and j) such that sorting the array from i to j will sort the entire array.

Feedback:

  • candidate took too much time to come up with the algo and start the coding. Had to give hints <-------
  • clean code and good debugging skills

My take:
I haven't seen or practiced a similar question before. I started with the brute force approach on the paper and then worked my way up to the optimal solution using the hints interviews gave. This took almost 25 mins. I was able to implement and fix bugs in the algo in the remaining 10 mins. In the end, we were out of time and I couldn't run my algo to test all the test cases.

Learning:
More practice.

Overall, I had a great experience interviewing with Uber. The interviewers were nice and so was the recruiters. I have given many onsite interviews but this is the first time when I got such detailed feedback. Hope other companies follow this suit.

Any suggestion or feedback is welcomed :)

Onto next interview!

Thanks

Comments (3)