~/writing
Writing
51 posts. Mostly essays. Occasional rants.
Subscribe via RSS ↗ or email.
- 2026-10-02 The Future Needs Fewer Agents and More Bureaucracy 12 min
- 2026-09-29 The Same Byte, Billed Three Times 3 min
- 2026-09-25 Idempotency Keys: The Cheapest Insurance in Distributed Systems 16 min
- 2026-09-22 Publishing a Hash of Someone's Email Is Publishing Their Email 3 min
- 2026-09-04 Context Is a Budget: Writing an AGENTS.md That an Agent Will Actually Use 8 min
- 2026-08-28 You Probably Don't Need JWT: Server-Side Sessions Are Still the Right Default 9 min
- 2026-08-21 RabbitMQ Without Celery: Queue Patterns for Python People Who Want to Understand Their Own System 9 min
- 2026-08-18 Your Monitoring Stack Knows Too Much 2 min
- 2026-08-14 The Pager Is a Smoke Detector, Not a Doorbell: Designing On-Call That Doesn't Burn People Out 9 min
- 2026-08-11 eBPF Networking is Fast—But at What Cost? 2 min
- 2026-08-07 Zero-Downtime Schema Migrations: The Expand/Contract Pattern 8 min
- 2026-08-04 Encryption is Not Free—Especially at Scale 2 min
- 2026-07-31 Stop Putting Secrets in Environment Variables 7 min
- 2026-07-24 It's Always DNS: A Practical Debugging Guide for the Usual Suspect 8 min
- 2026-07-21 Retries Should Have a Budget—Not Just a Backoff 2 min
- 2026-07-17 Python Packaging Was a Disaster. It's Called uv Now. 8 min
- 2026-07-14 Git is the Source of Truth—Until It Isn't 2 min
- 2026-07-10 Prompt Injection Is the New SQL Injection: Securing Agentic Systems 8 min
- 2026-07-03 Just Use Postgres: The Queue, Cache, and Search Engine You Already Run 9 min
- 2026-06-30 Your System is Fast—In the Lab 2 min
- 2026-06-26 Letting AI Debug Production: Helpful or Dangerous? 13 min
- 2026-06-19 Why Engineers Are Choosing Simpler Databases Again 17 min
- 2026-06-18 Supervision Trees Packetos 12 min
- 2026-06-18 Systemd Is the Orchestrator You Already Have 13 min
- 2026-06-17 Inside the Gate Packetos 15 min
- 2026-06-17 SLOs Without the Theatre: Error Budgets That Survive Contact With Management 13 min
- 2026-06-16 Policy, Not Permission Packetos 9 min
- 2026-06-16 Your Home Lab Doesn't Need Kubernetes (But Here's Exactly When It Does) 13 min
- 2026-06-15 Nine Seconds: The PocketOS Incident, Read Properly Packetos 20 min
- 2026-06-15 Terraform State Is a Database — Start Treating It Like One 13 min
- 2026-06-13 The Anthropic Export-Control Move Smells Funny 10 min
- 2026-06-12 Stop Treating the LLM Like a Junior Dev: A Working Model for AI-Assisted Development 14 min
- 2026-06-05 The Assumption Nobody Wrote Down 15 min
- 2026-05-29 You're Measuring Everything Except What Matters 11 min
- 2026-05-15 Your Gateway is Both Shield and Single Point of Failure 13 min
- 2026-05-08 You Rate-Limited the Internet — But Not Yourself 11 min
- 2026-04-24 Not Everything Needs to Be Real-Time 4 min
- 2026-04-17 AI Doesn't Fix the Bus Factor — It Might Make It Worse 12 min
- 2026-04-10 The Yes Engineer Confuses Typing with Judgement 4 min
- 2026-04-03 Keep the Tools Out of the Loop 15 min
- 2026-04-01 The Real Bottleneck in Engineering Isn’t Compute — It’s Attention 14 min
- 2026-03-31 The LiteLLM Attack, in Hindsight 14 min
- 2026-03-30 What Time Is It, Really? 21 min
- 2026-03-27 Passwords, Authentication, and Why We’re Still Getting It Wrong 17 min
- 2026-03-21 Key Management: The Bit That Actually Bites You 23 min
- 2026-03-20 Why Spies Still Use Shortwave Radio (And What It Tells Us About Modern Encryption) 7 min
- 2014-10-07 Ten Things I Wish I'd Known at the Start of My Career 8 min
- 2013-11-17 Scaling Feature Switches 3 min
- 2013-11-13 Burnout: The Elephant in the Room 7 min
- 2011-11-24 Case Study: Optimising a Cloud Application 12 min
- 2011-05-14 Why a Sysadmin? 5 min