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

// 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
🏟️ ● in production

Builds your Cartola FC line-up for the round by crossing Brasileirão odds with player metrics: weighted ranking, budget optimisation in cartoletas, formation comparison and a history of past line-ups. Public landing, app behind a login.

java 21spring boot 3postgres 16angular 21jwtdocker
view all on github →
🥋FightOssStreak

Review-and-retention tool for jiu-jitsu. Curriculum tree, server-graded quizzes, streaks and spaced repetition.

java 21spring boot 3postgresreactdocker
// 2026● in production
🏟️cartolaoddsapi

REST API behind Cartola Odds: scores players from odds and form, optimises the line-up against a cartoletas budget and keeps a history of past rounds. JWT-closed.

java 21spring boot 3postgresjwtdocker
// 2026● in production
🧘carlessopilatesapi

REST API for managing patients and professionals of a pilates studio. Domain-driven, fully tested.

java 21spring boot 3postgres
// 2026● in production
🎨carlessopilatesfe

Web interface for pilates studio administration. Patient flows, scheduling, billing.

angular 19typescript
// 2026● in production
💻cartolaoddsfe

Angular frontend for Cartola Odds. Prerendered public landing, then the authenticated app: line-up of the round, ranking, favourites and settings.

angular 21typescriptssrnginx
// 2026● in production
💰goodfunds

Personal-finance MVP. End-to-end study project — auth, transactions, budgets, monthly close.

javaspring boot
// 2023● study
⚽goalfather

Elifoot-style football manager. Kotlin backend with a pure domain and a deterministic match engine.

kotlinspring bootreacttypescript
// 2026● study
🧩DesignPatterns

Hands-on walkthrough of the GoF design patterns in idiomatic Java. Strategy, observer, builder, decorator.

java
// 2022● archived
🔢algoritmos

Algorithm and data-structure practice. Sorts, trees, graph traversals — kept sharp on weekends.

java
// 2021● archived
// 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.