Posts on backend engineering — the language-agnostic patterns and decisions that define a great backend. API design, caching, queues, observability, system design tradeoffs, and the lessons that apply whether you write Python, Go, or anything else.
Three API shapes you’ll see in 2026: resource-oriented (REST), action-oriented, and RPC. The strengths of each, when hybrids work, and the design choices that age well.
When to use REST vs GraphQL vs tRPC vs gRPC vs Connect in 2026. The tradeoffs each makes, where each shines, and a decision guide based on your client/server combination.
A practical look at Zig in 2026 — language fundamentals, why Bun chose it, how it compares to Rust and Go, the current ecosystem, and concrete cases where it earns the call.
Durable execution explained. Why Temporal became standard infrastructure in 2026, when to reach for it, and concrete patterns for AI agents, payment workflows, sagas, and any long-running process that must survive crashes.
DuckDB has become the embedded analytics engine of 2026. Why it replaces Pandas, where it fits next to Postgres / ClickHouse / Snowflake, the DuckLake extension, and concrete patterns for SaaS, notebooks, and edge analytics.
A practical guide to authentication in 2026 — passkeys as the primary factor, OAuth 2.1 + OIDC for federation, sessions vs JWTs, the right stack for FastAPI / Django / Hono / Next.js, and the security mistakes I keep seeing.
Why SQLite has become a serious production database in 2026. Turso/libSQL, Litestream replication, Cloudflare D1, embedded replicas with microsecond reads, the workloads where it beats Postgres, and the ones where it doesn’t.
A practical comparison of Server-Sent Events and WebSockets in 2026. The protocol differences, AI token streaming, chat with cancellation, code in FastAPI, Hono, and Axum, scaling and CDN/proxy behavior, and a clear decision rule.
Production caching strategies — cache-aside vs write-through vs write-behind, stampede prevention, hot keys, TTL design, the Redis-vs-Valkey split, and a checklist for adding caching that doesn’t bite back.
Production patterns for idempotency keys, retry strategies, the outbox pattern, and the truth about exactly-once delivery. The patterns every backend engineer needs to handle network failure correctly.