Technology
What we build on, and why
A stack chosen for maintainability rather than novelty. Every choice below has a reason, and several of them are reasons to use less technology than you might expect.
AI & models
We default to Claude for reasoning-heavy work and route simpler steps to smaller models. The architecture keeps providers swappable, because pricing and capability move every few months.
- Claude (Anthropic)Primary for reasoning and agents
- OpenAIWhere a specific capability fits better
- Open-weight modelsSelf-hosted for residency constraints
- Vercel AI SDK
- LangGraphAgent orchestration
- TemporalDurable long-running workflows
Data & retrieval
Answer quality is capped by retrieval quality, so this layer gets more attention than the model choice does.
- Postgres + pgvectorDefault under a few million chunks
- ElasticsearchHybrid keyword and vector search
- dbt
- Airflow / Dagster
- Snowflake
- BigQuery
- Databricks
- Kafka / DebeziumChange data capture
Cloud & infrastructure
We deploy into your account, defined entirely in Terraform, so nothing depends on us holding the keys.
- AWS
- Azure
- Google Cloud
- Terraform
- KubernetesWhen the scale genuinely warrants it
- Docker
- Cloudflare
Delivery & operations
Deliberately conventional. The goal is a platform your team can still operate in two years.
- GitHub Actions
- GitLab CI
- ArgoCD
- Grafana / Prometheus
- OpenTelemetry
- PagerDuty
- Sentry
Evaluation & observability for AI
The layer most teams skip, and the reason their AI features cannot be changed safely.
- Langfuse
- LangSmith
- Custom evaluation harnessesVersioned with your code
- MLflow
Security
Scanning that gates the pipeline on new findings rather than producing a dashboard nobody opens.
- Trivy
- Snyk
- Semgrep
- Gitleaks
- Checkov / OPA
- HashiCorp Vault
Positions
Opinions that shape the stack
Several of these will cost us work from people who wanted to hear something else. They are still what we think.
Boring where it counts
Terraform, containers, a managed control plane, whatever CI you already pay for. The interesting engineering goes into making the pipeline fast and failures obvious — not into adopting a tool nobody will understand in two years.
Probably not Kubernetes
A managed container service or serverless platform is simpler, cheaper and adequate for most workloads. Kubernetes earns its operational cost at real scale or with genuinely complex scheduling. Choosing it by default is one of the most expensive mistakes in this field.
Postgres before a vector database
Under a few million chunks, pgvector alongside your relational data is simpler, cheaper and easier to keep consistent. Dedicated vector databases earn their operational cost higher up. We will tell you which side of that line you are on.
Providers stay swappable
Model pricing and capability move every few months. We abstract the provider and keep a fallback path, so a price change or an outage is a config change rather than a rewrite.
Your cloud account, not ours
We deploy into your tenancy under roles you grant and can revoke. Smaller attack surface, simpler compliance story, and nothing to extract from us if the relationship ends.
Evaluation is not optional
The layer most teams skip. Without it nobody can say whether a change helped, and nobody else can safely maintain the system. It is in scope on every AI engagement we run.
Cloud and platform relationships
We work across AWS, Azure and Google Cloud and hold no exclusive reseller arrangement with any of them — deliberately, because a partner incentive is a bad reason to recommend a platform. Where a partner programme gives you credits or better support terms, we will tell you and help you claim it.
Partner programme →Systems we connect to
CRMs, ERPs, support desks, commerce platforms and the emailed spreadsheet your largest supplier insists on. Integration difficulty drives automation cost more than model choice does, so it is worth checking early.
Integration directory →Wondering whether we can reach your systems?
Tell us what you run. Integration difficulty is the single biggest driver of automation cost, and it is a five-minute conversation to find out.
Or email [email protected] · we reply within 1 business day