PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/Software Engineering Fundamentals/Uber

Design a meeting room reservation API

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's object-oriented design and algorithmic competence for building an in-memory meeting room reservation API, focusing on interval management, availability checking, and scalable data structures.

  • medium
  • Uber
  • Software Engineering Fundamentals
  • Software Engineer

Design a meeting room reservation API

Company: Uber

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

## Meeting room reservation (OOD) You are designing a small in-memory **meeting reservation system**. ### Requirements - The system starts with **N meeting rooms** (e.g., `rooms = ["A", "B", "C"]`). - Implement a booking method that receives a **start time** and **end time** for a meeting. - If there exists **any room** that is **available for the entire interval** `[start, end)` (end is non-inclusive), the system should: - reserve that room for the interval - return a **unique `meetingId`** representing the booking - If **no room** is available for that time interval, the method should **throw an exception** (or return an error). ### Clarifications / assumptions (you may state these in your design) - Time can be represented as integers (e.g., minutes since epoch). - `start < end` is guaranteed. - A meeting overlaps another if their half-open intervals intersect. - The solution should be reasonably efficient as the number of rooms and reservations grows. ### What to produce - The main classes / data structures you would create. - The `book(start, end) -> meetingId` API behavior. - How you check availability and store reservations. - Expected time/space complexity. - (Optional, if you choose) how you would support `cancel(meetingId)` and/or querying room schedules.

Quick Answer: This question evaluates a candidate's object-oriented design and algorithmic competence for building an in-memory meeting room reservation API, focusing on interval management, availability checking, and scalable data structures.

Related Interview Questions

  • Design a Real-Time Top-K Ranking System - Uber (hard)
  • Design a Parking Lot - Uber (medium)
  • Design a Parking Garage Object Model - Uber (medium)
  • Design follow/follower classes - Uber (medium)
  • Design a Rolling Event Counter - Uber (medium)
Uber logo
Uber
Feb 12, 2026, 12:00 AM
Software Engineer
Onsite
Software Engineering Fundamentals
11
0
Loading...

Meeting room reservation (OOD)

You are designing a small in-memory meeting reservation system.

Requirements

  • The system starts with N meeting rooms (e.g., rooms = ["A", "B", "C"] ).
  • Implement a booking method that receives a start time and end time for a meeting.
  • If there exists any room that is available for the entire interval [start, end) (end is non-inclusive), the system should:
    • reserve that room for the interval
    • return a unique meetingId representing the booking
  • If no room is available for that time interval, the method should throw an exception (or return an error).

Clarifications / assumptions (you may state these in your design)

  • Time can be represented as integers (e.g., minutes since epoch).
  • start < end is guaranteed.
  • A meeting overlaps another if their half-open intervals intersect.
  • The solution should be reasonably efficient as the number of rooms and reservations grows.

What to produce

  • The main classes / data structures you would create.
  • The book(start, end) -> meetingId API behavior.
  • How you check availability and store reservations.
  • Expected time/space complexity.
  • (Optional, if you choose) how you would support cancel(meetingId) and/or querying room schedules.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Uber•More Software Engineer•Uber Software Engineer•Uber Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.