· 5 min read · updated August 1, 2026

Vibe coding is not “let the AI write the code and call it a day”. It’s a way of working where you set the goals, the constraints and the feedback; an AI agent builds; you validate and correct. Done well, it speeds up prototypes and real features. Done badly, it leaves you with a pile of technical debt, security holes and code nobody understands.

In this post I’ll walk you through what it actually is, where it came from, what the real data says about its risks, and I’ll leave you a method with guardrails so you can use it seriously: control, testing and security.

What “vibe coding” is and where the term came from

The term was coined by Andrej Karpathy (OpenAI co-founder and former director of AI at Tesla) in February 2025. His original description: “you fully give in to the vibes, embrace exponentials, and forget that the code even exists”. In other words: you describe what you want in plain language, you accept the AI’s output with minimal review, and you focus on iterating toward results instead of on every line of code.

In practice, rather than writing every line yourself, you describe the outcome and let an AI assistant generate most of the work. You act as architect + QA + PM: you set the direction, review, test and iterate.

An important distinction: Simon Willison (creator of Datasette) argues that if you review and fully understand all of the code, that is NOT vibe coding: it’s just using an LLM as a writing assistant. Vibe coding means accepting a certain amount of black box.

Why it is taking off right now

When to use vibe coding (and when not to)

When to use it

When not to (or only with a lot of discipline)

The real numbers: documented risks

There are studies and hard numbers every IT professional should know about before adopting vibe coding:

Security

Productivity (the surprise)

Code quality

Real-world incidents

My method: vibe coding with guardrails

With the risks laid out, here’s a practical method for using vibe coding with discipline. The point isn’t to avoid it, it’s to use your head:

  1. Define the scope: “this is in / this is out”. Without a clear scope, the AI generates features nobody asked for.
  2. Define success criteria: concrete examples of the input and the output you expect.
  3. Iterate in short cycles: 10-20 minutes per cycle, tops. Review, test, iterate.
  4. Use version control from day one: Git from the very first prompt. Every iteration is a commit.
  5. Minimum tests: smoke tests at the very least. If the AI generated an API, hit it with curl. If it generated a form, submit it with junk data.
  6. Security review: secrets, permissions, inputs, dependencies. This part is not optional.

A starter prompt (copy/paste)

Act as a senior engineer.

Goal: [describe the feature in 1-2 lines]
Stack: [Next.js/Node/Python/Bash/etc]

Constraints:
- Do not hardcode secrets; use environment variables
- Validate all inputs
- Handle errors with clear messages
- Include at least one test per critical flow

Deliverables:
1) Code changes
2) List of files created/modified
3) Steps to run it locally
4) Security checklist

Post-generation review checklist

Conclusion

Vibe coding is a powerful tool if you use it with discipline: a speed multiplier, not a replacement for judgment. The data shows the risks are real (more vulnerabilities, more technical debt, and a false sense of productivity) but it also shows that with the right guardrails the payoff is genuine for prototypes, automations and internal tooling.

The winning combination: clear goals + short cycles + tests + a security review. If you aren’t willing to review what the AI generates, it isn’t vibe coding: it’s Russian roulette with your codebase.

Leave a Reply

Your email address will not be published. Required fields are marked *