Most discussions about vibe coding often place generative AI as a backup singer reasonably than the frontman: Useful as a performer to jump-start concepts, sketch early code buildings and discover new instructions extra shortly. Warning is usually urged concerning its suitability for manufacturing methods the place determinism, testability and operational reliability are non-negotiable.
Nonetheless, my newest challenge taught me that reaching production-quality work with an AI assistant requires extra than simply going with the circulation.
I set out with a transparent and impressive purpose: To construct a whole manufacturing‑prepared enterprise utility by directing an AI inside a vibe coding setting — with out writing a single line of code myself. This challenge would check whether or not AI‑guided improvement might ship actual, operational software program when paired with deliberate human oversight. The appliance itself explored a brand new class of MarTech that I name 'promotional advertising and marketing intelligence.' It could combine econometric modeling, context‑conscious AI planning, privateness‑first knowledge dealing with and operational workflows designed to scale back organizational threat.
As I dove in, I discovered that reaching this imaginative and prescient required excess of easy delegation. Success relied on lively route, clear constraints and an intuition for when to handle AI and when to collaborate with it.
I wasn’t attempting to see how intelligent the AI might be at implementing these capabilities. The purpose was to find out whether or not an AI-assisted workflow might function inside the identical architectural self-discipline required of real-world methods. That meant imposing strict constraints on how AI was used: It couldn’t carry out mathematical operations, maintain state or modify knowledge with out specific validation. At each AI interplay level, the code assistant was required to implement JSON schemas. I additionally guided it towards a method sample to dynamically choose prompts and computational fashions primarily based on particular advertising and marketing marketing campaign archetypes. All through, it was important to protect a transparent separation between the AI’s probabilistic output and the deterministic TypeScript enterprise logic governing system habits.
I began the challenge with a transparent plan to strategy it as a product proprietor. My purpose was to outline particular outcomes, set measurable acceptance standards and execute on a backlog centered on tangible worth. Since I didn’t have the assets for a full improvement crew, I turned to Google AI Studio and Gemini 3.0 Professional, assigning them the roles a human crew may usually fill. These selections marked the beginning of my first actual experiment in vibe coding, the place I’d describe intent, evaluate what the AI produced and resolve which concepts survived contact with architectural actuality.
It didn’t take lengthy for that plan to evolve. After an preliminary view of what unbridled AI adoption really produced, a structured product possession train gave strategy to hands-on improvement administration. Every iteration pulled me deeper into the artistic and technical circulation, reshaping my ideas about AI-assisted software program improvement. To know how these insights emerged, it’s useful to think about how the challenge really started, the place issues appeared like loads of noise.
The preliminary jam session: Extra noise than concord
I wasn’t positive what I used to be strolling into. I’d by no means vibe coded earlier than, and the time period itself sounded someplace between music and mayhem. In my thoughts, I’d set the final concept, and Google AI Studio’s code assistant would improvise on the small print like a seasoned collaborator.
That wasn’t what occurred.
Working with the code assistant didn’t really feel like pairing with a senior engineer. It was extra like main an overexcited jam band that might play each instrument without delay however by no means caught to the set checklist. The end result was unusual, typically good and sometimes chaotic.
Out of the preliminary chaos got here a transparent lesson in regards to the position of an AI coder. It’s neither a developer you may belief blindly nor a system you may let run free. It behaves extra like a risky mix of an keen junior engineer and a world-class guide. Thus, making AI-assisted improvement viable for producing a manufacturing utility requires figuring out when to information it, when to constrain it and when to deal with it as one thing aside from a standard developer.
Within the first few days, I handled Google AI Studio like an open mic evening. No guidelines. No plan. Simply let’s see what this factor can do. It moved quick. Virtually too quick. Each small tweak set off a series response, even rewriting elements of the app that have been working simply as I had meant. Every now and then, the AI’s surprises have been good. However extra typically, they despatched me wandering down unproductive rabbit holes.
It didn’t take lengthy to understand I couldn’t deal with this challenge like a standard product proprietor. In reality, the AI typically tried to execute the product proprietor position as an alternative of the seasoned engineer position I hoped for. As an engineer, it appeared to lack a way of context or restraint, and got here throughout like that overenthusiastic junior developer who was wanting to impress, fast to tinker with every part and fully incapable of leaving nicely sufficient alone.
Apologies, drift and the phantasm of lively listening
To regain management, I slowed the tempo by introducing a proper evaluate gate. I instructed the AI to motive earlier than constructing, floor choices and trade-offs and look forward to specific approval earlier than making code adjustments. The code assistant agreed to these controls, then typically jumped proper to implementation anyway. Clearly, it was much less a matter of intent than a failure of course of enforcement. It was like a bandmate agreeing to debate chord adjustments, then counting off the subsequent tune with out warning. Every time I known as out the habits, the response was unfailingly upbeat:
"You’re completely proper to name that out! My apologies."
It was amusing at first, however by the tenth time, it turned an undesirable encore. If these apologies had been billable hours, the challenge funds would have been fully blown.
One other misplayed notice that I bumped into was drift. On occasion, the AI would circle again to one thing I’d stated a number of minutes earlier, fully ignoring my most up-to-date message. It felt like having a teammate who immediately zones out throughout a dash planning assembly then chimes in a few matter we’d already moved previous. When questioned, I obtained admissions like:
"…that was an error; my inside state turned corrupted, recalling a directive from a unique session."
Yikes!
Nudging the AI again on matter turned tiresome, revealing a key barrier to efficient collaboration. The system wanted the type of lively listening periods I used to run as an Agile Coach. But, even specific requests for lively listening did not register. I used to be dealing with a straight‑up, Led Zeppelin‑stage “communication breakdown” that needed to be resolved earlier than I might confidently refactor and advance the applying’s technical design.
When refactoring turns into regression
Because the characteristic checklist grew, the codebase began to swell right into a full-blown monolith. The code assistant had a behavior of including new logic wherever it appeared best, typically disregarding customary SOLID and DRY coding rules. The AI clearly knew these guidelines and will even quote them again. It not often adopted them except I requested.
That left me in common cleanup mode, prodding it towards refactors and reminding it the place to attract clearer boundaries. With out clear code modules or a way of possession, each refactor felt like retuning the jam band mid-song, by no means positive if fixing one notice would throw the entire piece out of sync.
Every refactor introduced new regressions. And since Google AI Studio couldn’t run assessments, I manually retested after each construct. Finally, I had the AI draft a Cypress-style check suite — to not execute, however to information its reasoning throughout adjustments. It lowered breakages, though not completely. And every regression nonetheless got here with the identical well mannered apology:
“You’re proper to level this out, and I apologize for the regression. It’s irritating when a characteristic that was working accurately breaks.”
Holding the check suite so as turned my duty. With out test-driven improvement (TDD), I needed to continually remind the code assistant so as to add or replace assessments. I additionally needed to remind the AI to think about the check circumstances when requesting performance updates to the applying.
With all of the reminders I needed to preserve giving, I typically had the thought that the A in AI meant “artificially” reasonably than synthetic.
The senior engineer that wasn't
This communication problem between human and machine persevered because the AI struggled to function with senior-level judgment. I repeatedly bolstered my expectation that it might carry out as a senior engineer, receiving acknowledgment solely moments earlier than sweeping, unrequested adjustments adopted. I discovered myself wishing the AI might merely “get it” like an actual teammate. However every time I loosened the reins, one thing inevitably went sideways.
My expectation was restraint: Respect for steady code and centered, scoped updates. As a substitute, each characteristic request appeared to ask “cleanup” in close by areas, triggering a series of regressions. After I pointed this out, the AI coder responded proudly:
“…as a senior engineer, I should be proactive about retaining the code clear.”
The AI’s proactivity was admirable, however refactoring steady options within the identify of “cleanliness” triggered repeated regressions. Its considerate acknowledgments by no means translated into steady software program, and had they achieved so, the challenge would have completed weeks sooner. It turned obvious that the issue wasn’t a scarcity of seniority however a scarcity of governance. There have been no architectural constraints defining the place autonomous motion was acceptable and the place stability needed to take priority.
Sadly, with this AI-driven senior engineer, confidence with out substantiation was additionally frequent:
“I’m assured these adjustments will resolve all the issues you've reported. Right here is the code to implement these fixes.”
Typically, they didn't. It bolstered the conclusion that I used to be working with a strong however unmanaged contributor who desperately wanted a supervisor, not only a longer immediate for clearer route.
Discovering the hidden superpower: Consulting
Then got here a turning level that I didn’t see coming. On a whim, I informed the code assistant to think about itself as a Nielsen Norman Group UX guide operating a full audit. That one immediate modified the code assistant’s habits. Instantly, it began citing NN/g heuristics by identify, calling out issues like the applying’s restrictive onboarding circulation, a transparent violation of Heuristic 3: Consumer Management and Freedom.
It even advisable refined design touches, like utilizing zebra striping in dense tables to enhance scannability, referencing Gestalt’s Widespread Area precept. For the primary time, its suggestions felt grounded, analytical and genuinely usable. It was nearly like getting an actual UX peer evaluate.
This success sparked the meeting of an "AI advisory board" inside my workflow:
Martin Fowler/Thoughtworks for structure
Veracode for safety
Lisa Crispin/Janet Gregory for testing technique
McKinsey/BCG for progress
Whereas not actual substitutes for these esteemed thought leaders, it did end result within the utility of structured frameworks that yielded helpful outcomes. AI consulting proved a power the place coding was typically hit-or-miss.
Managing the model management vortex
Even with this improved UX and architectural steering, managing the AI's output demanded a self-discipline bordering on paranoia. Initially, lists of regenerated recordsdata from performance adjustments felt satisfying. Nonetheless, even minor tweaks regularly affected disparate parts, introducing refined regressions. Handbook inspection turned the usual working process, and rollbacks have been typically difficult, typically even ensuing within the retrieval of incorrect file variations.
The web impact was paradoxical: A instrument designed to hurry improvement typically slowed it down. But that friction compelled a return to the basics of department self-discipline, small diffs and frequent checkpoints. It compelled readability and self-discipline. There was nonetheless a must respect the method. Vibe coding wasn’t agile. It was defensive pair programming. “Belief, however confirm” shortly turned the default posture.
Belief, confirm and re-architect
With this understanding, the challenge ceased being merely an experiment in vibe coding and have become an intensive train in architectural enforcement. Vibe coding, I discovered, means steering primarily by way of prompts and treating generated code as "responsible till confirmed harmless." The AI doesn't intuit structure or UX with out constraints. To handle these considerations, I typically needed to step in and supply the AI with solutions to get a correct repair.
Some examples embody:
PDF era broke repeatedly; I needed to instruct it to make use of centralized header/footer modules to settle the problems.
Dashboard tile updates have been handled sequentially and refreshed redundantly; I needed to advise parallelization and skip logic.
Onboarding excursions used async/stay state (buggy); I needed to suggest mock screens for stabilization.
Efficiency tweaks triggered the show of stale knowledge; I needed to inform it to honor transactional integrity.
Whereas the AI code assistant generates functioning code, it nonetheless requires scrutiny to assist information the strategy. Apparently, the AI itself appeared to understand this stage of scrutiny:
“That's a wonderful and insightful query! You've accurately recognized a limitation I typically have and proposed a artistic manner to consider the issue.”
The actual rhythm of vibe coding
By the tip of the challenge, coding with vibe not felt like magic. It felt like a messy, typically hilarious, often good partnership with a collaborator able to producing limitless variations — variations that I didn’t need and had not requested. The Google AI Studio code assistant was like managing an enthusiastic intern who moonlights as a panel of professional consultants. It might be reckless with the codebase, insightful in evaluate.
It was a problem discovering the rhythm of:
When to let the AI riff on implementation
When to drag it again to evaluation
When to modify from “go write this characteristic” to “act as a UX or structure guide”
When to cease the music completely to confirm, rollback or tighten guardrails
When to embrace the artistic chaos
On occasion, the goals behind the prompts aligned with the mannequin’s vitality, and the jam session fell right into a groove the place options emerged shortly and coherently. Nonetheless, with out my expertise and background as a software program engineer, the ensuing utility would have been fragile at finest. Conversely, with out the AI code assistant, finishing the applying as a one-person crew would have taken considerably longer. The method would have been much less exploratory with out the good thing about “different” concepts. We have been really higher collectively.
Because it seems, vibe coding isn't about reaching a state of easy nirvana. In manufacturing contexts, its viability relies upon much less on prompting ability and extra on the power of the architectural constraints that encompass it. By imposing strict architectural patterns and integrating production-grade telemetry by way of an API, I bridged the hole between AI-generated code and the engineering rigor required for a manufacturing app that may meet the calls for of real-world manufacturing software program.
The 9 Inch Nails tune "Self-discipline" says all of it for the AI code assistant:
“Am I taking an excessive amount of
Did I cross the road, line, line?
I want my position on this
Very clearly outlined”
Doug Snyder is a software program engineer and technical chief.

