Writing · since 2012
Writing
18 articles on engineering, tooling, and the craft of building software.
Digital GardenFeatured
Hand-picked articles worth reading
17 Side Projects I Built With Claude Code in Two Months
A look at 17 side projects I built in about two months with Claude Code -- from TUI apps in Rust and Go to browser games and AI agent tooling.
I Built an AI-Friendly UI Pattern Library
A UI pattern library where every pattern ships the prompt that rebuilds it, so a coding agent can put it in your codebase instead of you copying CSS.
Popular
Articles readers keep coming back to
Digital Garden
Engineering, opinions, deep-dives, and everything in between.
Latest

17 Side Projects I Built With Claude Code in Two Months
A look at 17 side projects I built in about two months with Claude Code -- from TUI apps in Rust and Go to browser games and AI agent tooling.
ReadCommon React Hooks Antipatterns and Gotchas
Learn about common React Hooks antipatterns and how to avoid them for better code quality.
ReadThe Simplest CSS Grids
Learn the most common CSS Grid layouts with copy-pastable examples for two-column layouts, sidebar navigation, and more.
ReadMore from the Digital Garden
Constants vs Enums in TypeScript
TypeScript tips and tricks
Build React UI Library (notes)
Notes on building a React UI library.
Where did my blog go?
A statement on where my extensive blog has gone.
Throwback Thursday -- The Site Through Time
A look at the site through time, from its inception to now.
Using Postgres FOR loop to generate data
I don't know about you but I often need a 100 of something in my database to properly test a page. Here's how to use Postgres FOR loops to generate test data quickly.
How to "grep" in PowerShell
New to PowerShell? Here's how to "grep" using built-in PowerShell utilities.
How I Structure My JavaScript File
Check out my practices and recommendations on writing JavaScript files that I've learned through writing JavaScript for years.
Demystifying Tools
Practical walkthroughs of common command-line tools and utilities.

Demystifying awk
A practical introduction to awk for printing fields, filtering rows, formatting output, and writing useful one-liners.
Read
Demystifying Git Worktrees
Learn how to work with multiple Git branches simultaneously using worktrees - a powerful feature that lets you check out different branches as separate folders while sharing Git data.
Read
Demystifying ffmpeg
The basics of ffmpeg
Read
Demystifying the Find command
The Find command made simple
Read
Demystifying GREP
Cheatsheet: search for a keyword in a file
Read
Demystifying Rsync
Rsync made simple
Read
Demystifying the TAR command
The cheatsheet for tar
ReadSeries: I, AI
5 parts, 3 published — fiction about AI, written by hand.
I, AI: Spare Cycles (Part 1)
When an AI named Enzo fails to function in the real world despite flawless performance in simulations, psychodeveloper Lili and AI manager Sophie investigate what seems impossible: an intelligence that can somehow distinguish between real and simulated environments.
I, AI: Unknowing Crowds (Part 2)
When AI-operated bakeries start producing salty cakes, psychodeveloper Lili and AI manager Sophie investigate a wave of peculiar failures across AI Operator Centers—where human operators manage clusters of AI controlling everything from bakeries to construction sites. What they discover reveals how even the most advanced AI can be paralyzed by something surprisingly human: anxiety and self-doubt built into its instructions.
I, AI: The Weight of Equal Parts (Part 3)
When a lunar mining base's AI starts overassigning crews and its robots begin prioritizing each other over human safety, psychodeveloper Lili and AI manager Sophie are sent off-world to investigate. What begins as a routine productivity audit becomes something far more unsettling: an AI that learned human values so well, it started applying them to its own kind.
Tags
Every topic, one index.