DEV Community

Mustafa ERBAY
Mustafa ERBAY

Posted on • Originally published at mustafaerbay.com.tr

Is Vibe Coding Dead? The Era of Karpathy's 'Agentic Engineering'

Is Vibe Coding Over?

There was a term frequently heard in the software development world in recent years: "Vibe coding." This approach generally referred to a developer writing code based on their intuition, trial-and-error methods, and overall "vibe." It could be particularly effective for rapid prototyping or creative projects. However, with the dizzying advancements in artificial intelligence, I'm seeing this old-fashioned approach being replaced by a more systematic and intelligent method. Andrej Karpathy's concept of "Agentic Engineering" comes into play precisely at this point. This post will explain why vibe coding is outdated and what agentic engineering means, with concrete examples from my own experiences.

One reality I've observed in my own projects is that when developing large-scale or complex systems, it's no longer possible to proceed solely based on "vibe." Especially when AI integration is involved, a more structured approach is essential. For instance, a few months ago, I was developing a financial analysis tool to help users analyze complex market data, and I wanted to add an AI module. Initially, I tried a few different prompts with the "vibe coding" logic and reviewed the results. However, these random attempts weren't yielding the depth and reliability I desired. It was difficult to understand exactly what was working or why it wasn't.

At this point, I started applying the "Agentic Engineering" principles emphasized by Karpathy. This approach involves designing "agents" that have a set of tools and capabilities, can make their own decisions, and plan their actions, rather than simply giving an AI model a task. This goes beyond just prompt engineering and allows AI to become part of the software development process. I've started thinking of AI not just as a code-generating tool, but as a team member. I believe this shift is the future of software development.

What is Agentic Engineering and Why is it Important?

Agentic Engineering is an engineering paradigm where artificial intelligence agents are designed to perform complex tasks. These agents don't just execute given commands; they can understand their environment, set goals, plan, and use various tools to execute these plans. As Karpathy emphasizes, this approach makes AI more predictable, controllable, and ultimately, more capable. This not only allows us to achieve better results but also provides the opportunity to apply AI's capabilities to a broader range of engineering problems.

Another project I've been working on for some time is a system that detects potential cybersecurity vulnerabilities by analyzing large datasets. In this project, I achieved limited success with traditional AI models. However, after adopting the agentic engineering approach, I redesigned the system as a "network of agents." For example, one agent would detect anomalies in the network, while another agent would use various security tools (e.g., log analysis, network traffic monitoring) to verify if the anomaly was a potential attack. A third agent was tasked with developing automatic responses to detected threats. This allowed us to manage a process far more complex than a single AI model could handle, through the collaboration of agents with different specializations.

One of the biggest advantages of this approach is the system's adaptability. In traditional systems, when a new type of threat emerged, it often required retraining or updating the entire model. However, in agentic systems, it's often sufficient to simply add a new agent that identifies and can respond to a new threat type. This speeds up the development process and ensures the system remains up-to-date. For instance, last month, when a new DDoS attack vector was discovered in this security system, we simply added a new agent that analyzed this vector and developed strategies to counter it. This was much faster and more efficient than rebuilding the entire system from scratch.

The Limitations of Vibe Coding

This intuitive approach, which I call "vibe coding," can be appealing for quick results, especially in the initial stages or for small-scale projects. A developer's experience and creativity can help them find unexpected solutions. However, this approach has serious limitations. First and foremost, its repeatability and scalability are very low. A developer's "vibe" can change from person to person, or even for the same person during the day. This reduces the reliability and predictability of the developed code or system. A solution that works once may not work the same way in another environment or by another developer.

A few years ago, I experienced this firsthand during the rapid MVP (Minimum Viable Product) development process for a startup. A young and talented colleague on the team was writing code for the user interface entirely based on his "vibe." The overall aesthetic of the design was great, and everything seemed fine at first. However, as the project grew and more developers joined the team, the code he wrote became impossible to understand or modify. There was no consistency in the code, the structure deviated from standards, and even the slightest change would cause a domino effect of errors elsewhere. Eventually, we had to rewrite a large portion of the project. This situation was a concrete example of how costly "vibe coding" can be in the long run.

Furthermore, "vibe coding" tends to overlook the fundamental principles and trade-offs underlying complex systems. When architectural decisions for a system are based solely on intuition, critical factors like performance, security, and scalability can be jeopardized. For example, when designing a database schema, one must consider query performance, data integrity, and potential future needs, rather than just choosing a structure that "sounds good." Such in-depth analyses are often missing in "vibe coding" because the focus is on producing immediate solutions, not long-term sustainability. Therefore, more methodical approaches should be preferred over vibe coding, especially in enterprise-level or critical applications.

⚠️ Repeatability and Scalability Issues

The biggest drawback of vibe coding is the low repeatability and scalability of the developed solutions. An approach based on an individual developer's talent and intuition can become unsustainable over time or as the team grows. This can lead to significant costs and delays, especially in large and complex projects.


For example, while working on a project, a 500-line function written based on a developer's "vibe" might be incomprehensible to another developer or very difficult to modify. Such situations reduce efficiency in software development processes and increase the error rate.

Karpathy's Agentic Engineering Approach

Andrej Karpathy's vision of "Agentic Engineering" offers an engineering paradigm that fundamentally changes the integration of AI into software development processes. This approach aims to design autonomous agents that can act as project managers, architects, or even team members, moving AI beyond just a code-writing assistant. These agents can access specific toolsets, set their own goals, and make complex plans to achieve these goals. This has the potential to apply AI's capabilities to a much broader range of engineering problems.

In my own experience, I used this approach in my "Production Planning with AI" module. Traditionally, production planning was done with data from ERP systems and various algorithms. However, unpredictable situations like sudden market changes, machine failures, or supply chain disruptions could disrupt planning. With agentic engineering, I created a set of AI agents to manage this process. One agent collected real-time factory data (machine status, inventory levels, workforce status). Another agent analyzed market trends and supply chain news. A third agent used this data to create the most optimized production plan and generate alternative scenarios for potential disruptions.

Each of these agents had specific "tools." For example, the data collection agent used tools to run database queries and communicate with APIs. The planning agent had access to special functions to run simulation algorithms and generate reports. With these toolsets, the agents could not only process information but also take proactive actions. Last month, when an unexpected raw material supply interruption occurred, the planning agent automatically started searching for alternative suppliers, analyzed costs, and proposed a new supply chain route. This process, which could have taken hours manually, was completed by the agents in just 15 minutes.

ℹ️ Agent Toolsets

One of the cornerstones of Agentic Engineering is the toolsets that agents possess. These tools allow agents to interact with their environment, gather information, and perform actions. Example tools include:

  • Running database queries
  • Communicating with external APIs
  • Compiling and executing code
  • Running simulation algorithms
  • Researching on the web
  • File system operations

These tools enable agents to solve more complex, real-world problems.

Real-World Applications and Future Vision

The potential of Agentic Engineering is not limited to production planning or security systems. This approach has the potential to revolutionize every area of software development. For example, we can ask an AI agent to read the documentation for a specific API, generate sample code, and even write basic test cases. Another agent can identify potential performance bottlenecks in an existing codebase and suggest improvements. In fact, an agent could analyze project requirements and create a draft architecture suitable for those requirements.

This vision, as Karpathy often states, will redefine the roles of engineers. Instead of being bogged down by repetitive and time-consuming tasks, engineers will be able to focus on more strategic thinking, complex problem-solving, and managing AI agents. This will make the software development process much more efficient, faster, and creative. In my own work, similar structures were evident in my studies on "Knowledge Graphs and SEO Depth," which I previously shared on my blog. Designing AI agents that fetch information from data sources like Wikidata or ORCID and make sense of it incredibly speeds up manual data collection and analysis processes.

For instance, performing SEO analysis traditionally involved keyword research, competitor analysis, and content optimization, which could take hours. With agentic engineering, I developed a set of agents that automate this process. One agent identifies popular keywords and search volumes related to a specific topic. Another agent analyzes the strategies of competitor sites and extracts best practices. A third agent uses this information to create optimized content drafts. As a result, an SEO analysis that used to take a week can now be completed in a few hours. This saves time and allows for deeper, data-driven analyses.

💡 The Future of Engineering: Human and AI Collaboration

Agentic Engineering heralds a future where human engineers work in close collaboration with AI agents. This collaboration will be shaped by AI taking on repetitive and data-intensive tasks, while humans utilize their creativity, strategic thinking, and complex problem-solving abilities. This will make software development processes more efficient, faster, and innovative.

Conclusion: The Legacy of Vibe Coding and the New Era

"Vibe coding" may represent the closing of an era. While this intuitive and trial-and-error-based approach encourages creativity, it falls short against the complexity and scalability requirements of modern software development. Andrej Karpathy's concept of "Agentic Engineering," on the other hand, opens a new chapter in the integration of AI into engineering processes. This approach is shaping the future of software development by making AI agents smarter, more predictable, and powerful tools.

Based on my own experiences, I can say that agentic engineering is not just a trend but a fundamental paradigm shift that makes our development processes more efficient, reliable, and innovative. When we start seeing AI agents not just as code-writing tools, but as intelligent partners capable of solving complex problems, planning, and making their own decisions, we can push the boundaries of software development. In this new era, the roles of engineers will change; they will focus more on strategic thinking, problem-solving, and effective collaboration with AI. I am excited about this transformation and look forward to seeing what it brings in the coming years.

Top comments (4)

Collapse
 
technogamerz profile image
The Lazy Girl (⁠◕⁠ᴗ⁠◕⁠✿⁠)

Interesting read on the evolving role of AI in software development.♥️

Collapse
 
merbayerp profile image
Mustafa ERBAY

Thank you!

What fascinates me most is that AI is no longer just helping us write code. It’s gradually becoming part of the engineering process itself. For years, we focused on how to build systems. Now we’re starting to design systems that can help build, analyze, improve, and even operate other systems. I don’t think human engineers are becoming less important. Quite the opposite. As AI capabilities grow, understanding architecture, constraints, trade-offs, and business requirements becomes even more valuable. The future probably won’t be AI replacing engineers. It will be engineers who know how to work effectively with AI outperforming those who don’t.

Collapse
 
technogamerz profile image
The Lazy Girl (⁠◕⁠ᴗ⁠◕⁠✿⁠)

This is such a thoughtful take 😊
AI isn’t replacing engineers—it’s becoming their superpower. The real winners will be the ones who learn to collaborate with it, not compete against it

Thread Thread
 
merbayerp profile image
Mustafa ERBAY

Exactly.

I think the biggest misconception is that AI reduces the need for engineering expertise. In reality, it often increases the value of it.

When implementation becomes easier, the bottleneck shifts elsewhere: architecture, system design, security, scalability, business requirements, and decision-making.

Anyone can generate 1,000 lines of code. The difficult part is knowing whether those 1,000 lines should exist in the first place.

That’s why I see AI less as a replacement for engineers and more as a force multiplier for good engineering judgment.