$ ls posts/
Writing
Notes on frontend at scale, architecture, and the unglamorous engineering that keeps teams shipping.
- 2026-07-25
What changed when I swapped a Node script for Deno
I moved a small Node link-checker script to Deno expecting a syntax change. What I got was a permissions prompt that caught a bug node_modules had been hiding for months. deno - 2026-07-23
How I decide between integration tests and e2e tests
A working framework for choosing e2e tests over integration tests, built from watching both kinds fail in production. testing - 2026-07-21
Astro vs React for a site that is mostly content
Pick the framework by how dynamic the page really is, not by habit. astro - 2026-07-04
Deploying a static site to S3 and Cloudflare with GitHub Actions
A cheap, fast deploy pipeline for a static site using S3, Cloudflare, and GitHub Actions, with the IAM and cache-purge parts people skip. aws - 2026-07-04
NestJS or plain Node: when the framework earns its weight
NestJS is not better than plain Node. It is better past a certain team size and worse before it. Here is where the line sits. nestjs