Engineering · Article

Building software products with AI-assisted engineering, without losing the plot

Speed is easy. Maintainability is the hard part. How international teams can keep AI-assisted builds shippable past the first demo.

John Soriano John Soriano / / 3 min read

AI-assisted coding is genuinely fast. A founder in Austin, a product team in Bangalore, or an agency in Manila can move from blank repository to working prototype in a fraction of the time it took a few years ago.

The problem usually appears a week later, when someone needs to change the product and the codebase has quietly become a maze. It works, but nobody fully understands why. The demo is alive. The system is already hard to maintain.

I have shipped enough AI-assisted projects now to know that speed is not the constraint. Keeping the product understandable is.

The coherence problem

When you generate code quickly, you generate a lot of it. Patterns multiply. The same logic gets expressed three different ways because each session had a slightly different view of the project. Types drift. Naming drifts. One module uses a utility that another module quietly reimplements.

None of this ruins the demo. It ruins the next change.

This matters for any product team, but it matters especially once you are handling customers’ money and data. You cannot afford a codebase where payment logic, customer data handling, consent flows, audit records, or account permissions are stitched together by accident.

The fix is not to avoid AI-assisted code. The fix is to review it with discipline. I treat every generated block as a first draft. I read it the way I would read a junior engineer’s pull request: checking duplication, consistency, boundaries, testability, and whether the approach fits the existing system.

What I keep in human hands

There are parts of a project I do not hand over blindly: architecture decisions, data shape, module contracts, permission models, customer-facing states, and the rules around sensitive information.

The model can help with all of those, but it should not own them. If I do not understand the design, I cannot maintain the product.

The model is strongest inside a well-framed problem. Define the edges clearly: what goes in, what comes out, what must happen, what must never happen, and how the result will be tested. Leave those edges fuzzy and you get something that appears to work until the requirements move by an inch.

Staying shippable

The discipline that makes the biggest difference is building in vertical slices. Ship one complete path through the system before expanding sideways.

For example, do not generate the entire CRM, billing system, dashboard, onboarding flow, and admin panel in one burst. Ship one working path: a user signs up, creates an account, performs the core action, and sees the right state afterward. Then harden that path before building the next one.

AI tooling makes horizontal sprawl tempting. You can generate the skeleton of ten features in an afternoon. But ten half-done features are still half done. A small product that works, can be tested, and can be changed with confidence is worth more than a wide product nobody wants to touch.

The standard I aim for

The question I ask before shipping AI-assisted software is simple: could another competent engineer inherit this next month and understand the important decisions?

If the answer is no, the product is not done. It may work locally. It may demo well. But it is not ready to carry business operations, customer data, or revenue.

AI can accelerate engineering. It does not remove the need for engineering judgment. When customers expect reliability and regulators expect accountability, that judgment is the product.


John Soriano, founder of XataTech
John Soriano
Developer · AI Builder · Systems Thinker

I help founders and companies design and implement AI, software, and operational systems that create real business value. Founder of XataTech.

Let's talk

Looking at AI for your business?

Tell me the workflow that quietly costs you the most. I'll help you figure out whether AI actually belongs there — and what it would take to make it stick.