Sometimes I feel like I have sold my soul switching to AI for coding, but I don’t regret it. In just two years since I started using AI at work, I went from turning autocompletion on and off in frustration to having AI take over almost all of my coding and support my documentation.
At the beginning I was faster by hand. Autocompletion was often wrong, or no better than a cheap copy-and-paste from a StackOverflow example. Using AI to write a function was impractical because the code was mostly terrible, and it took me far too long to write a specific-enough prompt and fix the result afterward. It wasn’t worth it.
It got better quickly, though. In 2026 my usage started to increase slowly. It became my go-to solution for small utility scripts and quick changes in TypeScript, Python, Dart, or C#, languages I use but don’t master as well as Java. It was only when I started using AI to analyse code and write documentation that I realised it had got much better (faster than I expected!).
The first time I felt more productive using AI for Java coding was while analysing bugs. With AI I could find the piece of code I had in mind, plus the code I hadn’t thought of but that was relevant. I quickly started using it for a first opinion on troubleshooting, then to solve small bugs directly, and eventually I offloaded the implementation of entire functionalities.
Yes, it still makes mistakes and requires guidance. AI may implement logic inside the repository layer because it’s more direct, take shortcuts creating unnecessary tech-debt, and on occasion it changes the test instead of fixing the regression. It happens, but not as often anymore if I use a precise enough prompt. Now I focus on architecture rather than coding details, and I use Test Driven Development to get good tests and steer the AI more precisely.
From the speed angle, I’m way faster with AI than with manual coding, hands down, and that includes the setbacks, the occasional errors, and the code review. Using AI is a no-brainer.
From the job-satisfaction angle, I acknowledge that we have a problem. For many developers, AI coding is an identity crisis, because modelling the problem in our head and then formalising the solution on screen is what many of us identify as our job. I can see that in the comments and in discussions with excellent developers who refuse AI almost irrationally.
Luckily (?) for me, it’s been a while since I started to enjoy the outcome more than the coding itself. I still love code challenges and l33t coding, but in everyday work I want my solution in two minutes more than anything. When it comes to my pet projects, AI has such a multiplier effect that I can aim at something more ambitious than before, and if the cost is that I won’t write much code, so be it.
AI coding stands to manual coding as high-level languages such as Java stand to Assembler. Yes, with Assembler you have more control, but it’s with higher-level languages that you can achieve results.