- Angular – Routing
Turning URLs into components. `provideRouter()` and the route table, `<router-outlet>`, `routerLink` and `routerLinkActive`, route parameters and query parameters as signals via `withComponentInputBinding`, child routes and layouts, and the wildcard route that catches everything else.
- Docker Compose – Running a Multi-Container Stack
Once an app needs a database, `docker run` becomes a shell script nobody can read. The compose file, `up` and `down`, what a service is, the network and project name you get for free, `--build` versus `--force-recreate`, and why `docker-compose` with a hyphen is the old one.
- Hasura – Remote Schemas and Federation
Stitching an existing GraphQL API into Hasura's schema so clients see one graph instead of two. Adding a remote schema, the namespacing and type-collision problems that follow, remote relationships that join a database row to a field on another service, and how permissions and header forwarding work across the boundary. Then v3, where this stops being a bolt-on and becomes what the supergraph is.
- Java 17 Sealed Classes
A sealed type declares exactly which types may extend it. The compiler enforces the list, and — this is the real payoff — it can then prove that a switch over that type has covered every case. The problem An ordinary interface is open: anyone, anywhere, can implement it. That is usually the point.…
- Recursion
A method that calls itself on a smaller version of the same problem. The base case and the progress towards it, what the call stack is really doing, why StackOverflowError is a message rather than a mystery, and when a loop is the better answer.