A striking term has been doing the rounds lately: vibe coding. This term was introduced last February (2025) by Andrej Karpathy in a tweet on X. It describes using AI tools to write code purely by feel. You throw some prompts into thin air, copy and paste the result, and call it a working day. No validation, no testing, no understanding. Just vibes, because the code looks and feels good.
As someone with years of experience in data engineering, I make extensive use of AI tools such as ChatGPT from OpenAI and Claude Sonnet from Anthropic. These tools have become an important tool in my work. But let me be clear: this is not vibe coding.
Using AI in my daily work is a bit like being a carpenter who has access to the best power tools on the market.
Those tools do not design the foundation of the house I want to build. They do not determine what type of joint I use, how I balance form and function, or which material is most appropriate. That is the carpenter’s job, my job. The tools help me strengthen my skills, speed up the process and work more precisely. But they still require a practiced hand and a clear plan.
This is how I use AI.
AI helps me write code faster, validate, debug, migrate and refactor. It can spot security problems, suggest improvements, and even explain why something might not work. But I’m still the one who measures twice and saws once. I test the code. I run it. I tweak it. I make sure it fits within the larger structure of the solution or architecture.
Vibe coding, on the other hand, is like picking up an electric saw without knowing anything about construction, wood types or the direction of the grain. You might accidentally build something that stays upright … for a while. But the chances of it collapsing later are high.
Just as you wouldn’t trust a random pile of boards and nails as a dwelling house, you shouldn’t blindly trust code just because it comes from an AI model.
AI is thus a powerful assistant, not a substitute for skill and expertise.
True AI-assisted development is a skill, not a vibe
In vibe coding, you treat AI as a kind of automaton: put a prompt in, get a response back, and move on. It encourages a superficial understanding of the generated code. That may be fine for quick prototypes or first steps in programming, but it rarely scales well. Moreover, it is likely to introduce technical fault or subtle bugs that only come to light in production.
You wouldn’t trust (or pay) a human developer to say, either:
“I didn’t run the code, but it feels right.”
So why should that be allowed with AI?
That’s why AI-assisted development is a real skill. A skill that requires effective use of:
- Clear prompting to properly describe the problem and context
- Critical thinking to assess output as if it came from a junior dev
- Domain expertise to know when the output is crap (and it really happens)
- Iteration to keep refining prompts and code until it works and is correct
In fact, working with AI has made me a better engineer. It helps me work faster, sure, but also think more clearly about my code. It’s like pair-programming with an infinitely patient, always available colleague who doesn’t need coffee. But the key word is assistant, because I’m still at the wheel myself.
TL;DR
If you use AI to write code: don’t just rely on vibes. Validate. Test. Understand.
Good code comes not from feeling, but from effort, iteration and insight. Programming with AI changes the game, but only if you know how to deploy it properly.
– Jeroen