I would add the following case to the list of "Great Use Cases" of vibe coding:
"Working with legacy chaotic applications: AI can explain the legacy hard-to-understand code, suggest refactoring to reduce coupling, and improve readability and testability."
Yeah, you make an excellent point about legacy applications being a great use case for AI assistance. I've definitely found this useful when migrating older codebases to a newer version or different stack.
Working with older, complex codebases can be challenging, and AI tools can help explain unfamiliar code, suggest improvements for readability, and recommend refactoring approaches to reduce coupling.
I'm glad you appreciated that the article recognized where vibe coding excels! Understanding both the strengths and limitations of AI-assisted development is crucial for using these tools effectively.
Agree, I'm a strong proponent that control is much more important than the speed in the long-distance running. But vibe coding gives a whole new perspective for building prototypes.
Yep! You highlight an important balance - control vs. speed. For prototyping, the rapid iteration that AI assistance enables can be transformative, letting you explore concepts quickly before committing to implementation details.
"For all the hype, vibe coding has earned plenty of skepticism from veteran developers. The core critique: just because an AI can spit out code quickly doesn’t mean that code is any good." When veteran developers will finally realize that AI learned from their own imperfect code—it's like raising a child and then being upset that it doesn't behave exactly as the parent intended. It's like you, 20 years ago and shut up.
AI does indeed learn from existing code patterns - both good and bad. However, experienced developers' skepticism often comes from understanding the importance of context and domain knowledge that may not be captured in training data.
Love this! I’m Harrison, an ex fine dining industry line cook. My stack "The Secret Ingredient" adapts hit restaurant recipes (mostly NYC and L.A.) for easy home cooking.
With the introduction of Vibe Coding, the bar has been set higher. It's now essential that our UI, backend, and all features are rock solid, leaving no room for bugs or inconsistencies.
It is already, and it's here to stay. Let's digest that sooner rather than later.
> Many early vibe-coded projects look good on the surface (“it works, ship it!”) but hide a minefield of issues: no error handling, poor performance, questionable security practices, and logically brittle code. One might say such projects are built on sand.
My experience the past few weeks where I'm testing those AI-powered tools has been similar.
That said, that's like MOST projects out there already are! Reading this post, makes you think that most dev teams have solid codebases, well-tested, with great performance, comprehensive error-handling, etc.
Wait, what?
I have been consulting for 13 years, worked for 25+ companies. Most of the codebases ARE built on sand.
So if anything, AI generated code is already very close to the median codebase human developers produce.
> Rule 1: Always Review AI-Generated Code
I doubt most will do that, if any. It's the right way, sure. But we are "lazy", hence why we are vibe coding in the first place.
Build another AI to review the first AI will be the next attempt. Once inference gets cheaper and context window larger.
> Rule 2: Establish Coding Standards and Follow Them
Definitely a great way to ensure some quality. I'd go further and say use languages that do not allow mistakes. Like FP/ML languages. I got an Elm front-end, worked great, even though it wasn't the best code I've read. The downside: as developers we've been using so much the js and python scripting languages, so the LLMs now are trained on that code. They don't have enough typed language code to learn how to not write bad code. The irony...
> Rule 3: Use AI for Acceleration, Not Autopilot
Not necessarily. AI is excellent at thinking as well. Just do it separately. Don't use the same "chat" for thinking and implementing levels. Other than that, AI can be excellent at brainstorming or discussing high-level decisions. Given that you understand how to prompt it and give the context you have in mind. Bad questions will yield bad answers. Every time.
> We should also keep in perspective what truly matters in software engineering: solving user problems, creating reliable systems, and continuously learning. Vibe coding is a means to an end, not an end itself.
Exactly. The user or the manager DO NOT CARE one bit who wrote the code, as long as the product works and does the job. Let's make that clear.
In that sense, AI-written code will get more and more broadly used, and we know who will end up writing 99% of our code. (no, they will not wear hoodies).
So, get used to it, embrace it, understand it, and tame it's probabilistic power. Which is enormous.
Once you understand how LLMs work, it's an amazing tool, rather than a mindless eager junior dev.
Many of these thoughts resonate with me. Having worked on multiple projects, I have begun to develop a structured approach that can be scaled and replicated across different teams of engineers.
I still need to determine how this will integrate with legacy applications, but it has proven effective for some of the greenfield projects I've been involved in.
Many developers find similar challenges with the overhead of reviewing, fixing, and maintaining AI-generated code sometimes outweighing the initial productivity gains. This reinforces why responsible AI coding practices, as outlined in the article, are so important.
I would add the following case to the list of "Great Use Cases" of vibe coding:
"Working with legacy chaotic applications: AI can explain the legacy hard-to-understand code, suggest refactoring to reduce coupling, and improve readability and testability."
I personally find it helpful when working in an environment like the one described here: https://rakiabensassi.substack.com/p/a-tech-veterans-guide-to-surviving
Yeah, you make an excellent point about legacy applications being a great use case for AI assistance. I've definitely found this useful when migrating older codebases to a newer version or different stack.
Working with older, complex codebases can be challenging, and AI tools can help explain unfamiliar code, suggest improvements for readability, and recommend refactoring approaches to reduce coupling.
Hello, I am looking forward to the release of Vibe Coding the book. Thank you for writting it.
My question ahead of time is do you have a particular tool stack you ise for Vibe Coding that you can share with the public?
I am studying prpgramming and LM engineering and I have started using VS code and I am getting GitHub Copily setup and also eventually Claude 3.7.
Do you have any recommendations beyond this? Tysm!
"Vibe coding" shouldn’t mean cutting corners.
Quality should always lead the way.
I rushed here to post where Vibe Coding excels. Glad you made sure to mention that in the post!
I'm glad you appreciated that the article recognized where vibe coding excels! Understanding both the strengths and limitations of AI-assisted development is crucial for using these tools effectively.
Agree, I'm a strong proponent that control is much more important than the speed in the long-distance running. But vibe coding gives a whole new perspective for building prototypes.
Yep! You highlight an important balance - control vs. speed. For prototyping, the rapid iteration that AI assistance enables can be transformative, letting you explore concepts quickly before committing to implementation details.
Hello Addy,
I hope this communique finds you in a moment of stillness.
Have huge respect for your work and reflective pieces.
We’ve just opened the first door of something we’ve been quietly handcrafting for years—
A work not meant for everyone or mass-markets, but for reflection and memory.
Not designed to perform, but to endure.
It’s called The Silent Treasury.
A place where conciousness and judgment is kept like firewood: dry, sacred, and meant for long winters.
Where trust, vision, patience, resilience and self-stewardship are treated as capital—more rare, perhaps, than liquidity itself.
This first piece speaks to a quiet truth we’ve long sat with:
Why many modern PE, VC, Hedge, Alt funds, SPAC, and rollups fracture before they truly root.
And what it means to build something meant to be left, not merely exited.
It’s not short. Or viral.
But it’s a multi-sensory experience and built to last.
And, if it speaks to something you’ve always known but rarely seen heartily expressed,
then perhaps this work belongs in your world.
The publication link is enclosed, should you wish to experience it.
https://helloin.substack.com/p/built-to-be-left?r=5i8pez
Warmly,
The Silent Treasury
A vault where wisdom echoes in stillness, and eternity breathes.
"For all the hype, vibe coding has earned plenty of skepticism from veteran developers. The core critique: just because an AI can spit out code quickly doesn’t mean that code is any good." When veteran developers will finally realize that AI learned from their own imperfect code—it's like raising a child and then being upset that it doesn't behave exactly as the parent intended. It's like you, 20 years ago and shut up.
AI does indeed learn from existing code patterns - both good and bad. However, experienced developers' skepticism often comes from understanding the importance of context and domain knowledge that may not be captured in training data.
Don’t tell us, tell the companies that will be forcing it on us.
Love this! I’m Harrison, an ex fine dining industry line cook. My stack "The Secret Ingredient" adapts hit restaurant recipes (mostly NYC and L.A.) for easy home cooking.
check us out:
https://thesecretingredient.substack.com
With the introduction of Vibe Coding, the bar has been set higher. It's now essential that our UI, backend, and all features are rock solid, leaving no room for bugs or inconsistencies.
I prefer to promote Vibe Refactoring to my teammates :)
Similar approach to what the author explains in this article.
https://dawidmakowski.com/en/2025/04/vibe-coding-is-fun-but-vibe-refactoring-pays-the-bills/
So true! We can’t blame AI for killing jobs, if you are not doing your jobs. I support this approach. Success won’t be automatic, that’s so true.
> vibe responsibly
Definitely the best slogan here.
> AI-assisted coding can be a game-changer.
It is already, and it's here to stay. Let's digest that sooner rather than later.
> Many early vibe-coded projects look good on the surface (“it works, ship it!”) but hide a minefield of issues: no error handling, poor performance, questionable security practices, and logically brittle code. One might say such projects are built on sand.
My experience the past few weeks where I'm testing those AI-powered tools has been similar.
That said, that's like MOST projects out there already are! Reading this post, makes you think that most dev teams have solid codebases, well-tested, with great performance, comprehensive error-handling, etc.
Wait, what?
I have been consulting for 13 years, worked for 25+ companies. Most of the codebases ARE built on sand.
So if anything, AI generated code is already very close to the median codebase human developers produce.
> Rule 1: Always Review AI-Generated Code
I doubt most will do that, if any. It's the right way, sure. But we are "lazy", hence why we are vibe coding in the first place.
Build another AI to review the first AI will be the next attempt. Once inference gets cheaper and context window larger.
> Rule 2: Establish Coding Standards and Follow Them
Definitely a great way to ensure some quality. I'd go further and say use languages that do not allow mistakes. Like FP/ML languages. I got an Elm front-end, worked great, even though it wasn't the best code I've read. The downside: as developers we've been using so much the js and python scripting languages, so the LLMs now are trained on that code. They don't have enough typed language code to learn how to not write bad code. The irony...
> Rule 3: Use AI for Acceleration, Not Autopilot
Not necessarily. AI is excellent at thinking as well. Just do it separately. Don't use the same "chat" for thinking and implementing levels. Other than that, AI can be excellent at brainstorming or discussing high-level decisions. Given that you understand how to prompt it and give the context you have in mind. Bad questions will yield bad answers. Every time.
> We should also keep in perspective what truly matters in software engineering: solving user problems, creating reliable systems, and continuously learning. Vibe coding is a means to an end, not an end itself.
Exactly. The user or the manager DO NOT CARE one bit who wrote the code, as long as the product works and does the job. Let's make that clear.
In that sense, AI-written code will get more and more broadly used, and we know who will end up writing 99% of our code. (no, they will not wear hoodies).
So, get used to it, embrace it, understand it, and tame it's probabilistic power. Which is enormous.
Once you understand how LLMs work, it's an amazing tool, rather than a mindless eager junior dev.
It's all about the usage.
Thus, "vibe responsibly".
Many of these thoughts resonate with me. Having worked on multiple projects, I have begun to develop a structured approach that can be scaled and replicated across different teams of engineers.
I still need to determine how this will integrate with legacy applications, but it has proven effective for some of the greenfield projects I've been involved in.
https://pixels.place/p/vibe-coding-decoded-taming-the-chaos
"read and understand", "refactor", "strengthen types", ... it's like starting from a poor legacy codebase when you could be developing greenfield.
After six months of experimenting with code-generating AI, I reached the same conclusion: in the end, it actually became more of an overhead.
Many developers find similar challenges with the overhead of reviewing, fixing, and maintaining AI-generated code sometimes outweighing the initial productivity gains. This reinforces why responsible AI coding practices, as outlined in the article, are so important.