Vibe Coding is dangerous
In 2025, “vibe coding”—a term coined by AI researcher Andrej Karpathy—has exploded in popularity. It describes an approach where developers (or often non-developers) prompt large language models (LLMs) with natural language “vibes,” iteratively refining until something works, frequently without deeply reviewing, understanding, or structuring the generated code. Tools like no-code/low-code AI platforms or UI-driven generators make this accessible, giving quick results and a rush of accomplishment.
Don’t get me wrong: Rapid prototyping and experimentation are valuable. For throwaway weekend projects or proofs-of-concept, vibe coding can spark ideas fast. But here’s the hard truth from someone who’s spent over three decades building production systems that companies depend on: Vibe coding is dangerous for anything beyond prototypes. It creates a false sense of security, especially for those with limited or worse no development experience. Untrained users produce code that “works” on the surface but hides massive risks—security vulnerabilities, unmaintainable spaghetti, scalability bombs, and undetected bugs that surface under real load or attack.
I’ve seen it before in earlier eras: Tools promising “anyone can build software” led to brittle systems that crumbled in production, costing millions in fixes (or worse, data breaches). Vibe coding amplifies this because the human often has no control over the code, repository, process, or underlying assumptions. LLMs hallucinate packages, introduce outdated patterns, or embed subtle flaws (e.g., SQL injection risks or exposed secrets). Without rigorous review, these slip into production.
Contrast this with what I call AI-augmented engineering—the disciplined way professionals like me use AI today. Here, tools like Claude, Cursor, Grok, or ChatGPT are powerful force multipliers, but they’re paired with best practices: SOLID principles, OOP/OOD/DDD, Agile methodologies, code reviews, and—critically—comprehensive unit, integration, system, and performance testing. We prompt for ideas, generate snippets, refactor legacy code, or explore alternatives, but we always review, test, and own the output.
AI-augmented engineering accelerates us without sacrificing quality. Professionals embrace the “vibes” for creativity but ground them in battle-tested engineering discipline. Vibe coding alone? It’s a shortcut that often leads to dead ends in real-world systems.
If you’re building something that matters—scalable, secure, maintainable—choose augmentation over pure vibes. It’s not about rejecting AI; it’s about using it responsibly.
Am I the right guy to work with you?
Hiring smart is perhaps the most important thing you can do in a business. So the question is: Am I the right guy for you?
I’ve been in software development for quite some time. If you read my resume, you’ll see I started with C/C++, Java, and then .NET, and I’ve worked with any number of databases and multiple cloud technologies over the years.
More important than technological fit is cultural fit. I like to work with—or lead—a team of highly motivated professionals. I keenly understand the impact that software has on people’s businesses and their lives—a fact that is sometimes lost on junior developers. I am very proud of what I or my team develop, and I will take ownership of it, good or bad.
I also understand that software development companies don’t have unlimited funds, time, or resources, and that there is always a trade-off between time-to-market and features. But there should never be a trade-off between time-to-market, accuracy, and completeness.
If you’re looking for an experienced developer, team lead, or architect who delivers reliable, production-quality systems—I’m your guy.
If you’re looking for somebody to slap together some lines of code to meet an arbitrary deadline with an arbitrary set of requirements—I’m not your guy.