Tennis Khelo
Court bookings, ladders and coaching for a city's tennis scene.
- Role
- Full Stack Product Engineer
- Industry
- Sports & Community
- Client
- Product Company
- Market
- India
- Duration
- 5 months
- Status
- Live
What it is
A platform that connects players, courts and coaches in one place, slot booking, skill-matched opponents, competitive ladders and academy management, all running off a single scheduling core.
What was going wrong
Court bookings ran through phone calls and a WhatsApp group. Double bookings were routine, coaches had no way to publish availability, and casual players had nobody at their level to play against.
- Remove double bookings entirely
- Let coaches and academies manage their own schedules
- Match players by skill so casual games are worth playing
- Take payments online instead of at the gate
How it was built
One scheduling engine backs every booking type (court, coaching slot and ladder fixture), so availability is computed once and cannot disagree between surfaces. Slot reservations take a short-lived Redis lock while payment completes, then commit to MySQL. Razorpay handles payment, and a rating system seeds ladder matchmaking.
The parts that were hard
Two people tapping the same 6pm slot
WhyPeak-hour slots get several simultaneous requests, and an optimistic check-then-write leaves a window where both requests pass the check.
FixA Redis lock is taken on the slot key before payment starts and released on success, failure or timeout, so exactly one request can ever reach the write.
Cancellations that had to be fair to both sides
WhyRefund rules differed by how close to the slot the cancellation happened, and getting it wrong meant either angry players or angry court owners.
FixRefund policy became a declarative rule set evaluated at cancellation time, so owners could change their own windows without a deployment.
What changed
- Booking conflicts eliminated by moving reservations behind a single locked write path
- Coaches gained self-service scheduling instead of routing every request through the venue
- Court owners got utilisation visibility they previously had no way to measure
What I'd carry forward
Scheduling looks like CRUD until two people want the same minute. Deciding early that availability has exactly one owner saved every feature that came after it.
Have a product idea, or one that stalled?
Tell me what you’re building and who it’s for. If I’m the wrong fit I’ll say so on the first call and point you somewhere better.
- /naveentehrpariya
- GitHub
- /naveentehrpariya
- Direct message
Based in Jaipur, India (GMT+5:30). Replies within one business day.

