- Docker – Multi-Stage Builds
Build in one image, ship from another. The pizza API compiles with Maven and a full JDK, then copies one jar into a JRE image — no Maven, no source, no build cache in the result. The frontends do the same with Node and nginx. Named stages, `COPY --from`, and stopping at a stage with `--target`.
- Hasura – Queries
The query language you get for free. `where` with `_eq`, `_gt`, `_in`, `_like`, `_and`/`_or`/`_not`, then `order_by`, `limit`/`offset`, cursor pagination, aggregates and `distinct_on` — each shown with the real response from a running engine. Also the naming-convention setting that decides whether your fields come back `price_per_night` or `pricePerNight`, and what it looks like in v3.
- Spring Boot – Exception Handling
One @RestControllerAdvice, one error shape, every endpoint. Turning a validation failure into a field-by-field response the frontend can render, mapping your own exceptions to status codes, and why returning 404 instead of 403 for a foreign-owned resource is a security decision rather than a sloppy one.
- React – State with useState
State is what a component remembers between renders. Why a plain variable will not do, the array destructuring useState returns, the rules that govern where hooks may be called, one state variable versus several, and the moment to stop and lift state up to a shared parent instead.
- Python – Introduction
What Python actually is — a language and an interpreter, which is two things people use one word for. Why indentation is syntax rather than style, what dynamic typing buys you and costs you, where Python is used in 2026, and how its releases work.