Review-and-retention tool for what you learn on the mats: a 46-node curriculum tree with progressive unlocking, server-graded quizzes, drill logging, streaks and spaced repetition.
Public code. Mostly Java.
28 public repositories on GitHub. The ones below are the projects I keep returning to — APIs for problems I actually care about. Open source, MIT, fork at your peril.
Running in production.
// 2 products in the air · source on githubManagement platform for a pilates studio, in daily use: patients, professionals, scheduling and billing. A Spring Boot API behind an Angular admin interface.
Review-and-retention tool for jiu-jitsu. Curriculum tree, server-graded quizzes, streaks and spaced repetition.
REST API that helps build the best Cartola FC fantasy football team using odds-based heuristics.
REST API for managing patients and professionals of a pilates studio. Domain-driven, fully tested.
Web interface for pilates studio administration. Patient flows, scheduling, billing.
Angular frontend for the Cartola Odds project. Pulls from the API, ranks players, renders a draft picker.
Personal-finance MVP. End-to-end study project — auth, transactions, budgets, monthly close.
Elifoot-style football manager. Kotlin backend with a pure domain and a deterministic match engine.
Hands-on walkthrough of the GoF design patterns in idiomatic Java. Strategy, observer, builder, decorator.
Algorithm and data-structure practice. Sorts, trees, graph traversals — kept sharp on weekends.
Turning what happens on the mats into something you actually retain.
// java 21 · spring-boot 3 · react · docker · 2026The problem
What you learn on the mats evaporates between sessions. The detail you drilled on Tuesday is gone by Saturday, and there is no structured way to review it — only notes nobody reads twice.
The approach
The curriculum is versioned as data, not code: 46 nodes across 9 modules in JSON, unlocked progressively. Quizzes are graded on the server — the answer never reaches the browser — and each drill feeds a streak and a spaced-repetition schedule. Spring Boot with Flyway and OAuth2, React behind nginx, the whole thing in Docker Compose so dev and production share one topology.
What I learned
The bottleneck was never the code — it was curating content. Writing 91 questions that actually test a concept took longer than the API around them. And a cold-starting backend taught me to build a landing page that renders in full without a single API call.