services

what we do, and how we do it well.

Three disciplines that tend to arrive together. Take on the whole thing or the one edge that has gone dull - whichever actually helps.

how we work

the same three moves, every engagement.

  1. 01

    look first

    We start by reading what you already run - the code, the data, the process as it actually happens, not the diagram of it. No proposal until we understand the shape of the problem.

  2. 02

    sharpen the edge

    We fix the parts that carry the weight: the slow path, the manual step, the answer nobody trusts. Small, observable changes you can verify, not a big-bang rewrite.

  3. 03

    hand it back legible

    You get dashboards, tests, and a short runbook - so the next person on your team can see what changed and keep it sharp without us.

how we engage

ways to work together.

Pick the shape that fits the problem. We are happy to start small and grow the engagement if it makes sense.

scoped project

a defined problem with a clear finish line

We agree the outcome, break it into observable milestones, and build to them. Best when you know roughly what you need and want a fixed shape around it.

  • a written scope and milestone plan
  • regular working demos, not status decks
  • handover with tests, dashboards, and a runbook

embedded engineering

a team that needs senior hands for a stretch

We work inside your team and process for a set period - reviewing, building, and levelling up the codebase alongside your engineers.

  • work in your repos, standups, and review flow
  • focus on one or two hard problems at a time
  • knowledge left behind, not hoarded

advisory & review

a decision or a system you want a second read on

A shorter engagement to look hard at what you run and tell you the truth about it - an architecture review, an AI feasibility read, a performance audit.

  • a focused review of code, data, or architecture
  • a written findings doc with priorities
  • a call to walk through it and answer questions

technologies

the toolkit.

A representative slice - we choose per problem and per team, and we are happy to work in your existing stack.

languages

TypeScriptPythonGoRustSQL

ai & data

OpenAIAnthropicLangChainpgvectorPineconedbt

backend

Node.jsHonoFastAPIPostgreSQLRedisKafka

cloud & ops

CloudflareAWSGCPDockerTerraformOpenTelemetry

questions

things people ask before starting.

do you only fix existing systems, or build new ones too?

Both. The bias is toward sharpening what you already run, because that is usually the faster win. But when something genuinely needs building, we build it to the same standard and hand it back legible.

how do we start?

Send a message with what you run and where it hurts. We read every enquiry ourselves and reply with either some questions, a call, or an honest note that we are not the right fit. No sales sequence.

how big is a typical engagement?

It varies from a short advisory review to a multi-month build. We take on a small number of engagements at a time so each gets real attention, which also means we sometimes have a short wait before we can start.

will we work with the people who actually write the code?

Yes. You work directly with the engineers doing the work, not an account manager relaying messages. The people who scope your project are the people who build it.

what do you hand over at the end?

Working software, plus the things that keep it working: tests, dashboards, and a short runbook so your team can maintain and extend it without us. Clever code that only we can read is a failure, not a feature.

which technologies do you work in?

We are not precious about the stack - we pick what fits the problem and what your team can maintain, and we are happy to work in your existing codebase. In practice a lot of TypeScript, Python, Go, PostgreSQL, and the major cloud and AI providers.

start here

have a system that used to feel fast?

Tell us what it does and where it hurts. We’ll tell you honestly whether it needs sharpening or rebuilding - and what that would take.