My Journey
Last year AI went from "neat experiment" to everywhere. Claude, Codex, Gemini all launched, and with each model the generated code got less obviously broken.
At the beginning of 2025 I was starting my journey with agents. Unfortunately or fortunately I missed the Cursor magic tab autocompletion wave, partly because I wasn't relying on it and partly because I didn't want to spend the money. I tried a couple of open source and local alternatives but nothing really impressed me.
Then came MCP and I started using Copilot more for work. I began with basic stuff, but it helped me dig into technologies I didn't know and get deeper into this AI world. I learned about agents, MCPs, LLMs. Built a few toy ones. It was interesting for a while.
One definitely boring thing was learning about prompts and how important they are. Now the world seems to depend on collections of markdown files trying to guide AI agents to do the right thing the right way. I really love markdown, so at least we don't have a new language to learn.
Mid-year I got access to Claude Code and in my opinion this changed everything. With Copilot I was mostly in control all the time and asked for help with side tasks, but with an agent this changed. I could ask for more and type less, but at the end I still have to review code and sometimes it's really bad code.
After so many years I feel that my way of programming changed. Before I spent time thinking and structuring how to code, trying to avoid clutter and keep the principles I learned, KISS, SOLID, and then coding. I tried many approaches: full theoretic TDD, starting with tests and following red-green, starting with diagrams or class structures first.
Nowadays I have a mix in my process and that works for me, but with an agent I had to rethink things a bit. Whenever I want to use an agent, usually for boring tasks, I need to spend time writing the first prompt. I know it's part of the process, but this is one of the main reasons AI sometimes makes programming feel boring, because instead of writing structured code I'm writing prose and hoping the AI gets it right. There's no compiler, no type checker, just vibes. There are so many ways a prompt can go wrong and make the process suck.
One example that happened more than once: I asked it to add tests and refactor something. It added tests, but the wrong kind. Mocks testing that other mocks got called, nothing testing the actual behavior. The refactor added helper functions that looked clean but didn't simplify anything. I deleted most of it and wrote the tests myself. Agents are good at plausible code, not so good at maintainable code.
There is also the setup burden. You spend time tuning and writing agent files, asking it to follow your coding style and guidelines, and this is never really finished because our way of coding changes over time.
After finishing my setup I was using agents all the time: small modifications, writing tests, refactoring, and mostly learning. I really like this part. The barrier to learn a new programming language, a new framework, a new OS concept, or just experiment with things decreased a lot for me. I can try things I thought I would never have time for.
In October it seemed that everything I was reading was AI related. Commuting, work, social networking, friends, blogs, everything. Except for my wife; she works in the arts and is not the most tech person, and that was honestly a breath of fresh air.
Because I was really into using AI and exploring things, I ended up helping with some discovery work and got overwhelmed. I had to take a break. I stopped researching, reading, anything AI related, and focused on other stuff.
That's when I started self-hosting and really liked it. I used AI to learn Proxmox faster since I already knew Linux, and I'm building some small tools to track media, import recipes to Mealie, things like that. AI helped me get up to speed faster, but I still want to actually understand what I'm doing, not just copy-paste solutions.
During my break I saw many developers going from ignoring AI to being excited and starting doing cool stuff with it. And as new models were launched at the end of the year, they were even better.
How I Feel About AI
I'm past the hype now. Here's what actually works for me:
Code reviews: AI really helps and speeds up code reviews. I'm not saying we should go for a world where we code with AI and another AI reviews the code, but as an additional part of the process it helps detect patterns and anomalies that are easy to miss. It catches obvious stuff like null checks, error handling, mechanical things. But it lacks context of the business and project patterns, and sometimes suggests things that don't make sense for your codebase.
Technical debt: AI is great at "make it work" and terrible at "make it maintainable". I think we're going to be drowning in technical debt from AI-generated cruft. With the speed we're gaining, this debt will probably grow faster than it's paid.
The basics:
- Learning new things
- Testing (this one has two sides: if you have a good test setup it helps, but I wouldn't rely on AI to build your first tests. It often misses specifics or writes tests that don't really matter.)
- Documentation is more accessible now
- Scripting (even though it tends to get verbose)
Not Good
Niche areas: Really specific areas in math, science, or biology are still hard. I think this will improve, but it needs more data and experts guiding the process. But I am no expert here.
Real time: AI is getting better than humans at searching the internet quickly, but the internet itself has a lot of bad information. We should probably question answers more than we do.
Security / Sandbox: This is a big concern. AI can speed up development, but expert review is still required. There are so many layers where software can be attacked now that CI processes should probably account for more security checks.
And locally, we're running more generated or third-party code than ever. There are already studies suggesting AI is increasing the attack surface by making it easier to generate insecure code. How do we protect our environments, including locally?
Simon Willison has been writing about this, and we need better sandboxing. Containers help, but they are not the full solution since they can still leak or be affected by kernel exploits.
Low quality code: The barrier to shipping code is now close to zero. That means a lot more garbage is getting pushed to production. Ideas can go from mind to screen very quickly, which is great, but it also means more low-quality code and more abandoned projects.
Programming landscape: Most companies are adding AI or being built on it, even when it doesn't make much sense. The market is being flooded with tools, and there are still open questions about how training data is collected and used. This is why I'm getting off GitHub. Microsoft's "Copilot Everything" is just data mining with a nice UI. They trained on everyone's code without asking, and now they're selling it back to us.
What About Tech Jobs
I don't know where this is headed.
Management talks about us becoming "AI supervisors" who review generated code, but I hope that's not it. I like programming because of the problem-solving, not reviewing machine output all day.
I feel our jobs will change, but I don't know to where. I just hope it's a place where I can still build things, not only write prompts and review diffs.
Final
This post ended up long and there's nothing really new here, just random thoughts about my journey and things I read and learned last year.
The AI trend will continue and the burden to keep up with the market and the environment is real.
For now, I'm using AI for the boring stuff: test boilerplate, documentation, quick scripts. But I'm still writing the actual logic myself. That's still the fun part.