Capabilities

What we work in

We are not tied to a single stack, but we are not neutral either. These are the capabilities we have run in production long enough to know where they break.

Capabilities
41
Domains
8
Tools and techniques
170

AI and machine learning

AI and machine learning

Systems that use models to do real work — answer from your own documents, take actions on your behalf, or handle the first line of a conversation. Built to be measured, not demoed.

  • Healthcare AI

    Administrative and documentation workloads in clinical settings: notes, coding support, triage assistance and patient correspondence. Clinician-in-the-loop by design — these are decision-support tools, not diagnostic devices.

    • De-identification
    • FHIR / HL7
    • Clinical NLP
    • Audit trails
    • Access control
  • Fine-tuning and adaptation

    When prompting genuinely is not enough: adapting a smaller model to your domain for lower latency and cost, with an honest comparison against the simpler option.

    • LoRA / PEFT
    • Distillation
    • Instruction tuning
    • Dataset curation
  • Document intelligence

    Turning invoices, contracts, forms and scans into structured data your systems can act on, with confidence scores and a review queue for the uncertain cases.

    • OCR
    • Layout models
    • Schema extraction
    • Confidence thresholds
  • Forecasting and classical ML

    Demand forecasting, churn, scoring and anomaly detection. Frequently the right answer where a language model would be slower, dearer and harder to explain.

    • scikit-learn
    • XGBoost
    • Prophet
    • Feature engineering
    • Pandas
  • Computer vision

    Inspection, counting, defect detection and image classification, on the edge or in the cloud.

    • PyTorch
    • YOLO
    • ONNX Runtime
    • Edge deployment

MLOps and model delivery

MLOps and model delivery

Getting a model from a notebook into production, and keeping it working once real traffic and real data drift arrive. This is where most AI projects quietly fail.

  • Model serving

    Inference endpoints sized for your actual traffic, with autoscaling, batching and a cost model you can predict before the invoice arrives.

    • vLLM
    • TorchServe
    • SageMaker
    • Kubernetes
    • GPU autoscaling
  • Feature and prompt management

    One definition of a feature or a prompt, shared between training and serving, so the model does not see different data in production than it did in training.

    • Feature stores
    • Prompt versioning
    • dbt
    • Schema contracts
  • Inference cost engineering

    Caching, routing between models, batching and right-sizing. Usually the difference between a pilot that scales and one that gets cancelled at the budget review.

    • Prompt caching
    • Model routing
    • Token budgeting
    • Batch inference

DevOps and delivery

DevOps and delivery

The pipeline from a commit to production. The measure of it is not sophistication — it is whether anyone hesitates before deploying on a Friday afternoon.

  • Infrastructure as code

    Environments defined in code, reviewed like application code and recreated rather than repaired — so the estate has a change history that explains itself.

    • Terraform
    • Pulumi
    • CloudFormation
    • Ansible
    Cloud Consulting and Engineering
  • Containers and orchestration

    Workloads packaged so they run identically on a laptop and in production, scheduled on infrastructure sized to what you actually run.

    • Docker
    • Kubernetes
    • Helm
    • ECS
    • Fargate
    DevOps
  • Secrets and supply chain

    Credentials in a proper store, dependencies scanned, images signed. Cheap to set up at the start and awkward to introduce once a system is live.

    • Vault
    • SOPS
    • Dependency scanning
    • SBOM
    • Image signing

Platform stability

Platform stability

Keeping systems up, fast and diagnosable once they carry real load. Reliability is a product feature with a cost — the job is to decide how much you are buying, deliberately.

  • Incident response

    A rota, runbooks and blameless post-incident reviews — with alerts tied to user-visible symptoms so the pager stays credible and people keep answering it.

    • On-call rotation
    • Runbooks
    • Post-incident review
    • Alert tuning
  • Resilience and capacity

    Load testing, failure injection and capacity planning, so you find out how the system breaks before your customers do.

    • k6
    • Load testing
    • Chaos experiments
    • Capacity modelling
    • DR drills
  • Performance engineering

    Finding and fixing what is actually slow — the query, the N+1, the payload — rather than adding capacity to hide it.

    • Profiling
    • Query optimisation
    • Core Web Vitals
    • Caching strategy

Product engineering

Product engineering

The applications themselves — web, mobile, APIs and the interfaces people use all day.

  • Web applications

    Browser-based systems built to stay fast and accessible under real load.

    • TypeScript
    • React
    • Next.js
    • Astro
    • Node.js
    Web Application Development
  • Mobile applications

    iOS and Android, native or cross-platform, plus the release discipline behind them.

    • React Native
    • Swift
    • Kotlin
    • Fastlane
    Mobile Application Development
  • APIs and integration

    The connective work — talking cleanly to the ERP, the finance system and everything that predates the project.

    • REST
    • GraphQL
    • gRPC
    • Event-driven
    • Webhooks
    Custom Software Development
  • Interface design

    Design for software people use for hours, handed over as tokens and states rather than a flat picture.

    • Figma
    • Design tokens
    • Storybook
    • WCAG 2.2
    UI and UX Design
  • Backend and services

    The systems underneath — transactional, batch and everything in between.

    • Python
    • Java
    • .NET
    • PostgreSQL
    • Redis
    Software Product Development

Data engineering

Data engineering

Pipelines and reporting where the numbers agree with each other. The common failure is not a missing dashboard — it is two dashboards that disagree and nobody able to say which is right.

  • Warehouse and modelling

    One modelled definition of a metric, so every team stops inventing its own.

    • dbt
    • Snowflake
    • BigQuery
    • PostgreSQL
    • Dimensional modelling
    Big Data and Analytics
  • Pipelines and orchestration

    Transformations that are version controlled, reviewed and tested — because a pipeline that silently drops rows is worse than no pipeline.

    • Airflow
    • dbt
    • Spark
    • Python
    Big Data and Analytics
  • Streaming and events

    Event-driven data movement where batch is too slow to be useful.

    • Kafka
    • Kinesis
    • CDC
    • Flink
  • Quality and governance

    Freshness and quality checks, lineage, and access control that survives an audit.

    • Data contracts
    • Great Expectations
    • Lineage
    • Row-level security

Cloud and infrastructure

Cloud and infrastructure

Architecture that fits what you run and what you can afford to spend on it.

  • Cloud architecture

    Designed against what you actually run today, with the cost modelled before anything is provisioned.

    • AWS
    • Azure
    • Google Cloud
    • Well-Architected reviews
    Cloud Consulting and Engineering
  • Migration

    Staged moves with a tested rollback at every step, rather than a weekend cutover with no way back.

    • Dependency mapping
    • Landing zones
    • Data migration
    • Cutover runbooks
    Cloud Migration
  • Security baseline

    Least-privilege access, encrypted storage, private networking and secrets in a proper store.

    • IAM
    • KMS
    • Private networking
    • Policy as code
  • Cost engineering

    Most cloud bills are large because something was provisioned for a launch and never resized. Sometimes the recommendation is to move less.

    • Cost allocation
    • Right-sizing
    • Savings plans
    • Budget alerts

Quality engineering

Quality engineering

A suite that always passes is not necessarily a good one — it might just be testing the parts that were never going to break.

  • Test automation

    Automation aimed at risk: what would actually hurt if it failed on a Monday morning.

    • Playwright
    • Vitest
    • Jest
    • Contract testing
    Software QA and Testing
  • Accessibility

    Keyboard paths, focus handling and screen-reader semantics written as the components are, not retrofitted.

    • WCAG 2.2 AA
    • axe-core
    • Screen reader testing
    UI and UX Design
  • Security testing

    Dependency and code scanning in the pipeline, with findings triaged rather than dumped into a report.

    • SAST
    • Dependency scanning
    • Secrets detection
    • Threat modelling

Running on something not listed here?

Ask anyway. Most of our work involves integrating with technology we did not choose — a long-lived estate rarely matches anybody's preferred stack.

Start a project