The past months were hectic. Artificial Intelligence has changed my daily work faster than I expected. In just a few weeks, it went from a fun experiment to something that reshaped how I “write” software, how I think, and even how tired my brain feels at the end of the day. It brings cool new possibilities, but also new challenges. I thought I’d write some of it down for future reference.
Halfway April we ran experiments with paid professional accounts on both OpenAI’s Codex and Claude. We had quite some fun having Codex tell Claude what to do and the other way around, and analyzed coding style, and stared playing with Agents and Skills. After a few weeks we settled for Claude, as its coding style looks a bit more professional, and it feels like it can handle a bigger context, meaning it can handle bigger software projects. The culture shock was real, and I even had a brief moment where I hated it because it means that I would loose the part of the work I call “code poetry”, along the lines to what Bret Taylor describes.
Fast forward a few weeks, and here I am working with Claude while building an AI Harness that allows it to access not just the code, but also the systems around it. It can create pull requests, read comments on pull requests, run tests, parse output, and today I even have it monitoring a performance test, running multiple instances of the software, monitoring throughput, is analyzing different solutions. The speed at which I can now do several complex tasks at the same time is amazing, and that brings me to an interesting problem.
Last week was amazing. I discovered so many things that added even more leverage to the already impressive new capabilities that I noticed my brain was having a hard time keeping up. The constant stream of new and exciting possibilities gives me energy and ideas to improve quality, clean up old technical debt, improve the setup, add documentation, fix translations, add test coverage. At the same time, it feels like I have more room to think about the bigger picture. But last Friday I slept for 13 hours straight, and the following Monday my mind was still a bit foggy. That is pretty rare for me, especially on a Monday.
AI gives you lots of dopamine shots. It enables you to generate boilerplate code or entire project setups in mere minutes, just like we always dreamed of. But just like TikTok can trigger doomscrolling and brainrot, AI can get developers addicted to speed gains. It also gives vibe-coding managers the idea that “coding is simple”. It does something to your brain.
Cognitive Debt
One term that has started popping up here and there is “Cognitive Debt”. When you let AI build your software and then do not bother to really read it, you create cognitive debt. You no longer know what your software is doing, or how it is doing it. The moment a production bug shows up, you may be in for an interesting debugging session, whether AI assists you or not. Worse, you may have introduced security problems without even realizing it, effectively turning yourself into a “0-day producer” (I secretly like to use that term for vibe coding managers).
Vibe coding or AI Assisted Development?
My personal observation is that a lot of people, particularly outside my profession, are vibe coding. Designers vibe-code a phone app in a weekend. Managers vibe-code a proof of concept in a weekend. It brings back a feeling I had 30 years ago, when I showed an HTML mockup to a manager. When I told him I needed 40 hours to build the app, he looked at me in disbelief and said: “But I am already looking at it.”
It is increasingly difficult to explain to non-technical people that there is a big technical difference between a mockup or a vibe-coded app and a well-designed, production-ready piece of software. The latter has to keep working under load, survive bad input, handle edge cases, and not fall over when a bunch of malicious portscanners start hitting it, a tradition which seems to originate mostly from the East part of the printed world map.
Our development team likes to differentiate from this and we call our work “AI Assisted Development”. AI is seen as a very useful tool, which, combined with other useful tools can make a developer more efficient and powerful, but does not take away key developer responsibilities.
When using AI, I notice that I now type full sentences, sometimes almost at documentation level. In response AI generates a lot of text alongside a lot of code, and I need to read all of it. Not reading that output would degrade my work down into vibe coding, which is not only beneath me, but also incompatible with my responsibilities. This new way of working means typing and reading a lot more text while juggling multiple contexts at once.
My general opinion right now is that AI-assisted development is exciting, useful, and genuinely powerful. It has enabled me to do things on the side that would otherwise have taken many hours. The less interesting work like implementing internationalization, mapping objects to database tables, or implementing an API spec now often requires only a careful code review instead of a lot of typing. Even the code review itself is something I have partly outsourced: the most obvious mistakes are already filtered out by an Agent that I gave specific review instructions. Only after that cycle do I review the code myself, and by then it usually needs very little tweaking.
I wonder how I will look back at this article a few years from now. If you have thoughts on this, feel free to leave a comment.
Cheers!