Position: Software Engineer II
Location: Palo Alto, CA
Interview Experience
I didn’t get any interview calls by applying online. Someone on Blind app was kind enough to refer me for a position at Uber and I got a call with that referral.
I had the usual initial conversation with recruiter where I requested her that I want to take sometime for preparation. She was fine with that and scheduled a phone interview almost 2 months away.
The technical phone screen was very easy. I got invitation for on-site interviews a week after taking technical phone screen. I was told to carry my laptop with me for live coding. There were 5 on-sites interviews: 2 coding, 1 design, and 2 behavioral. In all the coding rounds (including technical phone screen), I was asked to login into hackerrank. The interviewer had a list of test cases against which my code had to compile and pass.
Technical phone screening (1 hour)
-
Right side view of binary tree
https://www.geeksforgeeks.org/print-right-view-binary-tree-2/ -
Lowest common ancestor of a binary search tree
https://www.geeksforgeeks.org/lowest-common-ancestor-in-a-binary-search-tree/
Interview Day
Round 1
This round was with hiring manager.
First part of round was about introductions: he introduced himself and told about the team he is responsible for, future plans for the team, details about the position I’m interviewing for, tech-stack being used etc. Then, he asked about my experiences, why I’m interested in Uber, technologies I’ve worked on etc.
For next 15-20 mins, there were behavioral questions around conflict resolution, taking ownership and more responsibility, mentoring new engineers, qualities of a great engineer and a few more. For every question, I was asked to provide an example from my experiences.
In the last 15 mins or so, he gave me a distributed systems problem and asked me to design it. The problem was about maintaining the count of rides a driver has completed. I think he was just looking to see if I knew fundamentals of distributed systems. We had discussion around distributed hash tables, network failure, eventual consistency, queueing systems etc.
Round 2
- Design a photo sharing application like instagram
Round 3
-
Design a meeting scheduler system like we’ve in outlook.
I think interviewer wanted me to design the data structures for the problem but I went to system and OOP design. Follow-up: How will you deal with recurring meetings? -
A coding question around the above meeting scheduler system. Given start and end times of all meetings for a user on a given day, find the total count of conflicts amongst all those meetings.
Round 4
This round was mostly behavioral and kind of like Amazon’s bar raiser. Interviewer asked behavioral questions for first 35-40 minutes. After that, he asked me to explain the current project I’m working on. Last 5 minutes involved discussion about different teams and work culture at Uber. I can’t recall a lot of questions from that round but here a few which I still remember:
- Tell me about a time when you had hard time working with someone in your team. How did you handle it?
- Tell me about a challenging customer issue you dealt with.
- Tell me about a time when you pushed for an idea but it was opposed by others.
- Discussion on current project: end-to-end flow, what part you are responsible for, most challenging part for you etc.
Round 5
-
Given a 9 x 9 sudoku board, check if it is valid or not.
https://leetcode.com/problems/valid-sudoku/ -
Given a partially filled valid sudoku board, write code to solve it.
https://leetcode.com/problems/sudoku-solver/