- Java 11 Removed/Deprecated Features & Migration
Java 11 is the upgrade that breaks things. Not because the language changed — it barely did — but because Java 11 removed several modules that had been part of the JDK since the 1990s. Most upgrades from 8 fail for the same handful of reasons, and they are all fixable. Why this one hurts Java 9…
- Hash Tables
Turn the key into an array index and go straight there. Separate chaining, the load factor, why resizing has to rehash rather than copy, what a bad hashCode does to your O(1), and the equals/hashCode contract that breaks lookups when you get it wrong.
- React – Redux, and Whether You Need It
Redux Toolkit as it is actually written today — configureStore, createSlice, useSelector, useDispatch — and an honest comparison against the context plus reducer you already know. What Redux gives you that React does not, what it costs, and the question to ask before adding it.
- Angular – RxJS, and How Much of It You Still Need
Signals took over state, but observables still own events over time. Built around one worked example — the menu search box — where `toObservable`, `debounceTime`, `distinctUntilChanged`, `switchMap` and `catchError` each fix a specific bug, and `toSignal` hands the result back to the template. Why `switchMap` and not `mergeMap` is the difference between correct and subtly wrong.
- Docker – Logs, Exec and Debugging a Container
Your container exited, or it says `unhealthy`, or it will not connect to the database. `logs -f`, `exec -it sh` into a running container, `inspect` for the config it actually got, `stats` for resources, what the exit code means, and the healthcheck that reported unhealthy forever because the image had no `curl` in it.