- Python – Iteration (for / while loops)
The for loop that walks a sequence rather than an index, when a while loop is the right shape, range, enumerate and zip, break and continue, and the loop-else clause almost nobody knows is there.
- Interface default methods and static methods
Before Java 8, adding a method to an interface broke every class that implemented it. That is not a theoretical problem — it is why Collection went years without obvious conveniences. Default methods solved it, and understanding why they exist tells you when to use them. The problem they were…
- Angular – Services and Dependency Injection
Dependency injection is the part of Angular that most repays understanding properly. Writing a service, `@Injectable({ providedIn: 'root' })` and what tree-shakeable providers buy you, the `inject()` function versus constructor injection, injection tokens for values that are not classes, and how the injector hierarchy decides which instance you get.
- Docker – Ports, Networks and Container DNS
`-p 3308:3306` has a host side and a container side and mixing them up is the single most common Docker mistake. Bridge networks, how containers resolve each other by service name, why `localhost` inside a container is not your laptop, and the `host.docker.internal` escape hatch.
- Hasura – Subscriptions
Live data over a websocket, wired into a real React app with Apollo Client. The difference between a live query and a streaming subscription, why a subscription is just a query you keep open, how Hasura multiplexes many clients onto few database polls, and the permission and cost questions that decide whether you should use one at all. Includes the auth handshake that trips everyone up.