Claude Prompt Caching in 2026: The Setup That Actually Cut My API Bill
I ran Claude's prompt caching in production for six months. Here's the cache_control setup, TTL trade-offs, and the anti-patterns that burned me.
I ran Claude's prompt caching in production for six months. Here's the cache_control setup, TTL trade-offs, and the anti-patterns that burned me.
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…
vLLM and Ollama solve different problems. Here's the concurrency-based rule I use to pick between them in 2026 — and why single-user benchmarks lie.
How I replaced hand-rolled optimistic UI code with React 19's useOptimistic hook. Real patterns, gotchas from two weeks of production, and when to skip it.
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…
I moved my marketing site from Next.js to Astro islands and cut the JavaScript bundle by 91%. Here's the partial hydration setup I actually ship…
I broke a React app twice in one week because an error boundary never fired. Here's the setup I actually ship in 2026 with react-error-boundary…
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.