
Not All Who Wander Are Lost, Only Those Vibe Coding — My Vibe Coding Rant, LOTR Style
Last Updated on April 15, 2025 by Editorial Team
Author(s): ravindu somawansa
Originally published on Towards AI.
Vibe Coding is the next big keyword, along with Agents and AI. When reading about it, it is mostly about people who’ve never written a single line of code and then putting, in matter of days, an application in production.
These kind of posts always existed, but now this directly affect all of us, people who write code. Vibe coding is little by little killing us from the inside until we become completely lost.

There and Back Again: A Tale of Vibe Coding
Before officially beginning my rant on Vide Coding, I should at least explain it.
The terme Vibe Coding was first coined by OpenAI co-founder Andrej Karpathy in February 2025. In a series of tweets, he talked about his impression of writing code with LLMs. Here’s what he has written:
[Write code by simply] “seeing stuff, saying stuff, running stuff, and copy-pasting stuff”
“It mostly works. I call this vibe coding”
Honestly, anyone who developed something with a LLM would agree with this, even more on the “mostly”.
But now, Vibe Coding is more akin to people letting their AI tools develop stuff for them. If you search Vice Coding, you will find stories of people who never written a single line of code but still pushed their app on production.
But this should be good right ? People, who are not into tech, can create and share their own apps in matter of days. This is an incredible feat.
The problem is that, like everything fast and flashy, there are a lot of collateral damages and the first one are the software engineers.
One Does Not Simply Deploy into Production

Let’s take the previous example. It is the the story of a guy that used Claude Desktop to put an app in production. He had never written a line of code before but in a few months, pushed his dream app into production and shared it with the world on all social networks.
He liked Open Source (who does not) and decided to share his code too. Few days later, he got a comment from a very nice guy who told him he left his database keys hardcoded and that anyone could access his users personal informations…
This looks obvious to any of us software engineer but this is absolutely not normal for others. And this is only the first of an infinite number of things that can go wrong:
- 🧑💻 The older-than-Earth leakage of user data because the admin accesses is always admin/admin.
- 🔐 The classic hardcoded database credentials visible in public repo.
- 💸 The genius AWS account hijacked due to no MFA — ends up with a $50k bill.
- 📉 The no-frills no version control — loses everything in a single misclick.
- 🔑 API keys committed to GitHub — because it is good to share.
- 🚀 Directly pushed into production — because who needs dev/staging environments, right?
I did not even talk about purely software problems like these:
- 📦 Loading the entire database in memory (if there IS a database)
- 🧯 No error handling — try-catch? Never heard!
- 🔁 Repeatedly calling the same API in a loop — EVERY SINGLE iteration.
- 🐍 No virtual environment — dependency hell, are you there ?
I did not even talk about CI/CD, monitoring load balancing, scaling, performance, deployment, and many many other things.
Deploying in production is like crossing the Mordor with your one ring, the new release to fix them all. You’re battling unknown forces — downtime demons, rollback dragons, and the ever-present eye of the user. It’s not for the faint of heart and even less for the Vibe Coder.
The Coder Is but a Vessel — Their Will Is Not Their Own

All the problems we talked about (and the infinite number of other problems) can be prevented by the AI system you are using. The thing is , there is already so much just to make a single app work.
But the moment you want to deploy and integrate it anywhere, then you will be in a world of pain because you need to take into consideration the whole ecosystem (where it will be deployed, to whom, how, what, why).
An LLM can give you solutions for all of this but only if you give it enough context and ask the good questions. Being able to ask good questions is an even bigger part of the job that just dumping thousand of lines of code.
To ask questions means that you know that there is something that you don’t know which is huge, really huge. The more you become an expert in a field, the more you think you have a lot to learn. Knowing when you do not know, asking questions and getting better is the soul of a software engineer (or any other role where you need to be an expert). And it is precisely that that we are destroying.
When someone is Vibe Coding, he is letting himself being completely guided by the tool. You do not check if it is correct, if it is too complex or even if it correctly works or barely. You just copy-paste until the thing works. Did you understand everything that has happened ? No because you were letting the LLM work for yourself and chilling.
It is like using Google maps to go from one destination to another. The more you use it, the less you will learn the roads you are using and the less you will be able to do without. The good thing is that, most of the time, you do not care about how to go to someplace and you known precisely the address.
Bad thing is, with software engineering, you know very vaguely where you want to go (which country). By asking good questions and with experience, you will be able to pinpoint exactly where you want to go. If you let Vibe Coding get you there, you are just wandering from place to place until you find a good enough location (and hope that you did not lost either your car, your life, your insanity or your wallet).
And this is the problem with Vibe Coding: you are just on autopilot, you are not learning things. If you are a software engineer, this is worse because you are literally unlearning how to think and code.
Wielding the Flame of UDÛN Without Falling to the Shadow

There are lots of tool based on Agentic to help you code now. You have chat systems (Claude, ChatGPT, OpenWebUI, Perplexity, LeChat, …) and the coding tool (Cursor, WindSurf, Github Copilot, …). I won’t talk about how they are working but the danger stays the same. It is far too easy to stop thinking and let it work your you.
At the same time, coding is evolving. In the same way that we do not use Assembler anymore and are using higher level coding (Python, TypeScript, Rust, Go, …), we are also at a crossroad of evolution where we will jump at another step of abstraction. Maybe we will not write code and functions anymore.
But having a clear idea of what you want, how to do it, how to manage it and how it will be used will not change. This is only possible if you know how your own code works. And it is not by just reviewing what’s been done that you will know.
I’m not talking about all this lightly. Literally, my job is to build Agent based application (I’m an AI Engineer).
I have ChatGPT and WindSurf for my own project and Gemini and Github Copilot for my work. I used OpenWebUI with DeepSeek-R1 through OpenRouter, Claude Desktop and even connected my VSCode plugins to Sonnet 3.5 on AWS using a proxy server.
And I’m guilty of doing my fair share of Vibe Coding. I have generated tens of thousands of lines of code on my projects, leaving everything to LLMs, just to use 5x more time understanding the results and deleting everything because it was complete nonsense.
So you need to use it in a way where you are mindful of what you are doing. Anyone can have its own way of working but here’s what works for me:
- 🧠 Code Base Deep Dive : First I use the chat to really deep dive in the code base and thoroughly understand it. This is where LLMs shine the most because you can easily understand any complicated paradigm and use it immediately (Monads, you are not my match anymore!).
- 🗺️ Planning: Then I ask for a plan on how to implement my feature/bug. I iterate on the plan until it has the perfect tradeoff between features, simplicity and robustness.
- 🛠️ Low Value Auto Coding: I let the LLM handle the low value code and the global structure of the code. I try to do the modification in small increments because it ca become a mess very fast.
- 🎯 Guided Coding on High Value Code: For the high value code, I write the code myself but with a lot of question/answer with the AI tools. This also helps me keep my coding skills.
- 🔍 Final Code Review: I launch a final review of the code in the AI tools. To be sure the code is sound and I did not create regression.
These are just practices that work for me right now, not something universal. The idea behind is that no code that I don’t fully understand goes out of my computer.
“I shall wield the dark force without succumbing to it. Like the Rangers of old, I walk the twilight path — neither fully light, nor wholly dark.”
Thus Ends This Tale
“And so, the tale finds its end — but not without a final lesson.”
AI tools are incredible but let’s not cheapen ourselves because of it. We’re not monkeys smashing keyboards but expert craftsmen with this new Fantasy-like power called AI.
👉 Thanks for sticking around to the end of my little rant — hope it gave you a laugh or two 😂. If you enjoyed it, feel free to drop a clap (or a few).
And if you’re into AI, coding, or just like these kind of post, you can follow me here on Medium or connect with me on LinkedIn!
Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.
Published via Towards AI
Take our 90+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!
Towards AI has published Building LLMs for Production—our 470+ page guide to mastering LLMs with practical projects and expert insights!

Discover Your Dream AI Career at Towards AI Jobs
Towards AI has built a jobs board tailored specifically to Machine Learning and Data Science Jobs and Skills. Our software searches for live AI jobs each hour, labels and categorises them and makes them easily searchable. Explore over 40,000 live jobs today with Towards AI Jobs!
Note: Content contains the views of the contributing authors and not Towards AI.