Cracking Uber's Software Engineer Interview: Designing an Efficient Meeting Scheduler

uber | Software Engineer | Interview Experience

Interview Date: Not specified
Result: Not specified
Difficulty: Not specified

Interview Process

The interview was conducted via a scheduled meeting. Initially, I was asked to implement a linear algorithm for a meeting scheduler. I later improved it to O(log n) using a tree map. There were three follow-up questions during the interview:

  1. Add a method to return the last n meetings.
  2. Add a method to cancel the last n meetings, ensuring updates are made.
  3. Discuss how to handle concurrent requests; I suggested using a global lock and mentioned that a room-level lock could be an improvement, but I ran out of time to implement it.

After the interview, I was unsure if I had passed. The questions were not particularly difficult, but they seemed to cover a wide range of topics.

Technical Questions

  1. Design a meeting scheduler (binary tree, sorted map, concurrency)

Tips & Insights

Focus on algorithm optimization and be prepared to discuss concurrency issues in detail.