Skip to content

The Danger of Vibe Coding: When AI Outpaces Understanding

AI has become one of the most powerful tools available to developers, analysts, engineers, salespeople, and technical professionals.

It can write code, troubleshoot errors, explain unfamiliar systems, generate SQL queries, design APIs, create documentation, research possible solutions, and turn an idea into a working prototype in minutes.

That is incredibly useful.

It is also incredibly easy to misuse.

The growing practice commonly called “vibe coding”—describing what you want to an AI model, running whatever it produces, and repeatedly asking it to fix problems until something appears to work—is one example of a much larger problem.

AI can create an illusion of competence that is potentially more dangerous than simply not knowing the answer.

The problem is not AI.

The problem is using AI to operate beyond your ability to understand, validate, and take responsibility for what it produces.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Why I'm Writing This

Part of the reason I'm writing this is because I've recently had a few partners approach me about projects they are considering in order to solve a customer's problem or help close a sale.

In several of those conversations, the idea of using AI or “vibe coding” to quickly build the missing piece has come up.

And I completely understand the appeal.

A customer needs System A to communicate with System B. There isn't an existing integration that does exactly what they need. Traditionally, that might mean hiring a developer, building and hosting middleware, involving multiple technical teams, or telling the customer that the functionality simply isn't available today.

Now you can describe the problem to an AI model and, within minutes, it may start producing code that appears to solve it.

Suddenly a project that sounded expensive and complicated looks like something you might knock out over a weekend.

That is an incredible capability.

It is also exactly why I think this conversation is important.

The barrier to building something has dropped dramatically.

The barrier to building something reliable, secure, maintainable, scalable, and supportable has not disappeared with it.

My concern isn't that partners are exploring AI. They absolutely should be. I use AI extensively myself, including for technical work.

My concern is the point where:

“AI might help us build this.”

quietly becomes:

“We can provide this to the customer.”

Those are two very different statements.

A proof of concept that successfully moves data between two APIs on your laptop is not automatically a production integration.

A script that worked ten times during testing isn't automatically something you want processing thousands of customer transactions.

And an AI-generated solution that gets a customer across the finish line today can very easily become tomorrow's support problem.

This is particularly important in sales because there is naturally pressure to find a way to say yes.

AI is extremely good at finding a plausible path to yes.

But plausible isn't the same as proven.

Possible isn't the same as supportable.

And “I got it working” is very different from “I understand it well enough to be responsible for it when it stops working.”

That's the distinction I want to explore here.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AI Is an Accelerator, Not Expertise

In knowledgeable hands, AI can dramatically increase productivity.

A developer who understands APIs can use AI to generate boilerplate integration code instead of manually writing hundreds of repetitive lines.

A database engineer can use it to draft a complex SQL query and then review the joins, filters, types, and execution plan.

A systems administrator can use it to generate a PowerShell script while understanding exactly what that script will change.

A salesperson who understands the product can use AI to research options, better understand a customer's request, or brainstorm possible solutions without treating those suggestions as promises that can immediately be made to a customer.

The AI saves time because the person using it already understands the destination.

More importantly, they can recognize when the AI is wrong.

That distinction matters.

AI is very good at producing answers that look correct.

Code can be cleanly formatted, use sensible variable names, contain helpful comments, and follow familiar programming patterns while still being fundamentally wrong.

The same thing happens outside of code.

A proposed workflow can sound perfectly logical while ignoring a limitation of the product.

An integration architecture can look simple on paper while requiring infrastructure nobody accounted for.

A sales strategy can sound convincing while creating an operational nightmare after the contract is signed.

An experienced person may look at the result and immediately notice the problem.

An inexperienced person may see a professional-looking answer and assume the problem has been solved.

That is where AI becomes dangerous.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- “It Works”  Is Not the Same as “It Is Correct”

One of the biggest traps in vibe coding is treating successful execution as proof of correctness.

The application starts.

The API returns 200 OK.

The SQL query produces rows.

The button does what it was supposed to do.

Ship it.

Except software can function perfectly under the exact conditions used during testing while being completely unprepared for everything else.

What happens when an API times out?

What happens when authentication expires?

What happens when two requests arrive simultaneously?

What happens when the database contains a NULL where you assumed it never would?

What happens when somebody submits malformed input?

What happens when an external API returns a response you were not expecting?

What happens when the application restarts halfway through a transaction?

What happens when the same request gets submitted twice?

What happens when someone intentionally tries to exploit it?

Those questions are not solved simply because the happy-path test worked.

Experienced developers spend an enormous amount of time thinking about what happens when things do not work.

AI can help implement those protections, but only if someone knows they need to exist in the first place.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------You Don't Know What You Don't Know

This is arguably the largest danger of using AI without subject-matter knowledge.

Beginners naturally ask questions based on what they know.

The problem is that many of the most important questions require knowing that a problem exists in the first place.

Someone building their first API integration might think:

I need to send this information from System A to System B.

AI can absolutely generate code that does that.

But an experienced developer is thinking about considerably more:

How are credentials stored?

How are they rotated?

What happens when the destination is unavailable?

Should requests be retried?

Which failures should not be retried?

Could a retry create a duplicate transaction?

Is the operation idempotent?

How are requests logged?

Could those logs expose credentials or customer data?

How are API limits handled?

What validates incoming data?

How are dependencies patched?

How will the service be monitored?

Who gets notified when it fails at 2:00 AM?

None of those problems are necessarily visible while building the initial prototype.

And AI cannot reliably compensate for questions that were never asked.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------The Same Problem Exists in Sales

This problem is not limited to developers.

In some ways, AI can create an even more dangerous situation when it is used during the sales process without sufficient technical or product knowledge.

Imagine a customer has a specific requirement that the existing product does not handle cleanly.

The salesperson asks AI:

How could we solve this for the customer?

AI produces an impressive answer.

Maybe it suggests connecting two APIs.

Maybe it proposes a small middleware application.

Maybe it suggests a scheduled script, an automation platform, a database synchronization process, or a custom workflow.

On paper, it sounds easy.

Maybe AI even generates a proof of concept in an afternoon.

Suddenly, something that would previously have required a conversation with development, technical support, implementation, or operations becomes:

“Yeah, we can do that.”

And that can help close the sale.

The problem begins after the sale closes.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Day One: It Works. Day Two: It Owns You.

This is where the slippery slope becomes particularly dangerous.

A salesperson wants to solve a customer's problem quickly, so they use AI to create a small utility.

It works.

The customer loves it.

The deal closes.

Everyone wins.

Until tomorrow.

Now the customer depends on it.

Then an API changes.

A credential expires.

The customer's volume increases tenfold.

The machine running the script reboots.

The customer changes an account setting.

An unexpected character appears in an address.

The external service starts returning 429 rate-limit responses.

A dependency gets updated.

The script silently stops processing records.

Nobody realizes it stopped until three days later.

What started as:

“I made this quick thing for the customer.”

has become:

“Who supports this?”

And the answer is often:

“The person who made it.”

Except that person may not actually understand the application well enough to support it.

AI wrote most of it.

There may be no monitoring, documentation, testing environment, deployment process, backup strategy, version control, security review, or recovery procedure.

The prototype became production because the customer started relying on it.

That transition can happen almost invisibly.

Day one, the tool closes the sale.

Day two, the tool becomes an unsupported product your company never intended to sell.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------A Technical Solution Is Also a Business Commitment

This is something AI cannot decide for an organization.

Just because something can be built does not mean it should be offered.

There are questions beyond whether the code works:

Who owns this solution?

Who supports it?

Who maintains it six months from now?

Who is responsible when it fails?

Was development aware it was being offered?

Does technical support know how it works?

Is the customer expecting this to be an officially supported feature?

What happens if the employee who created it leaves?

Is the company now implicitly committed to maintaining it?

Can this solution be offered to the next customer who asks?

If not, why are we building it for this one?

Those are product and business questions, not coding questions.

AI might tell you that connecting two systems with a lightweight middleware service is technically straightforward.

It may even be correct.

But “technically possible” and “something we should promise a customer” are entirely different standards.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AI Can Suggest a Sales Path. That Doesn't Make It the Right One.

The same caution applies when AI is being used for sales strategy itself.

AI can analyze a scenario and suggest how to position a product, how to overcome an objection, which feature might address a customer's problem, what technical workaround could bridge a gap, what implementation approach sounds easiest, or what argument might move a deal forward.

Those suggestions can be valuable.

But they are suggestions.

AI does not automatically understand every nuance of your product, your customer's environment, your support capabilities, your contractual obligations, your development roadmap, or the history behind why your organization does something a particular way.

It may identify the path that sounds easiest to sell.

That does not mean it identified the path that is easiest to deliver.

And it certainly does not mean it identified the path that is easiest to support for the next five years.

A solution should not become the recommended sales path simply because AI produced a convincing explanation for it.

Someone with actual subject-matter knowledge still needs to ask:

Is this really how our product works?

Is this supported?

Have we actually done this before?

What assumptions is this recommendation making?

What happens operationally after we sell it?

Who owns the solution once the customer is using it?

Are we solving the customer's problem, or are we creating three new problems to get around the first one?

AI can help answer those questions.

It should not be the reason nobody asks them.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------The Debugging Loop Can Make Things Worse

A common vibe-coding workflow looks something like this:

  1. Ask AI to build something.
  2. Run it.
  3. Receive an error.
  4. Paste the error into AI.
  5. Apply the suggested fix.
  6. Receive another error.
  7. Repeat until the error disappears.

Sometimes that works extremely well.

Sometimes it produces a Frankenstein application where every change fixes the immediate symptom while introducing another problem somewhere else.

This happens because debugging requires context.

An error message tells you what failed.

It does not necessarily tell you why the system reached that state.

AI may suggest disabling certificate verification because an HTTPS request is failing.

It may broaden permissions because an authorization error occurred.

It may remove validation because unexpected data caused an exception.

It may add increasingly aggressive retry logic because requests occasionally fail.

Each suggestion can make the immediate error disappear.

The application is now “working.”

It may also be substantially less secure and reliable than it was before.

Someone with sufficient technical knowledge recognizes when a proposed fix is actually a workaround—or when eliminating an error simply hides the underlying problem.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Security Is Where This Gets Particularly Dangerous

Security failures are especially concerning because insecure software often works perfectly.

Hardcoded credentials work.

API keys stored directly in source code work.

An application running as an administrator works.

A database account with unrestricted permissions works.

An endpoint without authentication works.

Disabling TLS verification works.

Accepting arbitrary user input works.

In fact, insecure solutions are frequently easier to build because security introduces deliberate restrictions.

Nothing about the application's normal behavior necessarily tells an inexperienced developer that something is wrong.

That means someone can vibe-code an application, test every visible feature, declare it successful, and deploy a system containing serious vulnerabilities.

The absence of an error message is not evidence of security.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AI Can Create Technical Debt at Incredible Speed

AI doesn't just allow people to write code faster.

It allows people to write bad code faster too.

Before generative AI, limited technical ability naturally limited how quickly someone could construct a complicated system.

AI removes much of that friction.

Someone can now generate thousands of lines of code across databases, APIs, authentication systems, front ends, background services, and infrastructure without fully understanding how those components interact.

That feels like extraordinary progress—until something breaks.

Then the organization owns a system nobody actually understands.

At that point, fixing it can take longer than building it properly would have taken in the first place.

And in a customer-facing environment, technical debt becomes something worse:

an operational obligation.

The customer doesn't care that the solution started as an AI-generated experiment.

They care that yesterday it processed their orders and today it doesn't.

Once a customer depends on something, the distinction between “prototype,” “temporary workaround,” and “product” becomes considerably less meaningful to them.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------This Does Not Mean You Need to Be an Expert at Everything

There is an opposite extreme that is equally unhelpful: the idea that you should never use AI for something unless you could have written every line yourself.

That defeats much of the purpose.

AI is valuable precisely because it lets knowledgeable people move into adjacent areas more quickly.

A database professional does not need to memorize every Python library before asking AI to help automate a database workflow.

A backend developer does not need to remember every CSS property before using AI to build an internal interface.

A salesperson does not need to be a software engineer before using AI to better understand an integration.

What matters is having enough foundational knowledge to reason about what is happening—and knowing when you have reached the boundary of your expertise.

You should understand the architecture.

You should understand the data.

You should understand the security implications.

You should understand the failure modes.

And when you don't understand something important, you should recognize that gap and involve someone who does rather than allowing AI-generated confidence to fill it.

There is a massive difference between:

“I don't remember the syntax for doing this.”

and:

“I don't understand what this code is doing.”

There is an equally important difference between:

“AI helped me understand a possible solution.”

and:

“AI said we can do it, so I told the customer we can.”

AI is exceptionally useful for the first statement in both cases.

The second is where trouble begins.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------The Best AI Users Challenge the AI

Competent AI-assisted development is not:

Build this for me.

It is much closer to:

Build this approach. Here are the constraints. Explain the tradeoffs. Show me the failure modes. Don't assume the API response is valid. Add appropriate error handling. Explain anything you are uncertain about. Now I am going to review and test what you produced.

The same principle applies outside development.

Good users push back.

They tell the AI when an assumption is incorrect.

They compare its answer against documentation.

They verify product capabilities.

They involve the people responsible for supporting the proposed solution.

They test edge cases.

They ask why a particular approach was chosen.

They ask what could go wrong.

They understand that AI can confidently invent functions, misunderstand documentation, overlook requirements, and propose solutions that are technically valid but completely inappropriate for the environment where they will actually run.

The expertise has not disappeared.

The expertise has moved from producing every answer manually to directing, reviewing, testing, and validating the work.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AI Makes Competence More Valuable, Not Less

There is a strange assumption that because AI can generate code or provide detailed technical answers, technical knowledge becomes less important.

In many situations, the opposite is true.

Give a powerful tool to someone who understands the underlying subject and you multiply their capabilities.

Give the same tool to someone who cannot evaluate its output and you multiply their ability to make mistakes.

The same principle applies well beyond programming.

AI can help someone analyze financial data, but they still need to understand accounting.

It can help draft legal language, but that doesn't make the user an attorney.

It can generate database queries, but that doesn't mean the user understands what a poorly constructed query might do to production data.

It can generate infrastructure configurations, but that doesn't mean the resulting infrastructure is secure.

And it can suggest a clever solution to close a sale, but that doesn't mean the solution should ever have been promised to the customer.

AI lowers the barrier to doing things.

It does not automatically lower the barrier to understanding them.

Those are very different achievements.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Use AI to Extend Your Knowledge, Not Replace It

Vibe coding is fantastic for prototypes, experimentation, learning, internal utilities, and quickly proving that an idea is possible.

It becomes dangerous when a prototype quietly turns into production infrastructure and nobody involved understands what is actually underneath it.

The same applies to using AI in sales, operations, support, implementation, and decision-making.

Use it constantly.

Let it write the boring code.

Let it explain unfamiliar concepts.

Let it generate starting points.

Let it review your work.

Let it challenge your assumptions.

Let it automate repetitive tasks.

Let it help you research possible solutions.

Let it help you understand a customer's technical request.

But don't confuse the ability to generate a solution with the competence required to approve one.

And don't confuse:

“AI says this can be done.”

with:

“We should sell this.”

Maintain enough knowledge of the subject to know when something doesn't make sense—and enough humility to involve someone who does when you reach the edge of your expertise.

Because AI can generate an answer in seconds.

Understanding whether that answer is correct, secure, maintainable, supportable, scalable, and appropriate is still your responsibility.

The most dangerous phrase in AI-assisted work isn't:

“I don't know how to do this.”

That person at least knows where their knowledge ends.

The dangerous phrase is:

“It worked when I tried it, so I told the customer we can do it.”