2026/02/02
My first foray into using git worktree-style development — spinning up multiple workspaces and having LLM agents attack different problems in parallel — was a failure. I found myself simultaneously exhausted and unproductive, the equivalent of doing a circuit course in Bean Boots. The entire thing felt good in the pernicious way increasingly familiar to developers using these sorts of tools, where you can delude yourself into believing that noise and diffs indicate forward progress, even though at the end of the day you’ve run a marathon and out of the twenty PRs you shipped, five of them are buggy and three of them are relevant to the actual important thing you should be doing.
I am back using worktrees and having a very good time doing so — with a slightly different …
2026/02/02
My first foray into using git worktree-style development — spinning up multiple workspaces and having LLM agents attack different problems in parallel — was a failure. I found myself simultaneously exhausted and unproductive, the equivalent of doing a circuit course in Bean Boots. The entire thing felt good in the pernicious way increasingly familiar to developers using these sorts of tools, where you can delude yourself into believing that noise and diffs indicate forward progress, even though at the end of the day you’ve run a marathon and out of the twenty PRs you shipped, five of them are buggy and three of them are relevant to the actual important thing you should be doing.
I am back using worktrees and having a very good time doing so — with a slightly different mindset, which is to treat them not as parallel agents but as an advance team.
If I’ve got five or six things I know I want to do in a given focus block, the first thing I’ll do is open up five or six different worktrees within Conductor and spend two or three minutes dictating via Aqua high-level goals and linking in any relevant Linear, Sentry, or Slack data. Then Opus goes off and whirs for thirty minutes, and I don’t pay any attention until I decide it’s time to pick up that task and that task only.
What I find is never complete, but always useful. Bug fixes might have correctly diagnosed the root cause but implemented the fix or regression test in a way that I find clumsy. Feature branches might have done an awful job wiring together the architecture but given me a couple Storybooks that I can click around and better refine my thoughts with. Refactors give me a sense of the scope and a few regression tests that were missing.
More often than not, the branch spun up by Conductor never even makes it to GitHub, let alone the main branch. It’s purely a first draft from an overstimulated and undercompensated robotic junior colleague — but that is value additive. I couldn’t tell you what the dollar amount of that value is, but right now it’s certainly greater than zero. And the tax on my workflow is minimal at best.
About the Author
I’m Justin Duke — a software engineer, writer, and founder. I currently work as the CEO of Buttondown, the best way to start and grow your newsletter, and as a partner at Third South Capital.
Colophon
You can view a markdown version of this post here.