All essays
Engineering4 min read

Hello, world.

AI makes output cheap. We care about the work it leaves behind.

console.log("Hello, world.");
// TODO: handle world.

No GPU required. A financially responsible start for an AI company.

There is something comforting about this program. Everyone agrees on what it should do. The result is visible. We can tell whether it worked without scheduling a meeting.

Most business software starts in a less convenient place. Someone wants less work, a faster decision, a better margin. Those are reasonable requests, but they leave a lot for an engineer to figure out. What is actually slowing the work down? Which decisions can the system make? Who carries the consequences when it gets something wrong?

AI makes it easier to write a program before answering those questions. That is a remarkable ability. It also makes it easier to build the wrong thing very convincingly.

That gap is what we want to write about here: the distance between working code and work that actually gets easier.

Count the work left over.

A report can take seconds to generate and an afternoon to check. An automated answer can arrive immediately, then send its reader through several systems to find out whether it is true. The output is cheap. The work around it can still be expensive.

This is an easy mistake to make when the thing you measure is how quickly the model responds. You have to follow the task further: through the review, the correction, the handover, and whatever someone has to do before they can trust the result.

The same reasoning applies to the people building the system. A long questionnaire is quick for us to produce. Answering it costs the client attention. A document full of possibilities can leave them with every difficult decision still to make. We should do more preparation and bring sharper questions before asking for more of their time.

We care about the total effort needed to get a useful result. That makes judgment part of the engineering: deciding what deserves to be built, what evidence is missing, and what we can safely leave alone. The ability to generate another version does not decide whether anyone needs it.

Build something people can question.

People can often spot a missing step in an interface long before they can describe the system they need. Let them try something. Watch where they hesitate. A small prototype can turn an abstract disagreement into a specific change.

This is one reason we care so much about design. The way an idea is presented affects what people can understand about it. A clear screen can make a decision obvious; a confusing one can hide a bad assumption behind a feature that technically works.

But a beautiful demonstration can also make an untested idea feel proven. We need to be explicit about what is working, what is simulated, and what remains an assumption. A person should be able to change an input, inspect the consequence, and disagree with our reasoning.

AI gives us the means to make that understanding cheaper. We can build a small interface to answer one question, learn from it, and throw it away. The code does not need a long life if the decision it helped make was worth the effort.

Useful speed comes from shortening the distance between an assumption and the moment someone can test it. Generating more code is only one way to do that.

Done has to survive tomorrow.

An application can be online while the person using it is stuck. A model can return a plausible answer while the next step in the job remains impossible. Engineering responsibility has to follow the work through those gaps.

For us, delivery includes the moment someone first uses the system and the ordinary working days that follow. Can they use it without an engineer explaining every step? Can they tell when something needs their attention? When it fails, is someone responsible for getting the work moving again?

This is also why we care about sovereign AI. A company taking on a new capability should understand where its data goes and retain control over how that capability operates. Running locally or in a controlled cloud is an engineering decision. The purpose is to give the company control it can exercise in practice.

Over time, the software should improve and the people using it should need less help. We want to carry responsibility for operating it without making the client dependent on us for every ordinary task. Those ambitions belong together.

The test is what changed for the person doing the work, and whether that improvement still holds after the novelty has worn off. That is the standard we want these engineering notes to return to.

Hello, world. We have a few things to work on.

Have something worth building?

Let’s build
  1. Email
  2. The opportunity
  3. Contact

What could we build together?

A few details. A real conversation.

We save your email and answers as you go, so we can follow up even if you don’t finish. Only about your enquiry. Privacy notice (opens in a new tab)

About a minute