PHP 8.4 Asymmetric Visibility: The Getters I Finally Deleted
PHP 8.4's asymmetric visibility lets a property be public to read but private to write. I deleted a stack of getters. Here's the syntax, the…
PHP 8.4's asymmetric visibility lets a property be public to read but private to write. I deleted a stack of getters. Here's the syntax, the…
In FastAPI, async def is a promise not a superpower. Here's the def vs async def rule I use, the incident that taught me the…
The Go error handling patterns I actually ship in 2026: wrapping with %w, errors.Is vs errors.As, and killing the log-and-return anti-pattern.
How I moved a Go backend from zap to the stdlib log/slog package, the handler config I use in prod, and what I quietly miss…
I ran Laravel queues on queue:work + supervisord for two years, then a 3am alert made me switch to Horizon. Here's the config that actually…
A year of shipping PHP 8.4 property hooks in production: what actually replaced my old methods, where they made things worse, and the gotcha I…
TypeScript is structural, which is fine until two strings mean different things. Here is the branded types pattern I use to stop shipping ID mix-ups.
After a year of porting three of my own apps between Node, Bun, and Deno 2, here's the decision tree I actually use to pick…
pgvector plus HNSW replaced Pinecone on half my side projects. The schema, the index picks, hybrid search with FTS, and where I still reach for…
When to pick Server-Sent Events over WebSockets in 2026: a shipping engineer's take on real-time channels for dashboards, LLM streams, and more.