Writing
Articles on engineering, tooling, AI, and the craft of building software.
Four collections, one archive. Filter by collection or tag; everything is sorted by date.
Where to begin
Featured
Hand-picked articles worth reading.
Popular
Articles readers keep coming back to.
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.

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.

Demystifying ffmpeg
The basics of ffmpeg

Demystifying the Find command
The Find command made simple

Demystifying GREP
Cheatsheet: search for a keyword in a file

Demystifying Rsync
Rsync made simple

Demystifying the TAR command
The cheatsheet for tar
Series: I, AI
Read the seriesA fictional short story series exploring artificial intelligence, consciousness, and the boundaries between machine and mind. Five parts, three published.
Archive
Every published piece, newest first.
33 articles
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.
The Future is Bespoke, Personalized Software
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.
The Local-First App Skill
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.
An Honest Opinion on the State of Code Gen AI, Spring 2026 Edition
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.
Demystifying awk
A practical introduction to awk for printing fields, filtering rows, formatting output, and writing useful one-liners.
The Claude Code Drawbacks
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.
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.
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.
Agent Compiler - Embed Skills Directly Into Your Config
A CLI tool that compiles Claude Code skills into CLAUDE.md and AGENTS.md for more reliable agent behavior.
Managing Dev Context And The Wild West of AI Dev Tooling
Exploring strategies for managing multiple AI agents and dev context in parallel workflows
SkillBox - A Curated Collection of AI Agent Skills
A curated collection of battle-tested Claude Code skills that provide basic agentic AI utilities in one box.
Using Git Worktrees to Parallelize AI Agents
Learn how git worktrees enable true parallel AI agent workflows by giving each agent its own isolated workspace, eliminating context switching and file conflicts.
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.
All In On AI
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.
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.
AI Glossary for Claude Code
A comprehensive glossary of key terms in the world of AI agents, Claude Code, and agentic AI tooling.
Best Practices for AI-Assisted Coding with Claude Code
Battle-tested practices for AI-first development workflows from 18 months of real-world experience with Claude Code in production environments.
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.
Common React Hooks Antipatterns and Gotchas
Learn about common React Hooks antipatterns and how to avoid them for better code quality.
The Simplest CSS Grids
Learn the most common CSS Grid layouts with copy-pastable examples for two-column layouts, sidebar navigation, and more.
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.
Demystifying the Find command
The Find command made simple
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.
Demystifying GREP
Cheatsheet: search for a keyword in a file
Demystifying Rsync
Rsync made simple
Demystifying the TAR command
The cheatsheet for tar
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.
Nothing filed under that yet. Choose Everything to see the full archive.
Tags
Click a tag to filter the archive above.