New trend: programming by kicking off parallel AI agents
Hi, this is Gergely with a bonus, free issue of the Pragmatic Engineer Newsletter. In every issue, I cover Big Tech and startups through the lens of senior engineers and engineering leaders. Today, we cover one topic from The Pulse #149. Full subscribers received the below article two weeks ago. To get articles like this in your inbox, every week, subscribe here.
With agentic command line interfaces like Claude Code, OpenAI Codex, Cursor, and many others going mainstream, Iâm seeing a trend of more software engineers experimenting with kicking off work with several agents simultaneously on separate tasks:
I talked with Anthropic engineer Sid Bidasaria about how Claude Code is built, and at the end of our conversation, he mentioned that heâd had a few agents running throughout and that it made him more productive with work. Similarly, software engineer Simon Willison, whom I consider an AI engineering expert, has posted about âembracing the parallel coding agent lifestyle.â He writes:
âFor a while now, Iâve been hearing from engineers who run multiple coding agents at onceâfiring up several Claude Code or OpenAI Codex instances at the same time, sometimes in the same repo, sometimes against multiple checkouts or git worktrees.
I was pretty skeptical about this at first. AI-generated code needs to be reviewed, which means the natural bottleneck on all of this is how fast I can review the results. Itâs tough keeping up with just a single LLM given how fast they can churn things out, whereâs the benefit from running more than one at a time if it just leaves me further behind?
Despite my misgivings, over the past few weeks Iâve noticed myself quietly starting to embrace the parallel coding agent lifestyle.
I can only focus on reviewing and landing one significant change at a time, but Iâm finding an increasing number of tasks that can still be fired off in parallel without adding too much cognitive overhead to my primary work.â
Simon shares advice about what works for him, with research, maintenance tasks, and directed work all mentioned as use cases.
Itâs interesting to consider whether parallel work with agents has the potential to overturn decades of software engineering practices. Letâs assume software engineers who kick off multiple agents at once do become more productive than âsingle-threadedâ peers who work on one problem at a time. If so, then this practice has a chance to spread, should enough software engineers seek to be more productive â or want to avoid being left behind by some colleagues doing more than before.
But engineering in the pre-AI era was all about being in the flow for many productive engineers. A flow state goes something like this:
- Understand the moving parts
- Build a solution, validate it, iterate on it
- When satisfied with how it works, submit a pull request for code review â or, if no review is needed, just merge and ship it
Interrupting this process disrupts the flow state, and it takes time to get back into it: itâs why software engineers tend to prioritize focus time, to make progress with coding work.
Of course, this isnât universal among all highly productive engineers; when I was an engineering manager, the most productive engineers on my team did a lot of context switching and were adept at juggling several things at once. Hereâs an average-looking day for a senior engineer acting as a tech lead:
- Code reviews. Arrive at office, go through open code reviews from the previous night
- Coding. Get some of their own coding work done
- Standup. The usual
- More coding. Get the work done. At least, thatâs the idea. In reality:
- Interruptions: code reviews, requests for help, taps on shoulder. The most productive engineer on a team regularly gets messages requesting code reviews to unblock teammates, or to help someone else whoâs stuck, or the manager (me â sorry!) tapping them on the shoulder for help with something.
I wonder if senior+ engineers will be ânaturalsâ at working with parallel AI agents, based on their existing habits and what they do currently:
- Keep parallel workflows in their heads; e.g., what team members are doing at any one time.
- Code reviews across several workstreams: theyâre the go-to code reviewer, and usually review all code changes across 2-5 workstreams. They may not do the work, but know when itâs correct.
- Can handle interruptions: theyâve learned how to make progress when their focus is continually being broken.
- Good at directing colleagues: because theyâre regularly interrupted, theyâve also learned how to delegate and explain urgent work to team members.
- Writing skill: these engineers write a lot of code reviews, draw up documents like RFCs that outline work, create tickets to break down projects, and critique colleaguesâ efforts; all this involves communicating effectively in writing.
With AI agents, the qualities that make a good tech lead are within reach for engineers who want to be more productive. So far, the only people Iâve heard are using parallel agents successfully are senior+ engineers.
Then again, this workflow hasnât stuck with everyone: I asked Flask creator Armin Ronacher about his experience with parallel agents. He told me:
âI sometimes kick off parallel agents, but not as much as I used to do.
The thing is: itâs only so much my mind can review!â
But weâre in new territory now that any dev can kick off parallel coding with coding agents. Will it make engineers more productive, or will it just make people feel like theyâre more productive? Perhaps engineers who do one thing at a time and keep focus will be shown to produce more reliable software, over time. Or maybe itâll turn out that working with parallel agents leads to more issues slipping through and more iterations, which destroys any gains.
We will find out. Personally, I can only see more devs experimenting with parallel agents.
My sense is that software engineering basics matter more when working with AI agents. Iâve started to use AI agents for my own side projects, with success so far. I do a few things:
- Testing: all side projects have unit tests because I learned to not trust my own work without validation
- Small, descriptive tasks: I give tasks small enough in scope, which I explain, and give examples of
- Refactoring: every third or fourth task is for the agent to refactor some code they wrote (e.g., extract into a method, move to a new class)
- Review: I track what the agent does
- Do small things personally: I keep my IDE open and do anything thatâs a few lines to change by hand, so I stay aware of the codebase
I keep hearing the same from other engineers: âmandatingâ engineering practices like having the agent pass all tests before continuing, leads to better results. This is unsurprising and itâs why these practices are getting popular. AI agents are non-deterministic and to some extent unreliable; these practices make them a lot more reliable and usable.
This was one out of the five topics covered in The Pulse #149. The full edition additionally covers: The full issue additionally covers:
- ACP protocol. A new protocol built by the Zed team, which tries to make it easier to build AI tooling for IDEs than the MCP protocol allows
- AI security tooling works surprisingly well? AI-powered security tools seem good at identifying security flaws in mature open source projects
- Is AI the only engine of US economic growth? Forty percent of US GDP this year is based on AI-related spend, while 60% of venture capital goes into AI. Hopefully, it wonât end up as a bubble which bursts like in 2001
- Comparing interviews at 8 large tech companies. Puneet Patwari applied to 8 major tech companies, and received 6 offers. He compares his interview experiences at Meta, Amazon, Uber, and 5 other workplaces
Read the full issue here, and check out todayâs The Pulse here.
