M-DEF
Lessons from an Early Badminton Analytics Engine
Overview & Problem
An early leaderboard and analytics platform built for recreational badminton leagues, providing dynamic player ratings and match statistics before being superseded by Majadu.
Tracking player standings across unstructured recreational matches required a dynamic ranking model before backend APIs were unified.
Architecture
Flutter frontend client paired with Supabase / PostgreSQL backend, featuring a custom rating algorithm weighing win margins and inactivity decay.
Engineering Trade-offs
Inactivity decay penalty
Rankings automatically decayed when players stopped competing, preventing inactive players from occupying top leaderboard positions indefinitely.
Retirement & algorithm migration
When Majadu was established, M-DEF was retired and its core rating algorithms were extracted and rewritten in Go for Majadu API.
Key Takeaway
Retiring early standalone experiments in favor of unified backend APIs keeps system maintenance low while preserving core algorithm IP.
Explore more systems in the Qouver umbrella.