- TypeScript – The Utility Types Worth Knowing
Partial, Required, Readonly, Pick, Omit, Record, Exclude, Extract, NonNullable, ReturnType and Awaited — what each one is for, in the order you will actually need them. Including the Record in this app that turns adding a status to a union into a build error until somebody writes the label for it.
- NestJS – The Request Lifecycle
The order everything runs in, traced through one real request from the contractor API. Middleware, guards, interceptors, pipes, the handler, then interceptors and filters on the way back out — and the practical consequences of that order, which is where most of the confusing bugs in a Nest app come from.
- Spring Study Guide – REST
REST as Spring implements it. Resources, the safe and idempotent methods and why the distinction matters, status codes for each verb, @RestController versus @Controller, @RequestBody and @ResponseBody, HttpMessageConverters and how content negotiation picks one, error responses with @ControllerAdvice, and RestClient — the replacement for the RestTemplate every old answer names.
- log4j
Logging is what you have instead of a debugger when the problem happened at 3am on a server you cannot attach to. Java's logging landscape has a confusing number of libraries; the arrangement that matters is simple once you see it. The facade and the implementation There are two layers, and…
- Backend Dev – Caching, Async Work and Messaging
Three ways to stop making the caller wait, and the cost of each. What is safe to cache and how to invalidate it, why the cache goes in front of the slow thing and not in front of everything, moving work off the request thread, events inside one process versus a real queue between services, and retries that do not double-charge anyone.