Bipolar disorder is a serious mental health condition. This article is not meant to mock or laugh at this disorder, but merely use its name and some of its symptoms to convey a message. Never self diagnose, or use AI tools to diagnose yourself, and instead get a medical help if you suspect you are having any mental health conditions.
Earlier this month I have received an invoice from Anthropic which ends at -0011, meaning it’s my eleventh month of paying Anthropic to use Claude.
A year ago, I was on the fence in regard to using any AI coding tools, and today I do the majority of my code development using Claude Code.
But despite seeing some joy in using these tools, I can’t shield myself from the negative impact they bring upon me as an individual, and upon as a society and a species.
Hence, I self diagnosed myself with what I call AIpolar disorder.
Below is my brain dump (or chain of thoughts) regarding AI in coding and learning.
Lately, I am enjoying coding, or shall I say building, way more than I used to. As a perfectionist, I always struggled to finish things. The closer I get to finishing the product, the bigger becomes the urge to “refactor everything” because now I know how the product looks like, and I could implement it better. My digital graveyard is filled with unfinished projects, ideas, and features.
I remember getting obsessed about architectural decisions, or what design patterns to use. Domain driven design? Object-oriented or procedural? ORM or plain SQL? But today? Today, none of it matters, because other than high level design direction, I don’t care much what patterns does Claude use. The result? I ship much more.
For example, some time ago I decided that I no longer want to self-host Plausible (=analytics tool that shows page views), and instead I want to make my own page views tool together with funnel analysis (i.e. not only show where people come from, but what sources convert and how much). Pre LLMs it would take me weeks of free evenings to get it done, and probably a handful more evening to fix and fine tune. With Claude, I was able to finish it in about an hour. In fact, this new analytics tool that Claude built, lives in an admin panel that was 100% vibe-coded. Before, for every problem I had, I needed to ssh to a server and query the database directly or try to construct data from multiple sources; and now Claude built me an admin panel where I can see the entire operations of one of my side-projects. And every time I need a new functionality, Claude adds it in a couple of minutes. I’d estimate the entire admin panel would take between 100 and 200 hours to build pre-AI. With limited evening time, it would take me a month or two to ship it, and just it, no new features in the meantime.
However, at the same time, I cringe every time I have to say “I shipped”. Did I really ship it? I didn’t write the code, I directed Claude at what I want to do, glanced over the result (it’s a private admin panel for my own use in the end), and hit “merge”. As a means to and end, who cares? But as a step in perfecting my craft, I clearly have failed.
There is a trap that people ignore, because we are so much focused on results. You can not get better without doing the work. Let me repeat it. You can not get better at something, without doing the hard work that comes with it. When I started to write this blog, I was trying to understand how do I get better at writing. I scoured the internet in a search for an answer, and even bookmarked some books on writing styles. And while, yes, you can get better at writing if you read more (anything, to just understand how to form coherent sentences and expand your vocabulary), the number one advice I found in order to get better at writing is to write more. As simple as that.
How do you get better at coding? You write more code, and ship more systems. No, reading code won’t make you better. So you can’t substitute writing code with “But I read the output of what my LLM generates”. It just doesn’t work this way. I even wrote a post long time ago on why you should write and how it helps you to learn.
And it applies everywhere. I tried to explore new hobbies and decided to build a wooden planter box. Before that, I never held a circular saw in my hands. I did as much research as a sane person should do: how to hold the saw, what are the common mistakes, what is kickback and how to avoid it, etc. My first cut? I got a kickback. My first planter box? I love it, but man it is crooked in some places. No matter how much I read, and how much I thought that I know, the moment I took the tool, I realized I know nothing. Same thing happens when LLMs write code for you. You just don’t learn anymore.
And this is a bigger problem with AI in general: when you have the answer at one prompt away, how do you keep learning?
Finding stuff, and doing research are skills as well.
I see people keep saying “but isn’t AI did to us what calculator did to the 1960s?”
And no, it’s not the same.
You need knowledge of math to use a calculator.
The calculator is merely a tool to help you do math, but it can’t answer you what is the circumference of a circle with radius r.
AI, on the other hand, can.
It’s 2πr, but if you don’t know the math behind it, you will never know why.
When we stopped doing physical work, and moved towards machine assisted or air-conditioned office work, we started to get weaker. Hence, we invented the gym. Now, instead of working for 8 hours moving stones from one side of the village to the other, you work for 8 hours smashing on a keyboard, and then spend an hour a day at the gym. If you are under 30 years old, you can disregard gym. At 35 and onwards, it becomes a mandatory activity. Perhaps the future is a mind gym? A place, or an activity, you go to or do in order to keep your mind sharp. It will be funny if LeetCode style questions will become our mind gym. Or maybe like an airlines pilots we will be cruising on autopilot during our 8 hours of work, and when we come home, we will have to accumulate simulator time when we write an OS kernel without any AI tools. The only question is, with productivity going up, prices going up, and hours worked going up, where we will find the time to go to the body gym, and mind gym, and whatever else gym we will need?
But hey, I must say, I am super excited being a software engineer at the moment. I do things I never imagined doing, and I can actually finish stuff on an occasional free evening. 2 years ago, most of my side-projects died simply because by the time I would have another free evening to come back to them, I would already lose any enthusiasm towards them. Or features at work, which would be postponed to eternity because we are understaffed and nobody cares about my stupid refactor. The amount of time you needed to invest in order to just write the boilerplate for a side-project, or a refactor you really wanted to do at work — could easily span over an entire week worth of working hours.
I can go from idea to deployed version in production in 30 minutes. Things in the past that would be too time-consuming or too risky to do because they involved a complicated refactor or a hefty QA process, Claude does them in under an hour.
I did an end-to-end test against the real API, simulated user interaction, rendered the HTML in browser, took a screenshot and verified that the thing is in there.
Brewed for 18s
― Claude, probably
Perhaps, after all, what I liked in software engineering was the end result? I mean, I loved to write code as well. I would get obsessed over good code. But I would also get frustrated and lose motivation when it takes you 3 weeks of free evening to render a set of pixels to the screen. And clearly, nobody outside the tech circle cares how the code looks, or what even is the code, so why should I care? I did my homework. I went to school, and invested my precious teenage years in learning computers, and programming, and Linux, and so on. Ruby or JavaScript or English, what difference does it make? LLMs make mistake? So do human developers. LLMs write spaghetti code? So do human developers. LLMs don’t care about performance or cyber-security? Give me a break. How many systems have been hacked because people stored plain text password. And luckily, I no longer use Slack, but last time I did, it was using 4GB of RAM, pre-AI.
At the same time, I come with 16 years of experience that I’ve accumulated through tears and production incidents. I wrote code in a handful of programming languages, running on dedicated servers, virtual machines, and personal computers, powering industries like hospitality, telecom, construction, fintech, and logistics. And I know, or at least tell myself that I do, how to write and engineer good software. But I got there as someone who had no experience, in a market where I was needed. Further in my career, I helped people who where in my younger shoes to elevate their career.
And in today’s world, where one engineer + Claude can do the work of a multiple engineers, how do you get new engineers? If nobody needs juniors, how do you get seniors? No one is here for eternity, people will quit or retire, but there are no replacements for them. Hell, forget juniors, even among seniors who want to work, there is no longer demand for them. So what’s next? Get high on results oriented development until agents will make us all obsolete?
Did you know that the first Matrix was designed to be a perfect human world? Where none suffered, where everyone would be happy. It was a disaster. No one would accept the program. Entire crops were lost. Some believed we lacked the programming language to describe your perfect world. But I believe that, as a species, human beings define their reality through suffering and misery. The perfect world was a dream that your primitive cerebrum kept trying to wake up from. Which is why the Matrix was redesigned to this: the peak of your civilization. I say your civilization, because as soon as we started thinking for you, it really became our civilization, which is of course what this is all about. Evolution, Morpheus, evolution. Like the dinosaur. Look out that window. You’ve had your time. The future is our world, Morpheus. The future is our time.
― Agent Smith, The Matrix (1999)
Maybe the future is natural language as a programming interface for the computer. Why do we need Ruby, JavaScript or Python, if LLMs will eventually write the perfect code from English (or whatever language you use to prompt)?
All this makes me think. I remember that I chose software engineering because of the, relatively, low monetary entry barrier. I wanted to choose robotics, but robotics meant buying microcontrollers, electronic components, motors, and keeping physical “clutter” of all of these. And I felt ashamed as a kid to ask my parents for money for this hobby. Software engineering was “cheap”. All you needed is a computer. You didn’t really need an IDE, and you could use a notepad (in fact, my first years I was using Notepad++, before PHPStorm by JetBrains was released in 2010).
And this brings me back to my eleventh invoice, and I just keep wondering, how many more will follow?
Once men turned their thinking over to machines in the hope that this would set them free. But that only permitted other men with machines to enslave them.
― Frank Herbert, Dune