We build AI and data systems that run in production.

In numbers

events a day
15M+
through one pipeline, each sent exactly once
of conversations resolved by an agent
73%
10–15k conversations a day, customer support
systems in production
10+
built or led, running today
years of experience
10+
in cloud, data and AI systems

Selected work

Four systems, each described with its constraints, architecture and measured outcome.

Capabilities

Event and data pipelines

Exactly-once delivery under hard deadlines, queues that scale from an afternoon trickle to a full day's backlog in minutes, and every event accounted for: counted in, counted out, each attempt on record. We have run this at fifteen million events a day.

Google Cloud, Spanner, Pub/Sub, Cloud Functions, Dataflow, BigQuery, Cloud Storage

Agents in production

Customer and back-office agents that read live data, follow the business's own rules, and know when to hand over to a person. Every turn traced, and every model change scored against real conversations before a customer sees it.

Python, LangGraph, Gemini, Vertex AI, MCP, LangSmith, FastAPI, Cloud Run

Decisions you can audit

Workflows where the model answers narrow questions and deterministic rules make the decision, with every check logged for the reviewer. Low confidence is a reason for review, not a guess. Built for claims, applicable wherever a decision has to be explained.

LangGraph, Cloud Tasks, Cloud SQL, BigQuery, Pydantic

Cloud and platform engineering

The ground the systems above stand on: cloud migrations, backends in Java and Node.js, front ends in React, a platform maintained for 8,000 employees, and a proof of concept delivered with a team of twenty. Ten years of it before the word "agent" meant anything.

Java, Node, TypeScript, React, Google Cloud, PostgreSQL, microservices

What an agent run looks like

A replay of one production request, step by step, as our tracing records it.

turn_7f3a9cGemini on Vertex AI3.13 s total
  1. 0 msuserCustomer: It says delivered at 14:12 but there's nothing at my door.
  2. +410 mstoolclassify_turn({ "parcel": "<from request>" })dispute: yes, type: delivered_not_received
  3. +180 mstoolget_parcel_events({ "parcel": "<from request>" })status: delivered 14:12, location: front door, driver photo: available, GPS: recorded
  4. +640 mstoolcheck_evidence({ "photo": true, "gps": true })photo: shows a parcel at a door, compliant. distance from delivery address: 11 m
  5. +1900 msassistantI can see the driver photographed your parcel at your front door at 14:12, 11 metres from your address. Could you check with anyone else at home and around the porch? If it is still missing, say so and I'll pass this to a colleague to open an investigation. 118 tokens

Who you work with

How we work

  1. Discovery sprint

    2 weeks, fixed price

    We read your data, your incidents and your constraints, then write the architecture, the evaluation plan and a build estimate you can take to another vendor. If a smaller system would do, the estimate says so.

  2. Build

    weekly demos, measured

    A thin end-to-end path first, then depth. Every week you see the system on your data with the metric that matters next to it. Nothing is "done" without a number.

  3. Ownership

    your team or ours, retainer in hours

    It stays with your team, or we run it for you. Either way we write the runbooks, rehearse the failure modes and stay available on a retainer sized in hours a month. The code, the infrastructure and the evaluation set are yours from the first commit.

Security and data

Systems run in your own cloud account and region, typically Google Cloud in the EU or the UK, under agreements that satisfy GDPR; your data never leaves that account. Model providers are used only through endpoints that do not train on submitted data. We document data flows, retention and human oversight for each system.

Contact

Write to JakubWe reply within one working day.

Book a 30-minute discovery call