- FastAPI – Middleware, Ordering and CORS
Middleware for the things every request needs: a correlation id, a timing header, one access log line. Then ordering, which reads backwards — add_middleware inserts at the front, so the last call is the outermost layer. Getting that wrong shipped a real bug here: every 500 reached the browser without CORS headers, so the frontend reported a CORS failure and never saw the error body.
- Vue – Get Started
Start here. What Vue is and what problem it solves, how it compares to React and Angular and when a team picks it, the exact versions this track is written against — Vue 3.5, Vite 8, Pinia, Vue Router 4 — one command to create a project and see it running, the demo application every example is taken from, and the full lesson index in reading order.
- FastAPI – async def or def, and How to Tell
The most consequential one-word decision in the framework. What FastAPI does with a def route versus an async def one, why a blocking call inside async def stalls every other request, and the threadpool that makes plain def safe. Then the same eight queries run serially and concurrently and MEASURED — where async wins by 86%, where it loses by 289%, and roughly where the line between them sits.
- Designing YouTube
The first case study here that is not a transactional system: nobody contends for a video, and the difficulty is bytes. Resumable uploads, transcoding as a fan-out of keyed tasks, and the cache split that makes a 99% edge hit rate reachable — then advertising as part of the playback path, server-side against client-side insertion, impression billing that has to be exactly once, and the recommendation and campaign machinery that gets a video watched.
- FastAPI – Background Tasks and Their Limits
BackgroundTasks runs work after the response is sent, which is the entire feature. What that buys, what it emphatically is not — no retry, no persistence, no visibility — and when to reach for a real queue instead. Then the trap that makes it dangerous: a yield dependency closes BEFORE the task runs, so passing an ORM object half-works, and the half that fails is the half you add later.