// expertise

Six things we build. Here's what each one costs you in calendar time.

Every engagement starts the same way: a paid two-week discovery where we build the smallest thing that proves the approach works, plus the evaluation that tells us whether it does. You own that code whether or not we continue.

  • 01

    RAG & LLM engineering

    Most RAG projects fail in retrieval, not generation. The model is fine; it was handed three irrelevant chunks and half a table. We spend our time on the part that decides the answer — parsing, chunking, hybrid search, reranking — and we measure it.

    What the engagement looks like

    • Week 1—2: we build an eval set from your real questions and your real documents. Usually 150—400 pairs, labelled with your subject-matter people.
    • Week 3—5: parsing and chunking pass, hybrid retrieval, reranking. Every change scored against the eval set, so improvements are provable.
    • Week 6—8: citation enforcement, refusal behaviour, cost and latency tuning, then a staged rollout behind a feature flag.
    • Ongoing: the eval suite runs in CI. When you change a prompt or swap a model, you find out before your users do.

    Typical stack

    • Python
    • pgvector
    • Claude
    • OpenAI
    • LlamaIndex
    • Ragas
    • Unstructured
    • FastAPI

    Related work

  • 02

    Voice AI agents

    A voice agent lives or dies on two things: how fast it replies, and how gracefully it gets out of the way. Under roughly 800ms round trip it feels like a conversation. Above 1.2 seconds people start talking over it and the call falls apart.

    What the engagement looks like

    • Week 1: we listen to thirty of your real recorded calls and write down what actually happens, including the awkward parts.
    • Week 2—3: conversation design and a tool server — the functions the agent can call to check availability, look up an account, create a ticket.
    • Week 4—6: latency work hop by hop, interruption and barge-in handling, and the handoff rule for when it should fetch a human.
    • Week 7+: shadow mode on live traffic, transcript review with your team, then a slice of real calls.

    Typical stack

    • Retell AI
    • ElevenLabs
    • Deepgram
    • Twilio
    • FastAPI
    • WebSockets
    • Postgres

    Related work

  • 03

    FastAPI & ML backends

    The service layer between a model and a product. Streaming responses, request queuing, batching that respects your GPU, and the unglamorous reliability work — timeouts, retries, idempotency keys, structured logs — that decides whether it survives a traffic spike at 3am.

    What the engagement looks like

    • Week 1: load profile and failure review. What does peak look like, and what happens today when a dependency is slow rather than down?
    • Week 2—4: the service itself — typed contracts, streaming endpoints, background workers, and a deployment that can roll back.
    • Week 5—6: load testing to a number we agree on up front, then tuning until it holds there with headroom.
    • Handover: runbook, dashboards, alerts that page a human only when a human can help.

    Typical stack

    • FastAPI
    • Pydantic
    • Celery
    • Redis
    • Postgres
    • Docker
    • ONNX
    • Grafana

    Related work

  • 04

    ETL & data pipelines

    Getting messy source data somewhere queryable, on a schedule, with backfills that don't corrupt what's already there. The hard part is never the happy path — it's the day a source silently changes its date format and nobody notices for three weeks.

    What the engagement looks like

    • Week 1: source audit. Formats, volumes, how often each one lies to you, and what "correct" means for each field.
    • Week 2—4: extraction and typed schemas. Every row that fails validation goes to a quarantine table, not to /dev/null.
    • Week 5—6: orchestration, idempotent loads, backfill tooling, and freshness checks that alert when a feed goes quiet.
    • Ongoing: schema-drift detection, so a changed upstream field is an alert rather than a silent data quality problem.

    Typical stack

    • Airflow
    • dbt
    • Python
    • Pandas
    • DuckDB
    • Postgres
    • Pydantic

    Related work

  • 05

    Workflow automation

    The internal processes your team runs by hand and quietly resents. We map the real process — not the documented one — automate the deterministic parts, put a human approval on anything that moves money, and leave an audit trail.

    What the engagement looks like

    • Week 1: we sit with the people doing the work and watch. The documented process and the real one are never the same.
    • Week 2—3: build the deterministic path first. Idempotent writes, so a retry can never create a second invoice.
    • Week 4: exception handling — anything ambiguous routes to Slack or email for a human yes or no, with full context attached.
    • Week 5: handover and training, including how to change the workflow yourselves without calling us.

    Typical stack

    • n8n
    • Make.com
    • Webhooks
    • Slack API
    • Google APIs
    • Python

    Related work

  • 06

    Full-stack product builds

    When the AI part is one feature inside a product that still needs auth, billing, dashboards, permissions and an admin panel. One team builds all of it, which means nobody gets to blame the other side of the API.

    What the engagement looks like

    • Week 1—2: scope to a first release that a real user can complete a real task in. Everything else goes on a list for later.
    • Week 3—10: two-week cycles, demoed to you at the end of each. You have access to the repo and the staging environment from day one.
    • Release: production deploy, monitoring, and a fortnight of us watching it closely while you use it.
    • After: either we keep going on the backlog, or we hand it to your team with documentation written for engineers, not for procurement.

    Typical stack

    • React
    • Vite
    • TypeScript
    • Node
    • FastAPI
    • Postgres
    • Stripe

    Related work

// start here

Not sure which of these you need?

That's a normal place to start. Describe the problem in the intake form and we'll tell you on the call which of these it actually is — including if the answer is "none of them".

Book a call