
The Brief
A Canadian virtual tutoring company wanted partner schools and families to refer students and earn rewards, tracked honestly, paid reliably, and manageable by a non-technical team. No agency, no team: one engineer owning everything from schema to DNS.
What I Built
- Referral engine with unique partner links, attribution windows and a reward ledger where credits freeze into a pending state on edge cases (a cancellation after crediting) instead of silently clawing back.
- React 18 + TypeScript front end over a Django 5 / DRF API, PostgreSQL underneath, Stripe for payouts and payments.
- Admin tooling so the client operates the whole programme (partners, rewards, approvals) without touching code.
- Bilingual product (English / French) for the Quebec market.
Why It Holds Up
Money logic is where referral platforms rot. Every state transition in the reward ledger is explicit, documented in pull requests, and reversible by an admin. The behaviour I chose for the ambiguous cancel-after-credit case became the client's permanent business rule.