The story
Software for sports academies where any sport is a setting, not new code. Participants and parents, programmes by age, schedules that cannot double-book a pitch, attendance, monthly billing, a parents’ portal, and the academy’s own website from a builder.
Every academy gets its own app and its own PostgreSQL database, provisioned from a control plane I also wrote. The control plane bills the platform fee as a share of each academy’s income.
Hard parts cleared
- Money as integers: every amount is stored in piasters, splits round down and the remainder goes to the last line, so the books balance to the piaster.
- Revenue routing per academy: tax first, then fixed amounts, then percentages, then one remainder line, and the split must balance before anything is written.
- A pricing engine with 13 rule types and a 10-step resolution order. A missing price is a hard error, never a silent zero.
- Facilities change shape during the day (a 3 by 2 grid in the morning, 2 by 1 at night) and the schedule still refuses any double booking.
- 960 automated tests, real-browser end-to-end runs, and a 354-page Arabic user guide regenerated from an anonymised database.












