Rust vs Go in 2026: The Heuristic I Actually Use
Rust vs Go, decided by what you are building rather than benchmarks: where the borrow checker pays off, where Go's compile times win, and when…
Rust vs Go, decided by what you are building rather than benchmarks: where the borrow checker pays off, where Go's compile times win, and when…
I wrote the same map helper four times before using Go generics. Where type parameters earn their keep, where I backed them out, and what…
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…