Blog.
- 01
Load-Testing a URL Shortener (opens in a new tab)
Part 2 · MediumPushing the linkpulse redirect path with k6 until something gave. A fixed VU test measures concurrency, not throughput, and at 3,000 requests a second one Node process ran out of CPU while Redis and Postgres sat at about 25%.
- 02
Building a URL Shortener: Six Design Decisions and the Alternatives I Rejected (opens in a new tab)
Part 1 · MediumSix decisions behind a URL shortener that runs in public, each with the alternative I rejected: a 302 rather than a 301, caching misses as well as hits, a sliding window rate limiter in Lua, and refresh tokens with reuse detection.
- 03
Testing WP-CLI Commands with PHPUnit and Behat (opens in a new tab)
MediumWhat to prove about a WP-CLI command before it runs unattended against production. PHPUnit for the logic, Behat against the real wp binary, and the places WP-CLI resists unit testing.
- 04
I Built a Twitter-Style Feed to Find Out What Fan-Out Actually Costs (opens in a new tab)
Part 2 · MediumPush and pull feeds built over the same data and measured. Fan-out costs about 12 microseconds per follower, a timeline entry about 80 bytes in Redis, and the read advantage was far smaller than expected.
- 05
Celebrities vs. The Rest of Us: Designing a Twitter-Style Feed (opens in a new tab)
Part 1 · MediumWhy one feed design cannot serve an account with eleven followers and one with sixty million. Push, pull, and the hybrid model that treats celebrities differently.
- 06
Enterprise Gutenberg Blocks: A TypeScript-First Architecture for WordPress at Scale (opens in a new tab)
MediumOne attribute rename broke 12 blocks without a single error. TypeScript for block attributes, one Webpack bundle for dozens of blocks, and SCSS shared between the frontend and the editor.
- 07
Software Architectural Patterns (opens in a new tab)
MediumA short tour of eight patterns, from layered and monolithic to microservices, event driven and peer to peer, with where each one fits and where it hurts.
- 08
Building a Caching Proxy Server in Node (opens in a new tab)
MediumA Node CLI that sits in front of any server, caches its responses locally and marks each reply with an X-Cache HIT or MISS header, with a command to purge the cache.
- 09
Building a CLI app in Node.js (opens in a new tab)
MediumBuilding a Node.js CLI with commander.js, then making it pleasant with Chalk, Inquirer and loaders. The example project prints a user's recent GitHub activity.