Go Generics in 2026: The Type Parameters I Actually Reach For
Go generics turned four. Here's where I actually reach for type parameters in real Go code, the constraints I lean on, and the patterns I…
Go generics turned four. Here's where I actually reach for type parameters in real Go code, the constraints I lean on, and the patterns I…
gRPC vs REST in 2026, decided by who calls your service and how often. Real Go and proto code, where each one wins, and the…
The API design defaults I argue for at project kickoff: noun-based URLs, honest HTTP status codes, RFC 9457 error shapes, real pagination, and versioning.
Five Laravel queue habits I changed after years of failed jobs, with the maxExceptions, Horizon, and idempotency configs I now reach for on every new…
Six Docker habits I dropped from production in 2026, the ones I kept, and the small changes that cut image size, build time, and CVE…
My one-line rule for SQLite vs Postgres, the four PRAGMAs that made SQLite production-ready for me, and the cases where I still pick Postgres without…
How I split thiserror and anyhow inside Axum handlers, then let IntoResponse map domain errors to real status codes without leaking internals to callers.
Real notes on which Laravel 12 features stuck after fifteen months in production: the streamlined skeleton, Inertia 2 deferred props, and what I dropped.
The Go error patterns I actually use in production: fmt.Errorf %w wrapping, sentinel vs typed errors, errors.Is vs errors.As, and errgroup at scale.
The Axum patterns I actually use in production Rust services: extractors, Tower layer ordering, an error enum that works, and pragmatic tracing.