Project library
Web appStripe · New Grad Software Engineer · 2023

Campus club room-booking tool

Shared by D. Okafor · ex-Stripe New Grad Engineer

The sharer told this exact project in their Stripe new-grad interviews and went on to receive the offer.

Step into this interview

4 real follow-ups from the actual loop · 1 hard · ~12 min

You answer each question first — only then does the sharer's real take open up.

How they told it

A booking site my student org used to reserve shared practice rooms, replacing a chaotic shared spreadsheet.

Read the full telling

Before this, our dance club booked shared studio time in a Google Sheet, and people constantly double-booked or erased each other's rows. I built a small booking web app over a semester. Frontend was plain React, backend was Django with Postgres because I wanted real relational constraints. The core data model was rooms, time slots, and bookings, and the thing I'm proudest of is I put a database-level unique constraint on (room_id, slot) so two people literally could not book the same room at the same time, no matter what the frontend did. I learned that the hard way — my first version checked availability in application code, and during a busy signup window two requests both passed the check and both inserted. Classic race. The unique constraint plus catching the insert error and showing 'someone just grabbed this' fixed it cleanly. I also added a simple email confirmation via a background job so a slow mail send didn't block the booking response. It ended up used by around 40 club members for a semester. I kept auth dead simple with school Google sign-in because I did not want to store passwords.

What they actually got asked

Walk me through the double-booking bug and how you actually fixed it.

hard

Why Postgres and Django rather than something lighter like SQLite or a no-backend Firebase setup?

medium

Why move email into a background job?

easy

If this went from 40 users to your whole campus, what's the first thing that falls over?

medium