Skip to content

/ Engineering

Treating AI as infrastructure, not a feature

The interesting question is never whether a product uses a model. It is what the product does when the model is wrong, slow, or unavailable.

7 min read

A model is a dependency, not a personality

The moment a model call sits on a critical path, it becomes a dependency with latency, failure modes, and a bill. That is the same category as a database or a payment provider, and it deserves the same engineering seriousness.

Products that treat it as a headline feature tend to expose the raw model to the user and hope. Products that treat it as infrastructure wrap it, constrain it, and let the interface stay stable while the model underneath changes.

Constrain the output, always

Free-form text is difficult to build on. Where a result feeds anything downstream, we ask for structure and validate it before it is allowed anywhere near application state.

Validation at the boundary means a malformed response becomes a handled error instead of a corrupted record. It also makes the failure visible in logs rather than three screens later as a mystery.

  • Define the shape you expect and reject anything that is not it
  • Set a timeout that is shorter than the user's patience
  • Decide in advance what the product shows when the call fails
  • Log failures with enough context to reproduce them

Design for the wrong answer

A model will eventually produce something confident and incorrect. The right design question is how much that costs the person using it.

In Trade Estimate AI, an estimate is a draft a professional reviews and edits, not a number sent to a client automatically. The human stays in the loop where the stakes justify it. That is a product decision, and it is the one that makes the AI usable rather than risky.

Cost is a design constraint

Per-call pricing means usage patterns and unit economics are the same conversation. A feature that calls a large model on every keystroke is a design decision about the business, whether or not anyone framed it that way.

Caching, smaller models for narrow tasks, and doing work on the device where it is possible are not just optimisations. They are what makes a feature survivable at scale.

The user does not care that it is AI

People care that the estimate is right, the recipe uses what is in the fridge, and the check-in lands at a moment that makes sense. The technique is our problem, not theirs.

When a product's main claim is the technology it uses, that usually means the job it does has not been made clear yet.

Building something this applies to?

We take on a small number of outside builds each year — websites, apps, automations, and internal systems. Or look at what we build and operate.

Start a project