Human oversight in AI-assisted development

By Erin Hastings

During our annual company retreat, Kirschbaum developers organized a hackathon around a concept that has dominated technical discourse over much of the past year: vibe coding. Originally coined by computer scientist and OpenAI co-founder Andrej Karpathy, the term describes a specific and unconventional approach to AI-assisted programming:

There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.1

Vibe coding, like all AI-assisted programming, relies on natural, results-oriented language to generate application code; however, unlike the far more measured and deliberate AI-assisted programming approach that many of us employ daily, vibe coding offloads nearly all technical reasoning and technical output to the AI itself. In other words, AI doesn't simply help with development, it essentially becomes the developer.

In an effort to better understand the contours and boundaries of AI-assisted development, our hackathon challenged teams of three to build the most feature-rich application possible in only two hours using a strict vibe coding methodology. Teams then evaluated each other's creations in a surprise peer review session.

What we discovered not only reinforced the capabilities and constraints of AI as a programming tool, but also served as a powerful reminder about the perennial value of human involvement in software development.

What worked with vibe coding?

Our vibe coding experience kindled genuine enthusiasm around AI for many of us. As part of the developer toolkit, AI is quite remarkable, and can even be transformative for certain types of tasks. Teams identified several areas where vibe coding delivered advantages to the development process.

  • AI excelled at generating predictable boilerplate code. The most consistent finding was that AI dramatically accelerated the process of project bootstrapping. Teams rapidly generated database migrations, models, foundational UI elements, and other scaffolding that typically consumes meaningful development time, but often does not require exceptional developer skill. This advantage helped to reduce cognitive and task load, allowing teams to concentrate on high-value and differentiating aspects of their applications, such as feature implementation and user experience.

  • AI meaningfully reduced time-to-MVP and facilitated rapid prototyping. The teams frequently identified the speed in which they were able to produce a mostly functional MVP as one of the most compelling abilities of leveraging AI: "The amount of things AI can generate with a single prompt is unbelievable." In comparison to a traditional programming approach, the throughput and velocity of AI-generated code allowed for additional iteration and refinement cycles and helped mitigate “analysis paralysis” and over-engineering.

  • AI flattened the learning curve and encouraged exploration. While most teams worked with familiar technologies like Laravel, others opted to build using new tools and frameworks. What they found was that they were able to achieve a working application faster and with more ease than conventional learning paths would allow.

What didn’t work with vibe coding?

Despite real advantages, vibe coding came with substantial difficulties, many of which only emerged as projects progressed. Initial efficiency gains often gave way to bewilderment as teams grappled with fundamental and often critical application issues. We identified several areas where vibe coding was limiting or counterproductive to the development process.

  • AI struggled to produce cohesive user interfaces. AI-generated interfaces frequently suffered from visual inconsistencies, usability problems, and various rendering bugs. As one team member noted, "Our application had several visual issues (incorrectly handled wrapping, width constraints, overlapping buttons, etc.) that would not have been present typically." While AI could generate individual UI components quickly, it was often unable to create a refined, holistic user interface.

  • AI output was frequently incomplete or deficient. Teams observed that it was not uncommon for AI to only partially implement critical functionality and features, often without explanation or warning. Even where issues around functionality were not present, AI-generated code often lacked the cohesion, structure, and modularity expected by experienced developers.

  • AI code included obvious security risks and privacy violations. The most concerning and frequently cited challenge was the prevalence of security and privacy vulnerabilities in AI-generated code. Teams identified a range of problems, including hardcoded secrets, incomplete authentication flows, inadequate user data isolation, and other conspicuous attack vectors.

Why does it matter?

Taken in isolation, many of our vibe coding findings are hardly surprising. The power and limitations of AI-generated code are already well-documented. The value of our experience wasn’t so much, then, in discovering new failure modes or efficiency gains, but in the broader perspective it offered on what it means to be a software professional in an age of intelligent tools.

By deliberately embracing an unfamiliar and extreme approach through vibe coding, our hackathon reinforced a fundamental insight that can be easy to miss when using AI in a more practical, everyday manner: human involvement is not some bottleneck to be optimized away, but rather the very backbone that gives AI-assisted development direction and meaning.

Ownership, accountability, and expert oversight in software by humans is essential not only for practical considerations like security, privacy, quality, and maintainability, but also for those concerns that often lie between stated requirements: judgment, context, empathy, and understanding.

While AI can accelerate the how of building software, it cannot replace the why, what, or for whom. In representing the margins of AI-assisted development, vibe coding highlights where humans still matter most, reminding us that successful, safe, and responsible software creation will always depend on human-machine collaboration over human-to-machine abdication.

Erin Hastings
Team Lead
Author Image

Interested in speaking with a developer?

Connect with us.
©2026 Kirschbaum Development Group LLC Privacy Policy Terms of Service