Uber 面经全过程

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)

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