← All posts

AI assisted coding feels refreshing

I have a lot of ideas. I am driving my car to an Ikea and suddenly I think:

“Wait, there should be a pictionary with their silly names as words.”

A couple of years ago I would have thought about that, maybe sit down and create a skeleton project, just to abandon it due to no time, or just because I lost interest.
Today, I can do a quick MVP in a couple of hours and test if the idea is cool or boring. Maybe play with my family.
I just don’t have to code it myself and it feels awesome!

Coding things myself

Over the years of working in software development, or generally gaining experience in the field, I went through a couple of phases of coding. Those phases don’t have specific dates, they were just flowing one after another and are more of feelings I have, when thinking about the process in retrospective.

Phase 1. Coding is pretty hard

When I was starting my journey I needed to learn how to code at all. Like what the hell is a “class”, why that loop is not finishing, etc. The process of coding was thrilling, because every time I wanted to do something, I had to think how I would code it on the ground level. I needed to look up the basic things. I remember doing my first interface, it was mind blowing.
The Circle and Rectangle are both Shapes! Wow!
At that time the achievement was that the task that I had to do worked at all… I still remember some code I wrote at the university, that was simulating queues, with modes like FIFO, LIFO, etc. I was so proud it ran at all. And it crashed for like 40% of all runs. I still don’t know why…
The process of learning to code made writing the code thrilling, challenging and hard. But it was something exciting.

Phase 2. I can code

After some time, I was able to code decently in one object-oriented language. I knew what a class is, I knew (mostly) when I should use an interface. There was generally no challenge in writing conditions. But then I started wondering, how I should organize my code? Should this be in that class, or the other class? What style should I use?
I remember the disputes between me and my friends from my first job, if they prefer brackets in the same line as class/function name, or in the new line. From today’s perspective pointless stuff, but then it was important!
That led me to discover design patterns. And that in turn led me to start creating code that was maybe slightly more maintainable.
Coding as a process of putting the logic into the editor was still enjoyable and challenging, but I also enjoyed organizing my projects, debating with other colleagues about the structure. The process was still something exciting.

Phase 3. My code is clean and maintainable

I would be lying if I said that now my code is clean and maintainable. That’s always debatable and I am my biggest critic. There would always be a developer that would see the code and decide it is too hard to maintain and we should just do a rewrite. That developer could be me in like 2 years.
But generally that phase means, that I know patterns, standards, I no longer call function with some stupid and funny names (long live the ultimateGetter3000). I can call my code good enough.
But in that phase I started to think more of a bigger picture. At this point I was already a backend developer for some time, so business side of things was interesting to me.
The overall design of a system was a topic that I could’ve improved on. How to model a business logic in a software, so we are both maintainable and open for changes. It was a topic that was touching the subject of coding, but coding was less and less a challenge and more like a task. I just needed to write down whatever we, as a team, discovered on the business meetings.
Don’t get me wrong. There were still some things that were challenging when implementing functionalities. But the coding part started being less and less exciting. It was just a means to get things done.

Phase 4. I want to understand business logic

This phase is where for the first time I didn’t use the word “code” in the title. I was no longer as interested in coding itself that much. I mean, I am still following development of languages I use. I am trying to learn new languages. I am still doing something for the first time. But that is not what I am thinking about the most.
I started to focus more on understanding and modeling the business logic rather than coding. I saw the challenge in software architecture and this was the stuff that was fun.
The coding part became the boring part, because I already knew what I wanted to achieve and I was capable of achieving that without any troubles. Of course there is always some space to improve on, but excitement about writing some code was very bleak.

How I feel today

I would compare it to driving a car with a manual. At first it is pretty challenging. The process of just starting to drive is a big task; don’t even start about changing a gear.
After a while you get better and with the progress you don’t have to think about driving. It’s just pure instincts. You can listen to a podcast, keep a conversation etc. Driving is mostly a day to day chore you have to do to go to that swedish store or to travel to the office.
Of course you can go to a track and you will have fun, but in a normal day to day life it’s a basic thing to do, no emotions.
The same way I feel about coding today. It is a basic thing I have to go through to get things done. The exciting part is somewhere else.

Coding pet projects

As I said, I have a lot of ideas. Most of the time the idea is simple, but I am just too tired of coding that myself after 8 hours of coding commercially. For me the coding part started being a chore. There are times that I have the urge that pushes me to code the idea I have, or I am excited to try some new language, but mostly I just leave it in my mind.
I am also a bit sick with a disease called TBW - “The Best Way”. When I start coding my small projects, I tend to fall into the rabbit hole of selecting the right way of doing things. I start to think commercially. But I don’t have to in all of my pet projects. Actually I don’t care about the code’s style that much, I want the thing to work. But the disease is too powerful.
And all of a sudden the AI boom came in. Now I have a tool in my hands that can just do the boring part for me. It can choose whatever library it wants. I will review that quickly and probably say “fair enough” *shrug*.
It just feels so refreshing having a working idea in a couple of hours. Since I started more heavily using the AI agents I am somewhat testing like 70-80% of ideas I have. Previously it was like 2% at best.
It gives me more enjoyment out of the side projects. The thrill and excitement is back!
In the past month I made:

  • Decompiling and modernizing an old j2me game from 2005, so it was fully playable in the browser. (Sadly I accidentally deleted the project… but nothing stops me from doing it again!)
  • The swedish store pictionary I mentioned at the beginning
  • A script that every month collects all the fees and sends them via an email to a renter
  • This site
  • SponsorBlock addon to NewPipe

And there are still more to come.

The elephant in the room

There is a lot of discussion about AI usage in general. I was also not the biggest fan of the vibecoding style. And actually I still am not. At work I am using AI less and I am very strict about reviewing every line that it produced. Because commercially I feel more responsible about maintainability, I have to know how my codebase looks like and what it does.
In my small projects I generally don’t care that much. Most of them are for me and me only. I would probably create an ugly codebase myself if I had to implement it on my own. But the bargain now rests on the AI’s side. I am just pointing it into the direction I want.
The other benefit is usage of tools I am not very familiar with. Like in the example of NewPipe. I know I am capable of learning the codebase, I was writing apps for Android a couple of years ago, but I don’t want to. I just wanted a quick addon. The entry point is much lower now. And that is exciting.
A feeling that I was missing for some time.