Back to all posts
Notes on Building with LLMs: From Prototype to Production

Notes on Building with LLMs: From Prototype to Production

TechnologyArtificial IntelligenceEngineering

Summary

Getting an LLM prototype to feel magical is easy. Getting it to production is where the work starts. This piece distils what actually matters on that path: production demands systems rather than prompts, data quality beats prompt tweaking, evaluation has to be continuous and scenario-driven, and architecture decisions outweigh model choice. It covers guardrails, versioning, building for change, and learning from real user behaviour. The teams that succeed build the infrastructure that makes the magic repeatable.

Early on, building with large language models feels effortless. You write a prompt, call an API, and your app can summarise a document, read a chart, draft an email or reason through a workflow. The first prototype looks like a breakthrough.

Taking that prototype into production is a different exercise entirely. It has far less to do with the model and far more to do with the engineering discipline you wrap around it. After enough iterations, the same patterns keep surfacing.

These notes come from that process.

Prototypes Impress. Production Delivers.

A proof of concept enjoys a controlled environment: a clean demo input, one user path, a forgiving audience. It shows what's possible, not what's realistic.

Production is where the truth comes out. Users ask ambiguous, contradictory or enormous questions. Latency becomes noticeable. Token costs climb faster than forecast. Edge cases multiply. A prompt that worked yesterday returns something bizarre today.

Getting to production starts with accepting that the prototype was the opening move, then building the systems that close the gap.

Data Beats Prompts

You can tune a prompt indefinitely, adjusting phrasing, few-shot examples, structure and constraints. Those gains flatten out quickly.

The real improvements almost always come from the data:

  • Cleaner retrieval documents
  • More relevant context windows
  • Curated supervision signals
  • Domain-specific fine-tuning
  • Structured representations rather than raw text

In an LLM system the data is the real product surface, and investment there compounds.

Evaluation Is Continuous, Not Episodic

LLMs bring a new problem: your system's behaviour can drift even when your code hasn't changed. A prompt tweak, a model update or a new user segment is enough to move it.

That reshapes evaluation. It has to be:

  • Automated, to catch regressions before users do
  • Scenario-driven, to reflect real-world complexity
  • Ongoing, because behaviour is dynamic
  • Human-supported, because subjective judgement still matters

Good evals work like unit tests for behaviour. Without them you're flying blind.

Architecture Matters More Than Model Choice

Teams spend enormous energy debating which model to use. With experience it becomes clear that system design outweighs parameter count.

Architecture is what determines latency and throughput, cost efficiency, scalability, how you behave during a provider outage, and how painlessly you can upgrade models later.

A flexible, layered, observable architecture beats picking the perfect model every time.

Guardrails Are an Enabler, Not a Constraint

Even strong models hallucinate, misread intent, or drift in tone. Guardrails are what turn raw capability into predictable behaviour.

The useful ones include policy models, function calling with strict schemas, rule-based validation, content filtering, and prompt templates that reduce variance.

Good guardrails don't restrict the model. They channel it.

The Ground Will Move, So Build for It

Providers ship updates constantly. APIs change, costs shift, new architectures arrive. A model that performed brilliantly can become inadequate the moment you add a feature or a new user base.

If the product is rigid, every upgrade means pulling out wiring. If it's adaptable, an upgrade is just another iteration.

In practice that means versioning prompts, documenting experiments, building switchable model backends, and treating a model upgrade like a code release.

The team that expects change moves faster than the team that fears it.

Users Will Surprise You

Real-world behaviour is impossible to anticipate. People push the system into strange corners, combine tasks in ways you never designed for, ask questions you didn't consider, misread instructions, and break flows both deliberately and accidentally.

None of that is failure. It's signal.

Analyse the logs, cluster the queries, study the breakdowns, and feed it back. That's the loop that turns a prototype into something genuinely useful.

What It Comes Down To

The real work of building with LLMs isn't prompt wrangling. It's the reliable system around the model: data pipelines, retrieval layers, evals, guardrails, observability, versioning.

The teams that succeed aren't chasing one-off demos. They build the infrastructure that makes the magic repeatable, and they treat the model as one component of an ecosystem that demands engineering maturity and steady iteration.

You may also enjoy…

Artificial IntelligenceEconomicsPolicy

AI and the Wealth Gap: Acceleration or Equalizer?

As AI reshapes industries and capital flows, it isn't only creating new wealth. It's redistributing opportunity. Whether that narrows or widens the wealth gap is one of the defining questions of our time.

8 min read