/work

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.

in production · public urls

Running in production.

// 2 products in the air · source on github
🥋

FightOssStreak

fos.fabiocarlesso.com ↗
● in production

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.

java 21spring boot 3postgresreactvitedockeroauth2
view all on github →
// 0 results — try a different filter
case study · fightossstreak

Turning what happens on the mats into something you actually retain.

// java 21 · spring-boot 3 · react · docker · 2026
46curriculum nodes
91quiz questions
9modules, in a tree
~12klines of java + ts

The 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.