- Java 17 Switch Expressions
The switch statement Java inherited from C had two design flaws: it fell through unless you wrote break , and it could not produce a value. Java 14 fixed both, and Java 17 made it standard. The old form still works; there is no reason to write it in new code. Arrow labels With -> only the matching…
- 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.
- React – The Component Lifecycle with useEffect
The old three phases map onto one hook. What the dependency array really means, the cleanup function and the requests it cancels, why StrictMode runs your effect twice on purpose, the infinite loop everyone writes once — and the larger point that most effects should not exist at all.