Back in the days, what every software engineer knew to be a cheat was when you use the auto-complete feature of Dreamweaver and VS Code.
Everything is so much easier now as even people who cannot manually run a command to create a Next.js project can now ship an MVP.
You must have seen various vibe coded apps on Twitter; how someone built a website frontend solely with AI.
Innovations like this have sparked mixed feelings among both engineers and people who don’t code. I love to classify them into schools of thought:
- The Orthodox School, and
- The Liberal School
The Issues Orthodox Software Engineers Have with Vibe coding
The Orthodox School believes that vibe coding will have a net negative on the future of software engineering on a couple of basis.
The first is code quality. In all honesty, if you’ve read the code of some of these vibe coded apps, you’d wonder if they are merely a final-year project of a Computer Science undergrad.
The code structure can be so messed up, and the whole thing can be so unnecessarily verbose. Automatically, it’s a technical debt that will be a waiting problem for when the project later has thousands of users.
Now, imagine you are already getting used to a calorie calculator application that was working well before… But it suddenly starts to break months later when it has more users.
This is sadly an experience that awaits a good number of vibe coded applications.
The second concern is lack of taste. Because the creators are not engineering-inclined, they take in whatever the AI platforms give them.
Software engineering is a craft of taste; there has to be thoughtfulness and distincting appeals for every product.
For example, if you go over to the Linear website, you will immediately see how the landing page is not only beautiful, but well-laid out.
On the flip side, many vibe coded apps look the same and ultimately bland. Here is a litmus test, there will always be one funny purple color from someone.
Then the buttons and quite everything else will look like a copy-cat of something you’ve definitely seen before.
You’ll notice something is missing: taste.
The final concern the Orthodox school of thought has is on security. Indeed, it is a major concern.
There was a popular indie-vibe coder on Twitter who exposed his secret keys in production. Now, his application is not only at risk, but also the data of the users.
It gets worse when the application is a financial one, and users’ hard-earned funds are equally exposed to a huge risk that could have been avoided.
Yes, security audit companies secure code. But even at that, software engineers have some techniques to write quality code that won’t have low-hanging bugs.
The main issue here is many vibe coders don’t even know how to write secure code in the first place.
Why Liberal Engineers Believe Vibe coding will Take Software Engineers to the Next Level
The response to industrial innovations should never be resistance, and history has blessed us with numerous case studies on this.
At one point, only trained personnels with cameras could photograph. But today, everything is more flexible as you can slide out your iPhone from your pocket, snap pictures, and capture moments all by yourself without paying a dime to anybody.
Notwithstanding, does that mean there are no times you visit an actual photography studio to get shots?
Exactly, this is the reason some software engineers are rather more embracing to AI-assisted development. They also have a couple of arguments.
Their main argument is that vibe coding has opened the flood gate of software engineering.
If you’ve ever run a business before back in the days, you’d remember how the marketing team will want to tweak something on the website, and it will take days before the engineering team finally implement it.
We are sometimes in our own bubbles that we forget engineers are not the only stakeholders in any software product.
If anything, vibe coding has given every team in an organization agency to create what is not available or fix what is wrong at their pace.
More importantly, it gives solo builders the speed they need to go fast without always relying on devshops before they can lift a finger. They can even build an MVP to attract both investors and early users.
As a person, I believe we should even be happy so many people now get to [at least see] code as a result of vibe coding.
From there, they can now become curious about how everything works, and then become more abreast of code quality and security.
How to Vibe-code with Understanding
We’ve all agreed everyone should be able to build as quickly as they want, even if it’s with the help of AI. That said, my main argument is in babies not perpetually being babies.
I see vibe coding as an attracting force to quality engineering. It is perfectly fine to have an idea, hit Claude up to build it for you, and you have a sizable product.
What I clearly judge to be abnormal is when you are not curious to know how Claude came about what it created for you.
Once you don’t know the implicit development decisions AI code platforms took for you, you won’t know if it is subpar or how you can make it better.
That is the ratio behind the title of this essay: understandest what thou readest?
For instance, you should feel curious to learn more about the shadcn library it used, or how it used TypeScript.
You should take time to research each of these libraries and perhaps try to manually use them in a standalone project.
Now, see it as learning backwards.
You have a product; break it down to understand how every part works. This is a very interesting period in history when anyone can fast-track how fast they can know engineering.
Moving from Vibe Coding to AI-assisted Development
I’ll give you an instance of how I use AI as a software developer in my personal projects.
Perhaps I want to implement a feature in a smart contract, and am not so sure of how to go about it, then I can ask Cursor to build it out for me.
Then once it is done, I now get to learn how it was done, so I will have a tactile idea of how to implement such a feature manually in the future.
On some days too, when I already know what to build, I just give the AI-assistant a long explanation of what to build, frameworks to use, how to arrange the project, and deeper technical specifications.
So I just sit back while it writes and I correct whatever I’m not satisfied with.
This is the reason I believe AI-assisted development is the moat because you have absolute agency over whatever is going on.
Conversely, “vibe coding” as a mindset might be quite a net negative because it purports the idea that you don’t even have to know what is going on, just sit back, relax, and take whatever code you’re given.
Main Point
Here is the main point of this essay: vibe coding should lead to curiosity where you can use it to:
- Code faster, and
- Close knowledge gaps faster