backendgym backendgym · projects Sign in with GitHubSign in
Projects

Pick something to build or fix.

Scenarios, incidents and builds, from warmup to advanced.

01 · scenario Warm-up

The payment that happened twice

A mobile carrier dropped responses mid-checkout, the apps retried, and 17 customers paid twice. Make the charge endpoint safe to retry.

Python FastAPI
~4h Start →
02 · incident Warm-up

The reports that slowed Tuesday

A report filter shipped on Monday, and on Tuesday morning finance reports started timing out. Find out why, fix it, and show the p99 coming back down.

Python PostgreSQL
~3h Start →
03 · scenario Intermediate

The quota that multiplied

Three API instances each kept their own count, and one merchant blew through its limit. Make the limit hold across all of them.

suggested Python Redis Docker
~4h Start →
04 · scenario Intermediate

The orders that never reached the warehouse

Checkout kept taking orders while the broker was down, and 37 of them never reached the warehouse. Make the handoff survive an outage and a repeated delivery.

suggested Python flask RabbitMQ sqlite postgres Docker
~5h Start →
05 · incident Intermediate

Twice the shipping email

After a worker restart, SouthRoute customers got the same shipping email twice. Trace the delivery, restore one email per event, and show the duplicate count at zero.

Python RabbitMQ Docker
~3h Start →
06 · scenario Intermediate

The API nobody could see inside

Lumen Home found out about a catalog outage from customer tickets. Make the service show its four golden signals, and page someone before the next outage spreads.

suggested Python FastAPI Docker Prometheus Grafana
~5h Start →
07 · scenario Advanced

The checkout prices that vanished after a deploy

A deploy flushed Mira's price cache and the checkout fell over on the rush of misses that followed. Make cold reads safe, measure them, and keep checkout usable when Redis goes away.

suggested Python FastAPI Redis PostgreSQL
~5h Start →
08 · scenario Intermediate

The notification queue that made OTPs wait

A newsletter backlog made Bellbird's login codes wait while providers failed and throttled. Get urgent messages through, lose nothing, and measure it.

suggested Python FastAPI Redis
~5h Start →
09 · incident Advanced

The wallet that spent the same credit twice

One Hearth customer spent the same wallet credit twice and ended up below zero. Reproduce the negative balance, work out whether the slow PSP is involved, and restore the invariant.

Python FastAPI PostgreSQL
~5h Start →
10 · build Warm-up

Tasks, with accounts

A design studio lost a deadline to a shared spreadsheet. Build them a task list where each person signs in and sees only their own, from an empty repository to a URL they can open on a phone.

any stack
~12h Start →
series · 4 builds Warm-up → Advanced

The URL shortener

One system, grown step by step: short links for a grocery shop's SMS campaigns, from the first redirect to a campaign that brings a million clicks. Each step starts from the repository you shipped in the one before.

any stack · deploy every step

each step builds on the last Open the series →