- Spring Boot – Server-Rendered Pages with Thymeleaf
Not every page needs a JavaScript framework. A @Controller that returns a view name, the Thymeleaf syntax worth knowing, layout fragments, and rendering the same template to a string for an email body. Includes when to reach for this instead of a REST endpoint, and when not to.
- Angular – The Component Lifecycle
The hooks Angular calls on your component and the order they fire in: `ngOnInit`, `ngOnChanges`, `ngAfterViewInit`, `ngOnDestroy` and the rest. The striking thing about the demo app is how few it uses — one `ngOnInit` in thirty components — because signals, `effect`, `afterRenderEffect` and `DestroyRef` cover what they used to. This lesson is mostly about which ones you can now stop reaching for.
- Docker – Don't Run as Root
A container runs as root unless you say otherwise, and root in the container is root on the kernel it shares with you. Creating and switching to a non-root user, why port 80 then stops working, keeping secrets out of image layers, scanning with `docker scout`, and pinning a base image by digest.
- Hasura – Mutations
Writing through the API. `insert`, `update`, `delete`, their `_one` variants, `returning`, upserts with `on_conflict`, and the fact that several mutations in one request run in a single transaction while several requests do not. Also the harder question this track's demo app answers with a deliberate no: which writes belong in Hasura at all, and which belong behind your own API.
- Python – f-strings and Formatting
Formatting text the modern way. f-strings, the format spec that lines up currency and columns, `=` for debugging, what changed in 3.12, and the two older styles you will still meet in real code and should not write.