Uber Software Engineering (Android) Interview

Was contacted by the recruiter

  1. Technical Phone Screen:
    Implement LRU cache.
    Couple of Android questions regarding lifecycle and best practices
  2. Onsite Interview:
  • Round 1: 1:30 hrs of building a android app from scratch. Fairly strait forward. Retrieve data from a api and display images in a grid. Followed by 30 mins lunch, and another 1 hour to improve the app and code review
  • Round 2: System design round (45 mins) . Design a Elevator system considering yourself as a elevator company. Only classes and interfaces. Should be able to handle multiple elevators in a building, and elevators servicing only a subset of floors
  • Round 3: Hiring Manager behavorial interview (45 mins) : Mostly about my experiences and questions about the team
  • Round 4: Algorithms (1 hr) : Design a system to implement 2 functions: add(int val) and query(int val). query(int val) function should return the largest value less than or equal to the input.
  • Round 5: Behavioral + Design (45 mins): Interview about experience and certain design questions. Also questions about conflict, how to prioritize, etc. Was conducted by a non android engineer.

Overall a good experience. People are friendly and seem to enjoy working at Uber.