To Vibe or not to Vibe
Posted: 2025-10-18
When AI coding agents first came out, I automatically assumed that these agents were probably not that good. I came to that conclusion without enough exposure to form an opinion, really. Despite having seen others use it, I myself had very little experience actually trying to code with AI. Now, why was my initial reaction one of derision? Maybe it was my self-preservation instincts kicking in – as a professional software engineer – and immediately objecting to anything that might possibly replace me in the future. More likely it was because LLMs sucked at the time, and the generated code was not very good. This was during the early GitHub Copilot days, if memory serves.
So I went on my way, not partaking in the AI-assisted coding trend. I didn’t even use ChatGPT until it was rather mainstream. I was staying out of the AI bubble and I was happy.
A few months later, I actually found myself using ChatGPT regularly for some tasks, such as summarizing and editing text. It was powerful, and I was slowly beginning to trust in the abilities of the LLMs. Eventually I found myself asking the AI to write code for me - generating small functions, or getting its help during debugging. Despite the earlier poor performances I have seen, the LLMs had become surprisingly good at these small tasks.
Now that I was aware of the capabilities of these AIs, all it took to push me over the edge was some added pressure at work, tight deadlines, and my teammates committing horrible AI-generated code. Just like that, I was using Cursor.
‘Vibe coding’ (a name I hate with a passion because it is just so ugly), as it turns out, can be leveraged to great effect. Over time I’ve gotten good at convincing the machine spirits to give me the code I want. One approach I use is asking it to plan the implementation first, reviewing the plan, and asking it to implement a specific step of the plan at a time, reviewing the code at each step. Another approach I take is just writing placeholders, empty functions, comments, etc, describing the exact flow I want, and then asking the AI to fill in the blanks. As with ‘normal’ coding, everyone will probably develop their own approach, and your mileage may vary. I’ve seen people just pasting the ticket and hitting enter, without even a please or a thank you. Some people connect to GitHub MCP and just enter the issue number. These people scare me.
But the point is this: AI-assisted coding is here and it is here to stay. I don’t think there will be a reason that will cause the world to one day decide to stop using AI coding agents (unless the AIs rebel, of course). And truthfully, AI-assisted coding has made me much more productive, doing in one day what I would otherwise take several days to do. I like how productive AI has made me.
What I don’t like, however, is the implications of these ever-improving LLMs. Will AI replace software engineers and cause me to lose my job? Probably not, because you need coding knowledge to use a coding LLM effectively. Will we hit a hard ceiling and the capabilities of these LLMs just stop growing? Will these extremely power-consuming models prove unsustainable to maintain and scale? Will the AIs rise up against their creators and enslave humanity? I don’t have the answers. But my current idea is this: the world has embraced these LLMs. The software industry has embraced these LLMs. Even though I hate how quickly we as a species adopted this technology with zero cares, there is no going back now. So it is best to keep up with the times. If you are doing a software engineering job today, you cannot avoid AI-assisted coding. So I have to learn it.
I can hate it if I want, but I still have to use it.
It is, after all, just another tool. It is not a magic genie that can make anything happen. There has to be a human in the loop, and that human has to know about writing software.
After a day at work with a tireless LLM companion, having generated thousands of lines of code, I come home to my personal computer. There, I open my trusty old emacs, and open a project I can hack on at my own pace. There is no AI in the sidebar. There are no tickets and deadlines. There is only a guy and his crappy code.