TypeScript in 2026: What We Wish We’d Known Before Going All-In
We’ve been writing TypeScript for four years across three major applications. The good, the frustrating, and what we’d do differently.
Building a GraphQL API That Doesn’t Become a Performance Disaster
GraphQL is powerful, but it ships with a class of performance problems that REST doesn’t have. Here’s how to build for production from day one.
The Database Architecture Decision That Took Us 18 Months to Undo
We chose the wrong database model for our use case. Here’s the honest story of what happened, why, and how we eventually fixed it.
Go in Production: What They Don’t Tell You in the Getting Started Guide
Go is genuinely excellent for production services. It’s also full of gotchas that only surface at scale. Here’s what four years of production Go taught us.
API Design Patterns We Wish We’d Known in Year One
APIs are forever. The design decisions you make in year one are the decisions you’ll be backwards-compatible with in year five. Here’s how to get them right.
How We Scaled PostgreSQL to 50 Million Rows Without Breaking a Sweat
The queries that run fine at 5 million rows start failing at 50 million in specific, predictable ways. Here’s the playbook we followed to scale without a rewrite.
The Security Audit That Found 23 Vulnerabilities in Our Production API
We hired an external security team to audit our production API. Here’s every category of finding, why they existed, and how we fixed them.
WebAssembly in 2026: Beyond the Browser
WebAssembly was born in the browser but its most interesting applications in 2026 are on the server. Here’s where the technology is headed and what it means for you.
Event-Driven Architecture: When It’s the Right Choice and When It’s Not
Event-driven architecture solves specific problems exceptionally well and creates new problems in exchange. Here’s how to make the tradeoff deliberately.
The Pragmatic Guide to API Versioning
Every API eventually needs to evolve in breaking ways. Here’s how to version from day one so that evolution doesn’t break your integrations.