- Heaps
A tree stored in a flat array with no references at all, kept ordered just enough that the minimum is always at index 0. Sift up, sift down, and why building a heap from an array is O(n) rather than O(n log n) — a genuinely counter-intuitive result.
- Angular – Testing
Testing a pipe, a directive, a guard and an HTTP interceptor. When you need `TestBed` and when `new MyPipe()` is the better test, hosting a directive to exercise its selector, `HttpTestingController` and why `verify()` matters, driving a debounced search with fake timers, and where Playwright takes over from unit tests.
- Docker – Multi-Platform Builds and exec format error
You build on an Apple Silicon Mac, you push, the server says `exec format error`. Why that happens, what buildx and QEMU do about it, `--platform` for one target and a manifest list for both, what emulated builds cost in time, and the `--platform=$BUILDPLATFORM` trick that makes a cross build fast again.
- Hasura – Logging, Metrics and Tracing
Knowing what your API is doing once real traffic hits it. The log types Hasura can emit and which ones are worth turning on, reading a query log to find the slow operation rather than guessing, the health and metrics endpoints, and tracing a request across Hasura and the service behind an Action. Plus what changes in v3.
- Spring Boot – Messaging with JMS
Handing work to a queue so the request can return. JmsTemplate, @JmsListener, converting a message payload to JSON, and what to do with a message that keeps failing — because without a dead-letter destination it is redelivered forever.