I started a new personal project recently, and decided to try a new approach to
development. Instead of using planning mode and designing large blocks of code
at once, I now use the Claude app on my phone, and on the web, to design the
system by module. Once I have output close to what I want, I then add it to
the repository and iterate on it with Claude Code from there.
Why? Isn't Claude Code's Plan Mode designed for this use case?
Since moving from Aider to Claude Code, I struggled to get Claude to consistently perform certain
actions (like testing, linting, committing). Claude Code is more general purpose, while Aider felt
designed around core coding workflows.
At first, I thought that leveraging hooks was going to be the key to getting a consistent workflow.
However, I ran into problems figuring out which hooks really mark the end of a task that indicates it
is time to lint or test or commit. Should I do it after every change? Or when it stops?
Over the past month, I have been trying out remote agents on a complex, legacy codebase as a method for automating
bug fixes for tickets that land in a "Triage" queue in Linear.
For our experiments, I hand pick the tickets to send to our remote agent, Codegen, which directly integrates with Linear.
Concurrently, I use Claude Code and the Linear MCP Server to run the same
process on my local machine as a method of comparison.
Anthropic's Model Context Protocol has made Claude Code my daily driver (sorry Aider).
If you are unfamiliar, MCP is a specific interface definition that exposes a service as a tool for an MCP Client (Claude Code, Cursor, Copilot).
I won't dig into the details of exactly how MCP works, but instead I want to provide a quick list of MCP servers that can expand your coding agent's
capabilities.
A few days ago, the team over at Cloudflare released an OAuth library that was developed with extensive help from Claude.
They went the extra step and published detailed information about the prompts used and the commit history gives insight
into the limitations of Claude, if not all coding agents.
For the past three weeks, I have been waking up at 5AM to work on some projects before my son needs to get ready for school.
My goal is figure out what level of guardrails are necessary to prevent code from devolving into a sloppy mess. I find myself
restarting projects, sometimes after a single day, because the code has become unmaintainable.
If you even casually browse HackerNews, you probably saw "My AI Skeptic Friends are all Nuts" and the -raging flame war- heated debate it triggered.
I love HN for all of the skeptics and naysayers; it keeps me grounded and constantly questioning unbridled enthusiasm for AI. However, I am becoming less skeptical by the day as I continue
to improve my systems for working with agents.
Not So Common Thoughts produced a great post that succinctly combines the historical ways that technology has shifted production
away from skilled labor, i.e. people needing years of experience with a certain skill, towards something approaching a critic, or someone with good taste and judgement. Brian Eno recognized
how music was affected in such a way by the advent of the computer sequencer.
What does this mean for the software engineer in the world of Claude & ChatGPT? Are we all just "Ideas Guys", endlessly bothering our agents to "trust them - this idea is worth millions"?
This one had me scratching my head for far too long. How do you render a list of posts in reverse order? I knew to make it easy, I would name files to ensure they are sorted in order on the file system.
I thought all I had to do was reverse (listFiles "./posts/") in my Caddyfile. This worked just fine on my machine, but when deployed, my post order would be wildly incorrect.
I have always found it difficult to properly style my code blocks when using just HTML. My last attempt used a bit of Javascript to generate it on the fly which led to terrible layout shifts on first load.
Caddy uses Chroma for handling tokenization of code blocks within a markdown file and provides styles. A fully static approach is exactly what I was looking for, but I struggled to get the styling to work.
Of course, before I could get started, I had to ask myself how I was going to manage this feed a.k.a procrastinating on the hard task of actually writing.