FuutStar | Sports League Platform
Live scores, brackets & analytics for tournament organizers
Backend Lead
5 months
3 engineers
Production Platform

The Problem
Local leagues were updating scores in WhatsApp groups — no source of truth, no history, spectators couldn't follow along.
Impact & Results
Built a real-time engine handling 500+ concurrent viewers per match with sub-200ms score sync; adopted by 4 leagues in first quarter.
System & Product Architecture
A live tournament platform where organizers manage fixtures, brackets, and team rosters while spectators follow ball-by-ball score updates in real time. Scorekeepers update matches from a mobile-friendly console, and every connected viewer sees the change in under 200ms. Historical stats, standings tables, and knockout brackets update automatically as results come in.
Key Engineered Features
Real-time score broadcasting with Socket.io rooms per match
Auto-generated knockout brackets and league standings
Scorekeeper console optimized for one-handed mobile use
Match history with per-player statistics and leaderboards
Organizer dashboard for fixtures, venues, and team management
Edge Cases & Hard Technical Problems
Complex scenarios solved through careful concurrency control, schema modeling, and fault-tolerant system design.
Scorekeeper losing connectivity mid-match — events are queued locally and replayed in order on reconnect, with server-side dedupe by event ID
Two scorekeepers assigned to the same match submitting conflicting updates; the server enforces a single active scorer lock
Bracket regeneration when a team withdraws after the draw is published — downstream fixtures re-seed without invalidating completed matches
Clock skew between devices, handled by using server timestamps as the single source of truth for event ordering
Technologies & Infrastructure
- React + Vite spectator app and organizer dashboard
- Node.js/Express API with Socket.io for WebSocket transport
- MongoDB with change streams feeding the broadcast layer
- Redis pub/sub for horizontal scaling of socket servers
- Nginx load balancer with sticky sessions