How LLMs changed the way I work
I first started mucking about with ChatGPT on the web back in the GPT-3.5 days, so late 2022. To be honest, it was quite substandard for coding. It got things wrong constantly, had a habit of sounding more confident than it had any right to and generally felt like an interesting novelty rather than something I could rely on. Even so, I came away from it with the feeling that the underlying technology clearly had legs.
GPT-4 was the point where I really started paying attention. That was the first release that made me think this was not just a toy with good marketing. The jump in quality was obvious. The problem was that the tooling around it still had not really caught up. Most of it was still driven through the ChatGPT web UI, with editor integrations only just starting to appear.
I tried a few of those early coding tools. I eventually settled on
vim-chatgpt, now renamed vim-llm-agent, along
with the official copilot.vim plugin. They were useful enough, but still felt a bit cramped.
vim-chatgpt was basically file or selection based, while Copilot felt like autocomplete on
steroids. Better than nothing, certainly, but still clunky and rather narrow.
There was also a middle phase in all this for me, and that was aider. I used it quite a lot before fully adopting Claude Code. It was much more manual than the newer agentic tools, but that was part of the appeal. It was open source, gave me more control and fit better with the sort of environment I like working in. Even so, once the newer wave of tools arrived, especially Claude Code, it was hard to ignore the gap in sheer capability. Crazy how fast things move in this space.
I was never especially taken with the GUI-heavy side of this world, so I skipped the Cursor hype entirely. I have to say, I am glad I did. I much prefer a CLI-based development environment where I can actually see what is going on, compose things myself and not feel like I am being gently pushed into somebody else's idea of how development ought to work. I did use VS Code and GitHub Copilot on some projects, more or less because I had to, and they were fine. Useful, yes. But they never felt natural to me.
The point where this all really clicked for me was summer 2025, when I trialled Claude Code on a devops-heavy internal workstream for a project deployed on AWS via Terraform. That was the first time I felt I was dealing with something that could take in not just the current file, or even just the repository, but the wider infrastructure and operational context as well. Suddenly AI-driven devops felt practical rather than gimmicky. Working that way was amazing. It genuinely felt like my abilities had been multiplied.
A concrete example was a fairly involved Terraform and Kubernetes deployment. I am not a Kubernetes expert, but I know enough to make my way around. Claude Code made it much easier to fill gaps in my knowledge quickly, understand how the moving parts fit together and get productive without weeks of mucking about first. That, to me, is one of the most interesting things about these tools. They amplify existing expertise rather than replacing the need for it. You still need enough background knowledge to spot when they are talking nonsense, glossing over something important or making dangerous suggestions, especially around security.
Since then I have tried a fair few tools, including OpenCode, Codex, VS Code Copilot, Claude Code and, more recently, pi.dev. I also tried Codex fairly early on, but at the time it felt like it still had a fair bit of growing up to do, so I did not stick with it. I should probably give it another look. I was actually quite bullish on OpenCode for a few months. It seemed promising and I liked where it was heading. But over time I became less comfortable with some of the security trade-offs, especially after a remote code execution issue, and parts of the privacy story felt murkier than I was comfortable with. It also started to feel too batteries included for my liking, in much the same way Claude Code can.
That was a big part of why I ended up adopting pi.dev instead. It is much simpler and much more transparent. What I really like is that I can inspect its behaviour while using it, and change that behaviour in real time. That is a very powerful property in a tool. I am not an Emacs user, but I can understand why people who are into Emacs become so attached to it, because this scratches a similar itch. When a tool is simple enough to understand and pliable enough to reshape to your own needs, it starts to feel less like a product and more like part of your environment.
I have also added my own permissions layer to pi.dev to make it safer to use, which suits the way I like to work. It is not doing anything especially magical there either, which I mean as a compliment. It is simple enough that I can see how it behaves and change it when I feel the need.
I am also checking out Amazon Kiro on the CLI side, and it seems very decent so far. That said, it still feels like a rather AWS-shaped product, being built on Amazon Bedrock, so it is a different sort of walled garden. For now, I have more or less settled on Claude Code and pi.dev, with Kiro looking promising as well. Claude Code feels very batteries included, which is not always a bad thing. pi.dev is almost the opposite. It is small, clear and easy to reason about. For my own work, I find myself preferring that.
The disappointing part is Anthropic's stance on third-party tools piggybacking on Claude consumer subscriptions and rate limits. OpenCode, for example, was explicitly blocked first. More recently Anthropic moved to stop third-party harnesses more generally from using Claude subscription limits. That has made the Claude ecosystem feel more like a walled garden than I would like. That is a pity, because I generally prefer Anthropic's models. OpenAI, by contrast, seem much more comfortable with third-party integrations and harnesses around their coding tools, and I think that is the right instinct.
As for the current state of the art, I have to say I am amazed by it. What these tools can already do is extraordinary, and I do not think the pace of change is slowing down any time soon. The effects on software engineering, and probably plenty of other fields, are going to be dramatic.
At the same time, I am not completely relaxed about what this means for the profession. I can quite easily see a future in which fewer software engineers are needed, junior roles become much rarer and more of the industry is driven by a relatively small number of highly leveraged people directing tools and agents, software captains if you like. If anything, these tools seem to increase the value of judgment and existing experience, which is part of why I suspect junior roles may get squeezed first. That may be where this is heading. I am fascinated by it, and I use these tools constantly, but I do not think software engineering is about to disappear. I do think it may end up looking very different from the profession many of us entered, and I would be lying if I said I did not find that future a bit unsettling.