Writing
18 articles on engineering, tooling, and the craft of building software.
Listed once, grouped by year, and the list ends. The AI essays and the I, AI stories live on the AI page.
Jump to Start here · Digital Garden · Demystifying Tools · Tags
Start here
- Hand-picked February 23, 2026
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.
- Hand-picked August 14, 2026
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.
- Readers come back to January 8, 2026
Common React Hooks Antipatterns and Gotchas
Learn about common React Hooks antipatterns and how to avoid them for better code quality.
- Readers come back to January 8, 2026
The Simplest CSS Grids
Learn the most common CSS Grid layouts with copy-pastable examples for two-column layouts, sidebar navigation, and more.
Digital Garden
Engineering, opinions, deep-dives, and everything in between.
2026
- 17 Side Projects I Built With Claude Code in Two MonthsFebruary 23A 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.
- Common React Hooks Antipatterns and GotchasJanuary 8Learn about common React Hooks antipatterns and how to avoid them for better code quality.
- The Simplest CSS GridsJanuary 8Learn the most common CSS Grid layouts with copy-pastable examples for two-column layouts, sidebar navigation, and more.
2024
- Constants vs Enums in TypeScriptMarch 13TypeScript tips and tricks
- Build React UI Library (notes)March 3Notes on building a React UI library.
- Where did my blog go?March 1A statement on where my extensive blog has gone.
- Throwback Thursday -- The Site Through TimeMarch 1A look at the site through time, from its inception to now.
2020
- Using Postgres FOR loop to generate dataJune 26I 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.
2018
- How to “grep” in PowerShellApril 18New to PowerShell? Here's how to “grep” using built-in PowerShell utilities.
- How I Structure My JavaScript FileApril 6Check 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.
2026
- Demystifying awkMarch 12A practical introduction to awk for printing fields, filtering rows, formatting output, and writing useful one-liners.
- Demystifying Git WorktreesJanuary 28Learn 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.
2025
- Demystifying ffmpegAugust 23The basics of ffmpeg
2020
- Demystifying the Find commandDecember 7The Find command made simple
- Demystifying GREPApril 9Cheatsheet: search for a keyword in a file
- Demystifying RsyncFebruary 17Rsync made simple
- Demystifying the TAR commandFebruary 9The cheatsheet for tar
Tags
Only some older pieces carry tags. The number is how many articles share it.
That's all eighteen.
Older posts imported from Dev.to aren't listed until they have a page of their own here.
