Booking.com Hotel Availability
Based on a candidate's reported Booking.com interview
The interviewer opens
Hello, and thanks for joining. Welcome to your interview for the Senior Software Engineer role at Booking.com. We'll design a system together, and you'll sketch on the whiteboard on the right of your screen as you talk. If you need to step out or take a break, you can pause the interview any time with the Pause button at the top right.
The problem is a hotel room availability and search system, which is core to what Booking.com does. It's in the Problem tab, so please read through the requirements and ask me anything you'd like clarified before you start drawing.
The problem
Design the availability and search system for hotel rooms: a traveller searches a city, dates and number of guests and sees which properties have rooms free for the whole stay, with prices, and can book one.
Must do
- Search by city, check-in/check-out dates and guests; return properties with rooms free every night
- Show the total price of each available room type for the stay
- Book a room for a date range and confirm it
- Properties set their room counts and nightly prices through Booking's own extranet
- Cancellations release the booked room nights
Must hold
- A room night must never be sold more times than the property has rooms
- Search must stay fast through traffic peaks