
Demystifying awk
A practical introduction to awk for printing fields, filtering rows, formatting output, and writing useful one-liners.
~ / writing
18 articles on engineering, tooling, and the craft of building software. Plus the AI shelf, one click over.
Hand-picked articles worth reading
Articles readers keep coming back to
No articles match that filter.
Try a shorter term, or clear the filters to see all 30.
Engineering, opinions, deep-dives, and everything in between.
Browse the collection →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.
Learn about common React Hooks antipatterns and how to avoid them for better code quality.
Learn the most common CSS Grid layouts with copy-pastable examples for two-column layouts, sidebar navigation, and more.
TypeScript tips and tricks
Notes on building a React UI library.
A statement on where my extensive blog has gone.
A look at the site through time, from its inception to now.
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.
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.
New to PowerShell? Here's how to "grep" using built-in PowerShell utilities.
Check out my practices and recommendations on writing JavaScript files that I've learned through writing JavaScript for years.
Practical walkthroughs of common command-line tools and utilities.

A practical introduction to awk for printing fields, filtering rows, formatting output, and writing useful one-liners.

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.

The basics of ffmpeg

The Find command made simple

Cheatsheet: search for a keyword in a file

Rsync made simple

The cheatsheet for tar
Guides and opinions on AI-assisted development. The full shelf, with stories, lives on the AI page.
AI page →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.
Every app I use is about 70% right. The last 30% never ships because the addressable market for it is one person -- me. So I built seven apps that are 100% right for one person, and I think that whole category of software is about to get eaten.
A reusable blueprint that tells Claude Code how to build a single-user app -- Next.js, node:sqlite, a pure logic core -- so every app I build comes out the same shape.
A frank assessment of where code generation AI actually stands in 2026 -- from agentic harnesses to multi-agent architectures and what still needs to change.
A critical look at the hidden pitfalls of AI-assisted development -- from skipped tests and weakened assertions to scope creep and context rot -- based on real-world experience with Claude Code.
A CLI tool that compiles Claude Code skills into CLAUDE.md and AGENTS.md for more reliable agent behavior.
Exploring strategies for managing multiple AI agents and dev context in parallel workflows
A curated collection of battle-tested Claude Code skills that provide basic agentic AI utilities in one box.
Learn how git worktrees enable true parallel AI agent workflows by giving each agent its own isolated workspace, eliminating context switching and file conflicts.
Context-switching between AI-assisted and manual coding creates a hidden productivity tax. Learn why you need to pick one approach per session—and how to structure your workflow for maximum efficiency in the age of AI coding assistants.
A comprehensive glossary of key terms in the world of AI agents, Claude Code, and agentic AI tooling.
Battle-tested practices for AI-first development workflows from 18 months of real-world experience with Claude Code in production environments.