🧠 The AI Coding Revolution: Enter Vibe and Vise Coding
If you’ve been keeping an eye on AI's role in software development, you might have heard the buzzwords vibe coding and vise coding floating around. But what are they exactly? And why should you care?
TL;DR: They’re fresh paradigms on how to harness AI to write code — not just any code, but good, maintainable, and testable code. Let’s unpack that journey.
🎧 Vibe Coding: Ride the AI Wave
Back in early 2025, Andrej Karpathy (yep, one of OpenAI's head honchos) dropped the term vibe coding on X (formerly Twitter). His take? Just let the AI flow, accept everything it spits out, and forget the usual rigorous code reviews.
“There is a new way of coding that I call 'vibe coding', where you give yourself over to the 'vibe' [...] and forget that the code even exists. [...] I always accept everything, I no longer read the diffs. [...] That's not too bad for throwaway weekend projects, but it's still quite amusing.”
Sounds cool, right? Fast and carefree coding — but hold your horses. This approach is great for quick experiments or weekend hacking, but it’s basically a recipe for disaster if you want your software to last beyond a weekend.
—
⚖️ Why Vibe Coding isn't Enough
At companies like doubleSlash, software isn’t just a weekend fling — it’s a long-term relationship. We're talking systems running for years or decades! That level of commitment demands maintainable, secure, and well-architected code.
So while vibe coding’s free spirit thrills the moment, it doesn’t hit the mark for serious production code. You want AI to be your coding partner — not the wild card that writes spaghetti nobody dares to touch.
🛠️ Vise Coding: Putting AI in a Craftsman’s Grip
Enter vise coding, a term coined by deep learning engineer David Farago. Imagine a craftsman’s vise holding a workpiece steady while only precise, controlled tools do their magic. That’s vibe coding’s more disciplined sibling.
“Vibe coding is neither maintainable nor sustainable, since technical debt accumulates rapidly with each iteration. [...] For production code and larger projects, we need a different approach with stronger guardrails for better code, test and documentation quality. I call this approach 'Vise Coding'. (…) This methodology uses a comprehensive process to constrain and control the coding agent's output.”
So what’s different?
- Small, incremental, high-quality changes: No AI free-for-all. Every tweak is manageable and easy to verify.
- Automatic test generation: AI creates tests alongside code, ensuring safety nets are in place.
- Comprehensive documentation: No black boxes. Code comes packaged with explanations.
- Human-in-the-loop review: Developers keep final say, vetting or improving AI output.
🔍 Real-World Play: Vise Coding Dojo
Curious how this looks in action? Stefan Waldmann from doubleSlash tried it in a Coding Dojo using Cursor paired with the Claude Sonnet 4 model.
They picked a simple, classic coding kata — the String Calculator — meant to practice Test-Driven Development (TDD). The twist? Each step had to be approached in sequence, with the AI only doing what was explicitly asked.
Challenges faced:
- AI initially took too much initiative, writing functional code and tests at the same time — a no-no in strict TDD.
- Since the kata is well-known, the AI sometimes jumped ahead, implementing future steps prematurely.
How they tamed the AI:
- Used AI-generated prompt rules to insist on tests first, then implementation.
- Added prompts to ignore known kata sequences unless explicitly instructed.
Result? A smooth dance of AI following precise prompts, generating tests first, then code — step by step.
🛠️ Refactoring with AI: Because Perfection Is Iterative
When chunks of code turned into a long, unwieldy method, the AI pitched in with ideas for refactoring: splitting methods, clearer naming, and more.
They picked one improvement at a time (remember: small, verifyable) and iterated with prompts — basically commanding the AI like a skilled co-pilot.
They also mixed in their own human insights, like converting a data class into a Java record for clarity.
By the end, voilà: maintainable, well-structured code generated entirely by AI, done faster than previous hand-coded dojos.
🚀 Real Customer Projects
Stefan then took vise coding out for a spin in live projects — mixing IntelliJ with Cursor:
- Seamless switching between IDE and AI assistant.
- AI aced cloning classes, generating test cases, and applying changes swiftly.
- Some hiccups like duplicated helper methods, but can be fixed with clear instructions to the AI.
It’s a promising workflow that blends human expertise with AI speed and precision.
💡 The Takeaway: Humans Still Hold the Reins
AI coding isn’t magical. It’s delegation — smart delegation, but delegation nonetheless. The clearer you specify your wishes, the better the AI chef will cook.
And guess what? The all-important "human in the loop" isn’t going anywhere anytime soon. You still need skilled devs for QA, architecture judgment, and to set precise goals for the AI.
The role of developers will shift from typing lines of code to crafting prompts, maintaining AI rules, and ensuring high-quality software delivery.
📌 Final Thoughts
- Pure vibe coding is fun but risky for production systems.
- Vise coding introduces the control and guardrails vital for sustainable software.
- AI tools like Cursor + Claude Sonnet 4 make this practical, accelerating development.
- Close collaboration between human devs and AI is the winning formula.
So, if you’re looking to future-proof your software development workflow, tying the AI vibe to a vise might just be your best bet. After all, maintainable code is the real flex — even in a world where AI writes the first draft.
Written by Stefan Waldmann, Senior Software Engineer at doubleSlash, who’s been pushing the boundaries of AI-assisted coding (and still drinks plenty of coffee). ☕