Blog.

  1. 01

    Load-Testing a URL Shortener (opens in a new tab)

    Part 2 · Medium

    Pushing 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%.

  2. 02

    Building a URL Shortener: Six Design Decisions and the Alternatives I Rejected (opens in a new tab)

    Part 1 · Medium

    Six 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.

  3. 03

    Testing WP-CLI Commands with PHPUnit and Behat (opens in a new tab)

    Medium

    What 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.

  4. 04

    I Built a Twitter-Style Feed to Find Out What Fan-Out Actually Costs (opens in a new tab)

    Part 2 · Medium

    Push 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.

  5. 05

    Celebrities vs. The Rest of Us: Designing a Twitter-Style Feed (opens in a new tab)

    Part 1 · Medium

    Why 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.

  6. 06

    Enterprise Gutenberg Blocks: A TypeScript-First Architecture for WordPress at Scale (opens in a new tab)

    Medium

    One 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.

  7. 07

    Software Architectural Patterns (opens in a new tab)

    Medium

    A 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.

  8. 08

    Building a Caching Proxy Server in Node (opens in a new tab)

    Medium

    A 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.

  9. 09

    Building a CLI app in Node.js (opens in a new tab)

    Medium

    Building 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.