New CJ Video: AI, Vibe Coding, and the Erosion of Software Engineering
New CJ video released. It provides a pragmatic perspective that closely aligns with my evaluation of the current technological landscape. Should the current trajectory persist, the discipline of software development risks fundamental erosion.
The industry fetishizes abstract benchmarks while users endure degraded reality. As CJ points out, "benchmarks and rankings are more important than customer experience." A model optimizing for mathematical metrics is functionally useless if it fails to actually work in the real world, and that disparity is the only one that matters.
The sector is currently plagued by mercenary opportunism, or a get-rich-quick mindset. A growing demographic seeks the prestige and financial rewards of the industry while circumventing the requisite discipline. It is a farce. He notes that "all that I've seen is slob companies that have reached billions in valuations or revenue that have been exposed as total frauds."
Vibe coding is not development augmentation. They are fundamentally distinct. Employing artificial intelligence to accelerate real engineering is one thing, but utilizing it to mask a deficit of knowledge through syntactic mimicry is deception. CJ critiques the latter demographic, stating, "what is vibe coding? At some level, it's frauding. You're frauding your ability to code."
Artificial intelligence has undeniably lowered the barrier to producing code, but it has not lowered the barrier to actual engineering. Spawning a functional prototype is now trivial. Constructing a system that is reliable, secure, maintainable, and scalable remains as demanding as ever. We must remember that "code quality is not reflected in lines of code at all."
To be clear, large language models are a genuine breakthrough. I love the technology, but the misuse we are witnessing makes it a double-edged sword, simultaneously a beauty and a curse. When asking what AI has actually produced, the answer often feels like: "AI generated corn, videos of Diddy versus Epstein battling in Dragon Ball Z style."
Observe the best open-source software engineers. Tanner Linsley, Evan Yu, Mitchell Hashimoto, even the well-known critic ThePrimeagen. They are all exploring how to augment their development workflows with these tools, and they do so from a foundation of mastery, not as a substitute for it.
The Dunning-Kruger effect is rampant. Artificial intelligence engenders an illusion of competence because the generated output appears coherent. I understand how we are wired; humans default to optimizing for efficiency and conserving energy. We take the path of least resistance, but confusing pattern matching with actual knowledge constitutes an epistemic blind spot.
The math is simple. AI plus no background equals a liability. AI plus fundamentals equals a force multiplier. Competence augmented by technology invariably outperforms uninformed vibe coding.
This also concerns how one leverages these tools during professional maturation. Use the tool to accelerate repetition, not to supplant critical judgment. Have some damn self-respect. The moment you delegate your decisions and critical thinking to a regurgitating probabilistic engine, you insult yourself and ignore your truest potential. If a statistical model surpasses your capabilities in a domain you claim to master, take it as a personal affront and refine your skills.
The core issue is never strictly about artificial intelligence. It is about competence. The appropriate framing is anti-incompetence, not anti-AI. The tool is not the problem. The problem is individuals exploiting the tool to evade the learning process.
It is not about the AI use-case itself, but the improper application and the disregard for the fundamentals and knowledge required in development. Most of the credible critics I see echo one sentiment: it does not matter if you augment yourself with AI or not. As long as you understand and know what the fuck is going on, and you actually use your brain, then you are good. That is the exact opposite of vibe coding.
Utilizing artificial intelligence is comparable to integrating a third-party library or framework. The relevant question is not whether you employed it, but whether you comprehend why it was selected and how it was architected. Absent that understanding, you are not engineering. You are merely copying.
Accountability remains paramount. "A computer can never be held accountable, therefore a computer must never make a management decision." This principle endures. When a system fails, the machine does not care. The humans and the organizational culture that deployed it take the hit.
Systemic security degrades when practitioners rely on outputs they do not comprehend. Functional code is not secure code. Without the requisite knowledge to audit the output, practitioners will overlook injection vulnerabilities, broken authentication, data exposure, and other critical flaws. That is how you compromise production systems.
Maintenance represents the concealed tax. Software produced via vibe coding may ship rapidly, but it must be sustained indefinitely. If the original author lacks a fundamental understanding of the codebase, the subsequent team inherits an unreadable mess or a black box. That is not productivity. It is deferred liability.
The developmental pipeline from junior to senior engineer suffers severe disruption if organizations cease hiring individuals who are actually learning. If the industry shifts entirely to prompt-driven output, fewer individuals will cultivate genuine technical depth. Consequently, in a few years, there will be a shortage of people capable of resolving complex architectural challenges.
What baffles me is the lack of alarm. Research confirms that skill atrophy is real. It is the gradual loss of competencies, knowledge, and cognitive abilities resulting from an over-reliance on automation. It operates on a strict "use it or lose it" basis where convenience reduces deep practice, causing skills to weaken over time. Why is the industry not treating this as an emergency? We are systematically degrading our own cognitive infrastructure for short-term velocity.
Software begins to homogenize when the populace prompts identical models to resolve identical problems. The result is ubiquitous mediocrity. Competent, perhaps, but fundamentally interchangeable. Genuine innovation emerges from individuals who possess a sufficiently deep comprehension of a problem to devise novel solutions.
The prevailing hype cycle also disregards economic realities. Proponents act as though artificial intelligence will remain inexpensive indefinitely, yet compute costs, infrastructure demands, and pricing pressures are tangible. CJ observes that "Hardware is becoming progressively more expensive to feed models that are becoming sometimes worse. And when they do become better, they become 1% better for every 10% more hardware resources that that they need to consume." The industry exhibits a pattern of underpricing the tool to foster dependency, followed by gradual cost escalation.
As Alexander Lerchner notes in "The Abstraction Fallacy":
"Therefore, expecting an algorithmic description to instantiate the quality it maps is like expecting the mathematical formula of gravity to physically exert weight. Believing AI can become conscious solely through the manipulation of internal variables is to commit the error of the 'blind spot' (Frank et al., 2025): mistaking the map for the territory."
That applies perfectly here. The generated code is the map. The engineer's understanding is the territory. Vibe coders build maps of places they have never been.
My core stance is this: understand your code or suffer. Relying on AI without comprehending the generated output inevitably leads to security vulnerabilities and bugs. AI must be treated as a tool, never a replacement for fundamental engineering knowledge.
I stand firmly against vibe coding. Relying on AI to generate code without careful verification is a trap because AI can produce incorrect logic for even the simplest tasks. Trusting it blindly is a recipe for disaster.
View AI for what it truly is: a sophisticated autocomplete. It accelerates coding, but it does not replace human creativity or problem-solving. Developers must always guide and correct it, especially when dealing with complex systems.
To be clear, I am not anti-AI. I am anti-incompetence. Using AI as a shortcut to bypass learning the fundamentals is a disservice to the craft. We risk breeding a generation of incompetent programmers who simply cannot function without an AI assistant.
Looking ahead, AI will not totally replace developers in the near future. However, it will absolutely lead to significant losses for those who fail to adapt and learn how to use it effectively.
The conclusion I repeatedly reach is this. Artificial intelligence should elevate the standard of engineering, not diminish it. It should amplify the capabilities of proficient developers, not transform poor practices into product strategy. When applied correctly, it is leverage. When applied poorly, it merely produces substandard output at scale.
The objective is never to abstain from tools. It is to master your craft so completely that the tool serves your judgment, not the other way around. If the industry continues to reward syntactic output over deep comprehension, we will not build better software. We will simply drown in an abundance of garbage that no one can fully trust, maintain, or claim ownership of.