Building a Self-Healing Daemon (Watchdog + the Duplicate-Process Bug)

Building a Self-Healing Daemon (Watchdog + the Duplicate-Process Bug) I have a content pipeline that runs on a VPS. For a while, my morning routine was: wake up, SSH in, check if the pipeline was still alive, restart it if it wasn’t. It died maybe twice a week — sometimes from an unhandled exception, sometimes

I Cut My AI Coding Token Bill With a CLI Proxy

I Cut My AI Coding Token Bill With a CLI Proxy Six weeks ago I added up what I was spending on Claude API tokens during a typical dev session. git status alone was costing me around 340 tokens per call. I ran it probably 40 times a day. That’s 13,600 tokens — for a

The Mythical Man-Month in the Age of AI Agents

The Mythical Man-Month in the Age of AI Agents I re-read Frederick Brooks’ The Mythical Man-Month while running a six-agent AI team for a production project. The experience was disorienting in the best way. A book written in 1975 about software projects at IBM turned out to be more relevant to what I was doing

Self-Publishing a Technical Ebook — What Actually Sold

Self-Publishing a Technical Ebook — What Actually Sold I have now shipped two technical books: a print-on-demand paperback and a digital ebook. The paperback took eight months to write and produces a trickle of royalties. The ebook took six weeks and outsells it. Here is what I learned about what actually moves copies versus what

Running Background Daemons in WSL2 — Three Ways, One Real Comparison

Running Background Daemons in WSL2 — Three Ways, One Real Comparison I run several long-lived background processes in WSL2: a Redis queue daemon, a file watcher, a Telegram bridge, and a few task-processing agents. Getting them to start reliably, stay running, and survive across WSL restarts took longer than it should have because the advice

Building an Auto-Committing Knowledge Vault (Inbox-Only, Zero Direct Edits)

Building an Auto-Committing Knowledge Vault (Inbox-Only, Zero Direct Edits) My knowledge base used to be a shared directory everyone could write to directly. Files got edited in place, changes overlapped, and the commit history was a mess of partial updates with no clear rationale. Every few weeks something would conflict or go missing and I’d

Anchor-Based Doc Patching Across Many Files (Without Breaking Everything)

Anchor-Based Doc Patching Across Many Files (Without Breaking Everything) I recently ran an 18-change documentation campaign across ten Markdown files. Each change was reviewed, approved, and sequenced before I touched a single file. By the end, every patch landed cleanly and nothing broke. Six months ago the same kind of campaign would have left me

Debugging Silent Message Drops in a Redis Queue (Four Bugs, One System)

Debugging Silent Message Drops in a Redis Queue (Four Bugs, One System) I run a six-agent tmux setup where every inter-agent message goes through a Redis-backed queue. One agent writes a task, another BLPOP-s it off and executes. For weeks the system worked perfectly. Then, quietly, messages started disappearing — not crashing, not throwing errors.