KyaniteLabs Studio — est. 2017
Services & capabilities

Four practice areas. One way of working.

We don’t sell discovery sprints, audits, or design systems as standalone products. We work on production software, end-to-end, until it ships. Below is the kind of work we do most of and how we approach it.

01 / Practice area

Backend & distributed systems

What we do

Production backend systems that have to be correct under load and on-call. Payments rails, dispatch engines, claim-adjudication pipelines, multi-tenant data planes. We work primarily in Rust, Go, and TypeScript, with Postgres as the default. We’re comfortable in Java and Python when the existing codebase calls for it.

How we approach it

We start by sitting with the people who currently operate the system. The first week is usually reading runbooks, watching incidents, and tracing one real request from the edge to the database and back. We’re looking for the implicit contracts — the things the system does that nobody wrote down. Then we build, in small increments, with the diff-against-legacy harness running continuously. We avoid distributed transactions and exotic consensus when the same problem can be solved with a unique constraint and an idempotent apply step.

Stack we reach for

Rust · Go · TypeScript / Node · Postgres · Kafka · NATS · AWS / GCP

Example — Northwind Freight: a continental dispatch engine, rebuilt without downtime →

02 / Practice area

Mobile — iOS & Android

What we do

Native iOS and Android applications, with a particular focus on field-use software: handheld terminals in a warehouse, clinical workflow on a tablet at a bedside, dispatcher tools in a vehicle. We treat offline as the default state and online as the optimization, not the other way around.

How we approach it

We write native Swift and Kotlin. We don’t use React Native unless you’re already on it and switching would be more disruptive than maintaining it. We design the sync engine before the UI; we make every mutation queue-able and inspectable; we build the “why is my screen out of date” debugging surface before we need it. When we’re done you can hand the codebase to one or two of your engineers and they will be able to ship the next feature.

Stack we reach for

Swift · Kotlin · SwiftUI · Jetpack Compose · SQLite / Room · GraphQL · Bluetooth LE

Example — Lumen Care: a handoff tool nurses actually use during a shift →

03 / Practice area

Infrastructure & platforms

What we do

Deployment pipelines, observability, and developer-experience work for engineering teams between roughly ten and a hundred and twenty people. Multi-region production deployments, on-call rotations that don’t burn out the staff engineer, internal developer platforms that are smaller than a Backstage installation but bigger than a wiki.

How we approach it

We don’t install Kubernetes unless you’re already running it well. Most of our infra engagements end with fewer services running than they started with, not more. We measure success by changes-per-week, time-to-deploy, and the size of the on-call rotation — not by adoption of any particular tool. If we leave you on three EC2 instances and an RDS, that’s fine.

Stack we reach for

Terraform · AWS / GCP · Tailscale · Buildkite · OpenTelemetry · Honeycomb · Grafana

Example — Meridian Health: claims reconciliation across four state Medicaid contracts →

04 / Practice area

AI & ML engineering

What we do

Production work around model evaluation, inference platforms, retrieval systems, and the boring data engineering that sits beneath all of it. We’re not a research lab; we’re the engineers who take what your research team built and make it run twenty-four hours a day, with the latency and cost numbers your CFO can defend.

How we approach it

We treat models as components in a system. The interesting work is almost always around them: deterministic eval pipelines, replay infrastructure, the boundary between LLM output and the deterministic systems that act on it. We will tell you if the right answer is a SQL query and not a model. About a third of the time, it is.

Stack we reach for

Python · Ray · DuckDB / Arrow · pgvector · Modal · vLLM · OpenAI / Anthropic / local

Example — Cresta ML: an eval pipeline that finishes in 22 minutes, not 9 hours →

What we don’t do

We don’t take audit-only engagements. We don’t do brand or marketing-site work. We don’t take MSAs with arbitration clauses. We don’t bill by the hour. We don’t white-label as an extension of your team without our name on the commits.

We’ll happily refer you to people we trust for any of the above. There’s a short list of studios and individuals we hand work to two or three times a year — ask and we’ll send the names.