ALL of the major AI models have improved dramatically in the last six months, and even in the last three months.
As someone who uses both Claude and ChatGPT 8-10 hours a day, I can definitely say that neither of them is even remotely close to what it was six months ago. They are far more capable now.
When you watch Claude and ChatGPT work, they are actually using fairly similar methods of reasoning and work delegation, even when you are just using them in normal “chat” mode.
The code I see coming out of ChatGPT today is pretty much on par with what I see from Claude, and Gemini is getting very close as well.
Grok and DeepSeek are advancing too, although in the coding-related tests we run against them, they are still not quite at the same level. Both do fairly well for general information, although Grok can sometimes seem a little scatterbrained. Perhaps that comes with the territory. 
Right now I have five fairly high-level projects that are intertwined and in the later stages of development and testing.
I use multiple sessions of both Claude and ChatGPT, sometimes deliberately from different accounts so they do not share the same conversational history or develop the same code bias, to check the work of the others.
I can move sections of a project from Claude to ChatGPT and back again and, for the most part, the transition is seamless.
One of the things I’ve written about recently is that the way you need to interact with these systems has changed dramatically, particularly over the last 90 days.
The giant prompts that helped in the beginning can actually hurt you now.
These days it is much more about context, balance, and clear instructions that define not only what work needs to be done, but also what constitutes success and failure.
Likewise, where a giant file containing every rule and guideline might once have worked well, I now get better results by maintaining a short, definitive guide that points to smaller focused documents. The AI can then retrieve the information it actually needs for the task at hand instead of dragging the entire project’s history into every decision.
It is also important to understand that just because today’s models have much larger context windows and you CAN run a conversation much longer, that does not mean you SHOULD.
I use a two-level process.
One AI session acts as the project conductor, and we spawn separate threads as workers to perform specific jobs.
The worker gets exactly what it needs to do that job, and the handoff to the worker is normally written by the AI project conductor itself.
When the worker finishes, it writes a handoff back to the conductor explaining what it did, what changed, what was tested, and anything the conductor needs to know. Then that worker thread is finished.
The conductor evaluates its own health every three or four worker iterations and decides when it is time to hand its own job to a fresh conductor.
I also keep discussions about new ideas, bugs, architecture changes, or major feature changes in completely separate conversations. I don’t want those exploratory discussions polluting the project conductor’s context.
When one of those discussions produces something we want to implement, the result gets turned into a handoff document and passed to the project conductor. The conductor can then assign it to a worker when it fits into the project plan.
Interestingly, both Claude and ChatGPT have accumulated enough broad knowledge of what I am working on that they understand how the different projects fit together and where they diverge.
But they also understand that my rules of engagement require them to “stay in their lane” and not allow work on one project to start influencing the conductor of another.
The newer high-powered models are slower because they spend more time reasoning. That really doesn’t bother me.
Working this way, I simply assign one conductor/worker pair a task and move to another project.
I do whatever testing or evaluation is needed there, have that worker write its handoff when the job is complete, close the worker thread, and then the conductor and I determine the next task and create a handoff for a new worker.
Then I move on to another pair.
So in practice, I am almost never sitting around waiting for an AI to finish something.
I use Firefox, and its colored tab groups make it easy to keep the conductor and worker threads for each project together.
About once a day I also shut down the entire PC and the VMs where I run AI coding agents. The agents NEVER run directly on my host PC.
When everything comes back up, Firefox restores the tabs and groups exactly where I left them, and I continue working on each project.
It is actually quite efficient. Once you apply a little organization to the process, it becomes surprisingly easy to manage.
It feels a lot like being the lead programmer overseeing several development teams.
I don’t have to personally type every line of code, but I remain 100% in control of what is being built. More importantly, I don’t waste huge amounts of time or tokens, and the projects don’t “drift” because an agent wandered off and decided to redesign something on its own.
“Plan the work and work the plan” still applies when programming with AI.
It works a lot better than saying, “Build me one of these,” and hoping for the best.
My advice to everyone would be not to get too comfortable with any one AI vendor, or with what you think you already know about how to use AI.
At least once a month, step back and revisit the other major systems. Also keep up with what the companies themselves are saying about how their models are changing and how they recommend using them.
Anthropic and OpenAI both publish regular information about changes in their models and tooling, and there are plenty of people writing good articles every week about what they are discovering in actual use.
Whatever you concluded about AI as a programming tool a year ago, or even six months ago, is almost certainly out of date today.
And the same will probably be true six months from now.
As they say in some circles:
“Hang onto your hat. You ain’t seen nothing yet!”
Charles