CodeveilStudio

Engineering digital products with design precision.

Back to Insights

Engineering

AI Can Build Your App in a Weekend. So Why Does Real Software Still Take Months?

By Muhammad Hussain13 Sept 20269 min read
{ }CODEVEIL STUDIOENGINEERING

A founder I know spent a weekend with an AI coding tool and came back on Monday with a booking app. Landing page, working sign-up, a dashboard with real charts, test payments clearing. It was genuinely impressive. Then somebody in the room asked the question everyone was already thinking: so why are we paying developers?

Three weeks later it went live. On day two a customer emailed support because she could see somebody else’s appointments. On day four a payment webhook fired twice and charged a user double. On day six the whole thing slowed to a crawl, because a query that was instant against twenty test rows was now scanning forty thousand real ones. Nobody could say what had actually gone wrong, because nothing was being logged.

None of that is exotic. I have watched some version of it happen more than once, and it points at the thing the hype cycle keeps skipping.

Building something that works stopped being the hard part. Building something that keeps working never stopped being it.

The demo is the part you can see

When you use software you see a thin slice of it: screens, buttons, flows. The rest is invisible on purpose. Done well, you never notice it. Missing, it is the only thing you notice.

Here is what lives under the waterline, and where weekend builds tend to be thinnest.

A demo shows a landing page, sign-up, dashboard and test payments. Below launch day sit authorization, unhappy paths, data growth, secrets, observability and maintainability.
Everything above the line ships in a weekend. Everything below it is what decides whether the thing is still standing in month three.
  • Authorization, not just authentication. Logging in proves who you are. Authorization decides what you are allowed to see. AI tools are good at the first and casual about the second, and the second is where data leaks come from.
  • The unhappy paths. What happens when the network dies mid-payment? When someone double-clicks Submit? When two admins edit the same record at the same second? A demo walks the happy path. Real users wander everywhere else.
  • Data that grows. Software that is fast against a handful of rows can fall over at real volume. Indexes, caching and query design rarely appear in a weekend build, because that build never had enough data to need them.
  • Secrets and configuration. API keys pasted into frontend code, credentials committed to a repo, an admin route left open "just for testing". Silent until the day they are extremely loud.
  • Observability. When something breaks at 2am, can you tell what broke, where, and for whom? Or do you find out from a one-star review?
  • Maintainability. Can a developer, or a future AI session, safely change this in six months without breaking three unrelated things?
  • The messy reality of business rules. Refund exceptions, regional tax, that one client with a custom contract. None of it was in the prompt, because nobody had thought of it yet.

A prototype answers "can this work?". A product has to answer a much harder question: "what happens when it doesn’t?"

What the numbers say

It would be easy to read all this as developers defending their jobs, so let me put opinion aside and use published research instead.

Veracode’s 2026 GenAI Code Security Report tested more than a hundred models on ordinary coding tasks with no special security prompting. The average security pass rate was 56%, effectively flat against the 55% in the first edition. Put another way, roughly 44% of tasks produced code with a known vulnerability in it. The code compiled. It just was not safe.

The breakdown matters more than the headline. Models handled well-documented problems like SQL injection reasonably well, around 83%. They did badly on cross-site scripting, around 15%, and log injection, around 12%. And in teams that have adopted these tools, Veracode estimates AI now writes roughly half of all committed code. The failure rate held steady while the volume of code running through it multiplied.

Stack Overflow’s 2025 Developer Survey, with close to 50,000 respondents, found 84% of developers use or plan to use AI tools — while more of them actively distrust the accuracy of the output (46%) than trust it (33%). Only 3% said they highly trust it, and the most experienced developers were the most sceptical. That is not a contradiction. That is what it looks like when professionals learn exactly where a tool helps and exactly where it quietly makes more work.

There is a third result worth knowing. In 2025 the research nonprofit METR ran a randomised trial with experienced open-source developers on codebases they knew well. With AI tools allowed, tasks took 19% longer on average — yet the same developers came away believing they had been about 20% faster. METR now treats that specific number as historical, and a later round showed a smaller and statistically uncertain effect, so I would not lean on the figure itself. The perception gap is the part that ages well: our sense of speed comes from how fast code appears, not from how long it takes to review, debug and actually trust.

AI is not the problem. Misplaced confidence is.

I use these tools every day and I would not want to go back. Used well they are genuinely excellent at validating an idea before real money goes in, at scaffolding and boilerplate, at making an unfamiliar framework approachable, and at drafting tests, docs and migrations — as long as someone reviews them.

The failure is a category error: treating a prototype as a product because on screen they look identical.

Think of a film set. From the camera’s angle the set house and a real house are the same house. Same door, same windows, same warm light in the kitchen. Only one has plumbing, wiring and foundations. Only one is still there after the first storm.

Use AI to work out what to build. Use engineering discipline to build it for real.

What that discipline looks like in practice

This is not abstract for us. A few examples from systems we have shipped at Codeveil Studio, all of them decisions that cost time up front and saved far more later.

  • On QResolve, a multi-tenant maintenance platform, tenant isolation is enforced by row-level security policies in Postgres rather than by checks in React components. A bug in the UI cannot leak another organisation’s data, because the database refuses the query regardless of what the client asks for.
  • The same platform accepts fault reports from people who never log in. Granting anonymous inserts naively would also grant the read that a returning row implies, exposing every tenant’s tickets. So the record ID is generated client-side and the row is never read back: anonymous users can write, and can never read.
  • Its billing pipeline verifies every webhook signature against the raw body before parsing, and stores the processed event ID, because payment providers replay webhooks and send them out of order. That is not paranoia. It is the normal behaviour of the systems you integrate with.
  • On an AI documentation tool we built, the model layer runs one provider with an automatic fallback to a second, and surfaces a readable error when both fail. A degraded vendor becomes a slow request instead of an outage.

None of those would have come out of a prompt, because none of them are features. They are answers to "what happens when it doesn’t?"

The bottleneck moved

For a long time the scarce thing in software was people who could write code. That is no longer true — code is abundant and nearly free to produce.

What is scarce now is judgement: knowing which code should exist, noticing what is missing, and being accountable for what ships to real people with real data and real money. The job is shifting from typing to deciding. Designing the architecture, thinking like an attacker, reading AI output with appropriate suspicion, and building systems that fail gracefully instead of catastrophically.

If one sentence defines a useful engineer in 2026, it is probably this one: "Yes, it works — but what happens when…?"

Eight questions before you call it production-ready

Whether your app was built by AI, by a team, or by both, answer these honestly before launch.

  • If I log in as User A, can I reach anything belonging to User B? Change an ID in the URL and find out. People are often surprised.
  • What happens when a payment, an email or a third-party API fails halfway through? Does it recover, retry safely, or quietly corrupt data?
  • Where are the secrets? Is any key or credential sitting in frontend code, or anywhere in the repository history?
  • What happens at a hundred times today’s data and traffic? Has anyone tested with realistic volume rather than sample rows?
  • If the database vanished tonight, how much comes back? And when did someone last actually run a restore rather than assume one works?
  • When something breaks, how do you find out — from a monitoring alert, or from an angry customer?
  • Could a new developer understand this codebase in a week? Or does it only make sense to whoever, or whatever, wrote it?
  • Has a human who understands security reviewed everything that touches money, personal data or permissions?

If several answers are "I am not sure", you do not have a product yet. You have a very convincing demo. That is fine — a demo is a real and useful stage. Just do not skip the one after it.

If you are hiring a team to build it

In 2026, asking an agency whether they use AI tells you almost nothing. Everyone serious does. These questions tell you much more.

  • How do you review and verify AI-generated code before it ships?
  • Who owns security on this project, and how is it actually tested?
  • What do we receive at handover — documentation, automated tests, monitoring?
  • What is the plan for the first 90 days after launch?

A team that answers those clearly is selling you engineering. A team that only wants to talk about speed is selling you a demo.

Build fast. Build it to stay up.

AI has made building easier than at any point in the history of the field, and that is genuinely a good thing. More people can turn an idea into working software than ever before.

But the future does not belong to whoever ships the first demo. It belongs to whoever ships something still standing when real users, real data and real problems turn up. AI gives us the speed. The foundation is still on us.

References

  • Veracode, 2026 GenAI Code Security Report, July 2026.
  • The Next Web, "AI-generated code security has stalled at 56%", July 2026 — vulnerability-category breakdown.
  • Stack Overflow, 2025 Developer Survey — survey.stackoverflow.co/2025.
  • Becker, Rush, Barnes & Rein (METR), Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity, arXiv, July 2025.

Muhammad Hussain is a backend engineer at Codeveil Studio in Karachi, working mostly on databases, APIs and the parts of a system that have to stay up. He writes about the practical side of shipping software that survives contact with real users.