[ INFO ]category: Behavioral · Onsite difficulty: difficult freq: first seen: 2020-01-04
[DIFFICULT][ONSITE]OnsiteSWE III (Senior)Rejected
$catproblem.md
Intro:
Exp: 7 YOE
Current Role: Backend Software Developer
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.