two-picking-positions-engine

From frontend to shipping backend

Your personal course for learning Python backend on this exact service โ€” taught through its real code, bridged from what you already know as a senior frontend dev.

๐ŸŽฏ Mission: independently ship a change to this service. Eight sessions, each ending in a concrete skill that gets you there. Pace ~6+ h/week.

Start here

all sessions
๐Ÿ“’

Exercise Workbook

The whole curriculum + every exercise in one phone-friendly page. Read theory anywhere, tap quizzes for instant feedback.

deep dive
๐Ÿ›ค๏ธ

Session 1 โ€” Request lifecycle

The full first lesson: how a request becomes a response. Routing, async & the event loop, JSON serialization.

Two ways to learn

๐Ÿ“ฑ On your phone

Read the theory recaps, do the ๐Ÿง  think prompts, and tap through the ๐Ÿ“– quizzes (instant feedback, works offline).

๐Ÿค With Claude

Bring the hands-on ๐Ÿค exercises to our sessions โ€” I'll spin up the local stack and we write/run/debug code together.

The 8 sessions

1
Request lifecycleDeep dive
Routing ยท async ยท JSON โ€” the map of every change.
app/app.py
2
Pydantic models & validationWorkbook
The request/response contracts โ€” your most-pulled lever.
models/model.py
3
Redis โ€” cache & stateWorkbook
Why a backend needs memory outside the process. Hash + sorted set.
repositories/redis_repository.py
4
RabbitMQ โ€” messagingWorkbook
Staying in sync without being called. 1 queue, 3 exchanges.
consumers/rabbit_consumer.py
5
Postgres โ€” the databaseWorkbook
Durable storage & reading SQL critically.
app/utilities.py
6
Concurrency & runtimeWorkbook
Workers vs threads vs async โ€” why latency behaves the way it does.
gunicorn_conf.py
7
Config & secretsWorkbook
How one codebase serves 5 countries.
configs/app_config.py
8
Capstone โ€” ship an MRWorkbook
Run locally โ†’ change โ†’ verify โ†’ MR. The mission.
the whole loop

Trusted resources

FastAPI tutorial FastAPI: async Pydantic docs Real Python Redis University RabbitMQ tutorials SQLBolt (SQL) psycopg2 docs

Full annotated list in RESOURCES.md. Mission & progress in MISSION.md.