This is exactly how to interview with me

  • How many hotels do you have? How many rooms do they have?
  • What kinds of rooms are in these hotels?
  • Do I need to support different rates for different rooms or time periods?
  • Do I need to support overbooking the hotel?
  • Do rooms have things like optional amenities? Different bed sizes?
  • Are guests allowed to reserve specific rooms, or do they need to just reserve a type of room and we’ll figure out which one, exactly, when they arrive? (This last question is very, very important. We’ll get to that later.)
rooms = [{roomNum: 1, bed: “queen”, reservations: {…}},
{roomNum: 2, bed: “queen”, reservations: {…}},
{roomNum: 3, bed: “king”, reservations: {…}},…..]
def isAvailable?(startDate, endDate, criteria)
foreach room in rooms
if room.matchesCriteria(criteria)
booked = false
foreach date between startDate and endDate
if room.reservations[date]
booked = true
return true if not booked
return false
  1. Can you deal well with ambiguity?
  2. Do you make tradeoffs with your eyes open and how do you weigh them?
  3. Can you deal with change and revisit your assumptions or do you dig in your feet?
  4. Ok, fine, the fourth thing is do you have a shred of software design sense? See, I revisited my design there by adding a fourth thing.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Tim Cull, founder of @pollen_io. Random rants about business and my life, plus some politics around election time. Aggressively moderate.