Services

The engineering behind our product, for yours

We build our own AI products, and we take on a small number of projects for other teams. These are the six things we do, usually the same project seen from different angles. If you already know which one you need, the fastest route is a call.

01

AI agent development

Multi-step agents with tool use, task delegation and a trace for every decision. Built with LangGraph and LangChain where they help, and plain code where they do not.
02

Agent harnesses

Routing, retries, rate limits, permissions and bounded execution. The layer that decides whether an agent is a demo or a system you can put in front of customers.
03

Evaluation and observability

Test suites, tracing and scoring from week one. A statistical failure looks exactly like a success until something measures it.
04

Retrieval and data pipelines

Hybrid search, reranking and dynamic chunking over Qdrant, Milvus, pgvector or whatever you already run. Built to hold up on documents you did not choose.
05

Voice and vision systems

Speech-to-text and text-to-speech pipelines with LiveKit, Deepgram or ElevenLabs, plus OCR and document extraction where the input is messy.
06

Backend engineering

Python and FastAPI services, Celery workers, queues and containers. The unglamorous half that decides whether any of it actually runs.
Process

Four stages, in this order

Most agent projects go wrong at stage three, which is why we budget for it rather than treating it as polish.
01

Scope

A week or less. We work out what the system has to do, what it must never do, and how we will know the difference.

02

Prototype

The shortest path to something running against real data. Not a deck. Software you can try and argue with.

03

Harden

Evaluation, tracing, permissions, retries and failure handling. This is where most agent projects go wrong, so it gets its own budget.

04

Operate

Running in your environment with its tests, its traces and its evaluation suite. Handover is code and documentation, not a meeting.

Engagements

Three ways to start

Whichever you pick, the first conversation is with the engineer who would do the work.

Discovery sprint

One to two weeks. Is this feasible, what would it cost, and what is the riskiest part? You leave with a written answer and a prototype.

Project build

A defined system, delivered. Fixed scope, named milestones, and software running in your environment at the end of it.

Embedded team

We work inside your team for a set number of days a week, in your repos and your standups, for a fixed term.

Not sure which one you need?

Describe the problem and we will tell you which of these fits, or say plainly that it is not something we should take on.