How I'm using coding agents: October 2025
Inspired by multiple other blogs, I thought I would throw something small together.
Inspired by Simon Willison’s article Embracing the parallel coding agent lifestyle and the linked Jesse Vincent How I’m using coding agents in September, 2025.
Let’s go from 40,000 feet (barf, sorry), to 1,000 feet.
And before we start, it’s important to know a tiny bit about me.
TL;DR:
- I used to be a programmer (Javascript, Swift, Rails)
- I turned into a product manager and stopped coding
- I know enough and the things I work on are small enough that my list of code smells keeps things pretty clean. I do not write code anymore in the traditional sense.
40k: Separate Mental Context
I’ve found I need ‘physical’ spaces on my desktop to speed up context switching. I typically have 2 monitors going with:
- Left monitor has between 2 and 4 separate desktops depending on what I’m working on that day.
- Right monitor is for things I always want available
I can quickly CTRL + Arrow left and right to swap between them as needed and I usually put similar things next to each other.
EX.
Space 1: Main backend (API change)
Space 2: App that consumes main backend (will work with API change)
Space 3: App that also works with API change
Space 4: Mobile app simulator QA or a side project I had going over the weekend that I do not want to lose my setup for.
20k Desktop Space Level
Each space runs it’s own IDE (Cursor or VS Code) which is running:
- At least 1 Claude Code instance, typically 2. But really no more than that.
- The server(s) necessary for that project to run.
I will just swap between them as one of the instances is churning on something. And yea, sometimes I just want to stay working on one space for an hour or two.
10k Planning + Execution
I am a huge Claude Code “Plan Mode” user. Almost everything starts in plan mode and big problems I hit go back to plan mode.
If I have 2 Claudes up running, they are typically working on two separate features on a branch.
- Claude 1: Executing a plan we already worked through
- Claude 2: Plan mode a task until I’m satisfied and then goes into a holding pattern until Claude 1 is done + QA’d + committed.
I’ve set up my Claude Code to play a sound whenever it’s done thinking so I at least have an idea when something is done cooking.
PS. I’m on the big Claude Max. 1000% worth it.
WORKTREES NOTE
I am not really into worktrees yet. They cause me too much mental overhead with having to run separate servers on different ports but share a DB.
5k Feature QA + Smell Tests + Refactoring
When a Claude is done coding. I test the feature. If it doesn’t pass… we go back to plan + execution from above.
The feature QA takes place on the same desktop space as the IDE.
I do not read the code at this point.
NOTE: The only code I do read before it happens are migration files. Claude gets very cute with indexes, database triggers, and combining the WHOLE feature into one migration so I have some internal rules. I also NEVER let Claude run migrations, reset the db, or whatever. It has to ask me about everything related to database changes.
When the feature is tested, I run a custom Claude slash command that is slightly different per project. Here’s an example.
/review-open-diff.md
Review the open git diff for the following things:
1. Clean code
2. No code duplication
3. Components for repeated objects or making sure we use existing components we already have
4. No files >400 lines
5. Clear separation of concerns in folder and file structure with Next.js + React in mind
Sonnet 4.5 gives each of those numbers a rating and tells me what could be done better. If I agree, I let it fix it or give it slightly different notes. A little more QA/test suite work happens after this if the refactor is large enough.
1k Final QA + Acceptance
The feature is done.
- Commit it myself (I’m still not into letting Claude commit/make PRs, one day).
- Clean branch = Hit Enter on Claude 2 to let it cook
- Claude 1 is back to planning for another feature/bug/research task
Other Vibe Coding Thoughts
- I haven’t used Codex/Copilot environments to auto-start PRs b/c the databases we use (Supabase, AWS) are a bit annoying to set up for them.
- I’m pretty tired by the end of the day when I have 3-4 desktops and try to take lots of mental breaks.
- I try to not start big, new things past a certain point of the day b/c I do not like crossing days for the same feature if I can avoid it.
- I will very often fire off a “Research Claude” I have no intention of working on just to give me some context for stuff I am thinking about. “How would you implement a presense tool for the app so we know when 2 admins are on the same edit page?” Lets me scratch an itch without getting into something I’m not ready to work on yet.
- If my plan mode fills the context too much, I’ll have Claude write to a plan file so nobody loses context.
- I tried subagents, and will try again, but the only one I like and use is a Code Researcher that writes a doc about the thing we’re trying to work on.
Speed Unlock
- Doing this ends up causing you to type a LOT. One thing that has unlocked this for me is using a tool like Wispr. Something with history is important. You can ramble on and think out loud about what you want Claude to do so it’s more of a conversation. Why plan mode is so important — Plan mode becomes conversation mode.