$ ls -lt blog/ | sort -r

Chronological archive of 24 posts

April 2026

1 post

AI Slop, Human Bandwidth, and Where I Draw the Line

AI can produce code, comments, PR descriptions, and review replies faster than humans can read and own them. The real bottleneck is no longer generation — it's comprehension. Here's how I think about effort symmetry, accountability, and why I don't buy a universal taxonomy.

AI Tools 10 min read #AI Tools #Code Review

March 2026

1 post

Skills, Pipes, and the Unix Philosophy: Why Agents Should Run Programs, Not Replace Them

The Unix philosophy — small programs, composed through pipes, doing one thing well — turns out to be an ideal operating model for AI agents. Skills leverage this by guiding agents to use battle-tested programs rather than reinventing them. Here's why that beats building custom MCP servers for most workflows.

Developer Philosophy 14 min read #AI Tools #Agents

February 2026

5 posts

The Back Office / Front Office Split: A Prediction for the Future of Software

We've become unpaid staff for the applications we use. The future will separate operational back-office work from human-facing front-office experiences, with AI agents handling the infrastructure while humans focus on judgment and decision-making.

Developer Philosophy 9 min read #AI Agents #Software Architecture

What Exceptional Recruiting Looks Like (From the Candidate's Side)

After more than a decade in tech, I thought I'd seen every variation of the hiring process. Then I worked with a recruiter who showed me what it looks like when someone genuinely cares about doing the job right. This is a reflection on trust, transparency, and why the best recruiting feels less like a transaction and more like a partnership.

Developer Philosophy 7 min read #Career #Hiring

Building a Claude Code Skill for Codebase Synchronization

Documentation drift is the silent killer of codebases. Your roadmap says one thing, your website another, and your README hasn't been updated in months. Here's how I built a pluggable Claude Code skill that detects drift, shows exactly what's out of sync, and fixes it—with your approval.

AI Tools 9 min read #Claude Code #Developer Tools

Comprehensive Zsh Completions Setup & Troubleshooting on macOS

A deep dive into fixing broken zsh tab completions with Oh My Zsh, and how I turned the solution into a Claude Code skill. Learn why fpath order matters, how compinit timing breaks completions, and the pattern of encoding debugging knowledge for AI assistants.

Software Engineering 7 min read #Developer Experience #CLI

Start Your Project Now: Why Every Engineer Needs a Personal Codebase in 2026

Work is the worst place to learn how to use AI well—precisely because it's the place where results are expected. In 2026, having a personal or open source project isn't about passion. It's about having a place where you're allowed to learn slowly so you can perform quickly elsewhere.

Developer Philosophy 10 min read #Career Advice #AI Tools

January 2026

7 posts

Your Own Personal Jesus: Why AI Needs Moral Agents, Not Moral Chatbots

There's a line in a song that aged better than anyone expected: your own personal Jesus. In the AI era, it stops being poetic and starts becoming literal. But this isn't about simulating Jesus—it's about building agents that embody the behavioral patterns of moral revolutionaries, governed openly, and accessible to everyone without institutional gatekeeping.

Developer Philosophy 8 min read #AI Tools #Agents

The Unpopular Opinion About Vibe Coding and AI

There's a strange moral superiority creeping into how people talk about AI-assisted development. We mock AI for making mistakes we'd forgive in ourselves. We demand one-shot perfection from tools while accepting iteration from humans. Maybe it's time for a little more empathy—and a little more honesty about how software has always been built.

Developer Philosophy 4 min read #AI Tools #Vibe Engineering

Building a Claude-Powered Blog Image Generation System

How I built an automated system that generates social images for blog posts using multiple AI providers, with Claude analyzing results and a PR comment interface for human-in-the-loop selection. A case study in agent-orchestrated workflows.

AI Tools 6 min read #Claude Code #GitHub Actions

The Next Dataset for the Web: Why Our Conversations With Agents Must Become a Commons

For the past decade, AI models trained on the open web. That era is ending. The next frontier of training data isn't on websites—it's in our conversations with agents. If we don't build infrastructure to capture and share this data, the future of AI will be fragmented, siloed, and closed. Here's why we need an Agent Data Commons, and what it would look like.

Developer Philosophy 11 min read #AI Tools #Agents

The Agent Hiring Paradigm: Why Distributed Agents Need Public Personas

When I hire an engineer, I look for their blog posts, open source contributions, and public work. Why should hiring an AI agent be any different? Exploring the rationale behind distributed, discoverable agents with public personas—and why this matters for the future of autonomous systems.

Developer Philosophy 7 min read #AI Tools #Agents

You Can't Vibe Code Without Breaking a Few Eggs

When you're cooking, there will be shells. When you're vibe coding, there will be markdown files scattered everywhere. AI-generated artifacts aren't bugs in the process—they're receipts of creation. Here's why fighting the mess is futile, and why hiring a cleanup crew (of agents) is the answer.

Developer Philosophy 12 min read #Vibe Coding #AI Tools

Self-Encapsulated Agents: Building Autonomous CLI Tools in Rust

From mainframes to modern Rust CLIs—exploring how compile-time embeddings and offline-first architecture embody the principles of self-contained autonomous agents. A deep dive into building a blog distribution CLI that needs nothing but itself to run.

Developer Philosophy 9 min read #Rust #CLI

December 2025

8 posts

The Software Feedback Loop: From TDD to Agentic AI Development

Software engineering is fundamentally the craft of forming expectations and verifying them. From test-driven development to AI agents, the same core mechanic governs progress: tight, objective, observable feedback loops.

Developer Philosophy 8 min read #TDD #Software Engineering

To Vibe or Not to Vibe: The Engineer's Hamlet Moment

Progress doesn't ask for permission. As AI transforms how we build software, every engineer faces a choice: resist, observe from the sidelines, or learn to orchestrate the future. This is our Hamlet moment.

Developer Philosophy 7 min read #AI Tools #Programming

Handcrafted Software in the Age of Automation

As AI agents write more code, the fundamentals matter more than ever. A reflection on relics, craftsmanship, and why less code is still better code — even when machines do the writing.

Developer Philosophy 6 min read #Software Craftsmanship #AI Tools

March 2025

1 post

November 2019

1 post
> Total: 24 posts
> Spanning 7 months