Skip to content
IRLY
← Writing

What 'production grade' means when AI wrote most of the code

A checklist we hold ourselves to before anything we build is allowed near real customers, real money, or real data. None of it is new. All of it is easier to skip than it used to be.

David Hunter3 min read

There is a lot of software being produced right now that works on the demo and falls over on the second real user. Some of it is written by people who have never shipped anything before and have been handed a tool that makes the first ninety percent feel easy. The last ten percent is where production lives.

We use AI heavily and we build systems that businesses depend on. Those two facts sit together only because of a list we hold ourselves to.

Every change is verified, and the ones that matter are read

Every change carries automated tests that prove it does what it is supposed to. The product engineers then review the parts where the risk lives: the data model, the security boundary, anything touching money or personal information, and any decision that will be expensive to reverse later.

A person does not read every line. Anyone who claims to is describing a bottleneck. A person does decide which lines matter, and reads those properly. If a change is too large for that review to mean anything, it is too large, and it gets split.

This is the rule that makes everything else work. It is also the one most tempting to drop, because on a good day the AI's output looks fine and the review feels like a formality.

Tests exist and they run

Every feature ships with tests that exercise the behaviour the client cares about. The suite runs automatically on every commit, and a red build blocks the merge. No exceptions for "it's a small change".

AI has made this cheap. Writing thorough tests used to be the part of the job that got squeezed when the deadline moved. Now the tests take minutes to write, so there is no reason for them to be missing and no excuse we will accept from ourselves.

Access is the minimum needed

Secrets live in a secrets manager. Service accounts have the permissions they need and no more. Database access is scoped. Admin functions are behind a second check. Personal data is encrypted at rest and in transit, and we know exactly where it is stored and why.

None of this is specific to AI-assisted work. It is what any competent team should be doing, and it is exactly the kind of thing that gets skipped when someone is moving fast and does not know what they do not know.

The system tells you when it is unwell

Logging, error tracking, and uptime monitoring are set up before launch. When something breaks, we hear about it before you do. When something is slow, we can see which part.

Boring infrastructure, deliberately

We use well-understood, widely-supported platforms and we avoid anything clever. Clever is what you cannot hire for in two years' time. A system built on ordinary, documented technology can be maintained by any competent engineer, which protects you from being dependent on us.

You own everything

The repository, the cloud accounts, the domain, the data. All of it sits in accounts you control from the start. If you decide to take the work elsewhere, you can, and the handover is straightforward.

Documentation matches reality

The system is documented as it is built, by the same person who built it, and the documentation is reviewed with the same care as the code. A new engineer should be able to read it and understand how the system works and why it was built that way.

Why write this down

Because the word "production" is doing a lot of work in a lot of sales conversations at the moment, and most of the people using it are not describing the same thing. This is what we mean. If a supplier you are talking to cannot describe their version of this list, ask them to.

Share

LinkedInEmail

Building something?

We are a small studio in Leeds and we take on a limited number of projects at a time. Tell us what you are trying to do and we will tell you whether we are the right fit.

Start a conversation