Software, integrations
and AI in production.

We build applications, connect your systems and apply AI to your data. We also review systems that already exist and are not working as they should.

How we measure quality, performance and value
Illustrative architecture
Resolve an order that has not arrived.

RequestThe order has not arrived. Can we replace it?

Example outcomeShipment created after approval.

Illustrative example · Step 1 of 5Investigate a failed delivery

The customer provides the order number and asks for a replacement. Before looking up the details, the system checks that the order belongs to that customer.

PermissionsEvaluationObservability

A customer asks for a replacement. The agent checks the order, carrier and available stock, then prepares a shipment. The person responsible approves the cost.

If information is missing, the incident stays open. The system saves its checks so the team can pick up the work.

Showing Agents.

Software and product engineering

We design, build and modernise web applications, APIs and business systems, with or without AI.

All expertise areas

Product, service and interaction design

We map user needs and the full service journey, and test assumptions with prototypes. We build accessible interfaces and reusable design systems.

Application architecture and modernisation

We define domain boundaries, data models and API contracts around the business, with the simplest architecture that meets the requirements. We modernise in steps, with rehearsed data migrations.

Code quality and collaborative development

We keep changes small and easy to review. Peer review, static analysis and dependency checks catch problems early, and security is part of everyday development.

Test-first development and quality assurance

We use test-driven development (TDD) to define behaviour before implementing it, with unit, integration and end-to-end tests. Each defect is reproduced in a test before it is fixed.

Continuous delivery and production care

We automate build, test and release in CI/CD, with staged releases and a recovery plan. Runbooks and documentation stay up to date so your team can run the system after handover.

AI-assisted software delivery

We introduce coding agents and assistants into discovery, implementation, testing and maintenance. We set up repository context, permissions and review standards, then compare delivery time, defects and rework with a baseline.

AI strategy and adoption

We help you decide where an investment is worth it and what it takes to get it into daily use.

All expertise areas

Opportunity and readiness assessment

We map how the work is done, find the bottlenecks and check what data is available. We rank opportunities by value, feasibility, risk and the effort needed to change the process.

Technology choices and economics

For each task we compare conventional automation, predictive models and generative AI. We weigh build against buy, provider dependence and the full cost, from data preparation to operation.

Roadmaps and organisational adoption

We define a limited first release and its acceptance criteria. We redesign the workflow with the people who use it, train each role and track adoption, feedback and support requests. The training also supports the AI literacy measures in the EU AI Act.

Operating model and value tracking

We agree who owns the product, the data, risk decisions and support. We measure a baseline, name an owner for each expected benefit and compare results with the full cost. That evidence tells you whether to continue, adjust or stop.

Business systems and data integration

We connect the applications and data your company already uses, each connection with its own permissions.

All expertise areas

Enterprise applications and channels

We connect CRM, ERP, support and collaboration workflows through approved APIs, including Salesforce, HubSpot, Microsoft 365, SharePoint, Google Workspace, Slack and Teams, within each provider’s API terms.

Data pipelines and synchronisation

We connect SQL databases, data warehouses, object storage and vector stores. We design batch and streaming pipelines, with change data capture where needed, lineage, freshness checks and handling of deletions.

Data foundations and ownership

We design reusable data products with named owners, shared business definitions and quality expectations. We modernise warehouse or lakehouse foundations, document data contracts and publish approved datasets in a catalogue.

APIs, events and MCP

We build service APIs, webhooks, queues and MCP servers. We use scoped identities and OAuth where appropriate, manage secrets and make retries safe with idempotency and explicit error handling.

Cloud architecture and deployment

We build on AWS, Google Cloud or Microsoft Azure, starting from the infrastructure you already have.

All expertise areas

Architecture and deployment choices

We assess managed model services, serverless applications, Kubernetes and dedicated inference. Where data boundaries or existing infrastructure require it, we plan hybrid or on-premises deployment.

Infrastructure and identity

We provision repeatable environments with infrastructure as code, including Terraform. Network boundaries, workload identities, secrets, encryption and region are designed together.

Data residency and provider choice

We document where data is stored, where models process it and where logs are kept. Cross-region inference can process requests outside the chosen region, so where residency matters we use regional or EU deployments and prepare an exit plan.

Reliability and cloud economics

We plan scaling, capacity, recovery and service-level objectives. We allocate costs by product or team, set budgets and use measured demand to choose resources and guide FinOps decisions.

AWS

Managed model access, agent services and custom machine learning in your AWS environment.

Amazon Bedrock, Bedrock AgentCore and SageMaker AI.

Google Cloud

Gemini and custom ML, connected to your data and deployed through managed or container services.

Gemini Enterprise Agent Platform (the evolution of Vertex AI), Cloud Run and GKE.

Microsoft Azure

AI applications and retrieval integrated with your Azure services and enterprise identity.

Microsoft Foundry, Azure AI Search and Microsoft Entra ID.

AI platforms, routing and optimisation

A shared platform for several AI applications, with quality, response time and cost measured.

All expertise areas

Semantic routing

We use intent classification or embedding similarity to send each request to the right workflow, agent or knowledge source. We set confidence thresholds and a fallback for ambiguous requests, and enforce authorisation separately.

Model gateways and inference

We select models by measured quality, latency and cost, and centralise provider access, rate limits, budgets and fallbacks.

Semantic caching

We reuse the answer to a similar request only when context, permissions and freshness allow it. We measure incorrect reuse and invalidate stale entries.

MLOps and LLMOps

We version data, prompts, models and configuration. Registries and evaluation run in CI/CD, with staged rollouts and rollback. Monitoring and retraining triggers keep changes repeatable and reviewable.

Agents and workflow engineering

Agents that look things up and carry out tasks in your systems, within limits agreed up front.

All expertise areas

Orchestration and state

We design single-agent and multi-agent workflows with persistent state, scoped memory and checkpoints. Execution budgets, retries and recovery paths let long-running tasks resume safely.

Tool use and agent coordination

We connect tools through APIs and the Model Context Protocol (MCP), and agents through Agent2Agent (A2A) when needed. An MCP server is third-party code, so we pin versions and give each one scoped credentials.

Context, memory and reusable skills

We separate working context from persistent memory, summarise long sessions and load instructions only when they are needed. Repeatable procedures become versioned agent skills with a defined scope and review.

Human oversight and controlled execution

We add approvals and intervention points to actions with consequences. Where there is no API, we assess browser or computer-use agents in isolated environments, with restricted access and recovery controls.

RAG, knowledge graphs and search

Retrieval built so every answer can be checked against its sources.

All expertise areas

Knowledge pipelines

We prepare documents through ingestion, parsing, chunking and embeddings. We track provenance, permissions, updates and deletions so the system retrieves current information that the user is allowed to see.

Hybrid and contextual retrieval

We combine keyword and vector search, metadata filters and reranking. Where it improves results, we add document context to each chunk, and we test query rewriting against representative questions.

GraphRAG and knowledge engineering

We model entities and relationships to connect evidence across sources. Graph traversal and community summaries help with questions about relationships or about a whole collection. They require entity resolution, provenance and a plan to keep the graph up to date.

Agentic retrieval and context assembly

The system breaks a question into parts, chooses sources and searches again when evidence is missing. We limit search steps and context size, keep citations and make the system say so when the sources are not enough.

Structured data and analytical questions

We connect natural-language questions to approved database views through constrained text-to-SQL. We validate queries and metric definitions, apply access checks and keep each query and its result for review.

Choose retrieval around the question.

These approaches can work together. We compare them on your questions and source data, including answer quality, response time and the cost of keeping the system current.

Hybrid search and reranking
When to use itFinding specific facts and passages across documents, including exact terms and semantic matches.
What to assessRetrieval relevance, chunk context and ranking quality. This is the baseline we compare more complex approaches against.
GraphRAG
When to use itConnecting entities across sources, following relationships or summarising themes across a collection.
What to assessGraph quality, extraction and indexing cost, access rules and the effort to keep relationships current.
Agentic retrieval
When to use itQuestions that need several searches, multiple sources or follow-up investigation before an answer is possible.
What to assessSearch-step budgets, latency, evidence coverage and whether the system knows when to stop.
Long-context approaches
When to use itWorking over a bounded set of relevant documents that can fit within the model’s usable context.
What to assessAccuracy as the input grows and depending on where facts appear in it, context limits, token cost, latency and freshness. We compare it with retrieval on the same tasks.

Model selection and applied machine learning

We compare models on your data, and check first whether a simpler solution is enough.

All expertise areas

Model selection and prompting

We benchmark hosted and open-weight models on representative tasks, with versioned prompts and structured outputs. The same evaluation set lets you qualify a replacement when a provider retires a model.

Fine-tuning and model adaptation

When there is enough curated data, we assess fine-tuning, in full or with parameter-efficient methods such as LoRA, and distillation or quantisation for smaller deployments. We check quality on held-out data and review licences and data provenance.

Prediction, ranking and decision support

We build classification, forecasting, recommendation and anomaly-detection models. We compare them with simple baselines, keep training and evaluation data separate, and account for uncertainty and the cost of a wrong prediction.

Document, vision and voice intelligence

We extract the information a workflow needs from documents, images and audio, with a reference to the original.

All expertise areas

Parsing, extraction and classification

We combine OCR, layout analysis and vision-capable models to classify files and extract information. Outputs are validated against schemas and business rules.

Voice and audio experiences

We build voice applications as a chain of speech recognition, language model and speech synthesis, or with speech-to-speech models, and compare both on latency and control. The design covers interruptions, consent and handover to a person.

Data quality and review

We keep source references, measure accuracy field by field and send uncertain results to a person. We prepare labelled examples for evaluation and check synthetic data before using it.

Evaluation and experimentation

We turn what the application must do into test cases and run every change against them.

All expertise areas

LLM-as-judge and human calibration

We use model-based scoring with explicit rubrics, reference examples and cases labelled by people. Before relying on the scores, we measure agreement with reviewers and look at the disagreements.

Datasets and regression checks

We build evaluation sets from representative tasks, edge cases and observed failures. We keep held-out examples and rerun the checks whenever prompts, models or retrieval change.

Agent simulations and outcome checks

We test multi-turn tasks in controlled environments, inspect tool use and verify the final state of the system. We repeat trials to measure variability and check recovery, permissions and escalation when something fails.

Experiments and release decisions

We compare configurations with the acceptance criteria, using shadow traffic or controlled A/B tests alongside offline evaluation. An agent on shadow traffic uses stubs in place of tools that make changes.

Observability and metrics

We record each request’s path to see where it fails and what it costs.

All expertise areas

Tracing across the system

We link model calls, retrieval, tool execution and agent steps in one trace, with sensitive data redacted. Where the tools allow, we follow the OpenTelemetry generative AI conventions so traces are not tied to one vendor.

Quality and operational monitoring

We set up dashboards and alerts for task outcomes, evaluation results, latency distributions, errors, token usage and cost.

Drift and user feedback

We monitor changes in input data and model behaviour, break results down by use case and investigate drift. Reviewed failures and user feedback go into the evaluation sets and inform retraining decisions.

Security, responsible AI and governance

We turn the GDPR and the EU AI Act into controls your team can understand and operate.

All expertise areas

Permissions and data boundaries

We apply access controls to knowledge, tools and model interactions. Tenant isolation, data retention, redaction and secret handling are designed around the information each workflow needs.

Guardrails and adversarial testing

We red-team prompt injection, data exfiltration and unsafe tool use. Prompt injection cannot be fully prevented, so untrusted content must not be able to trigger privileged actions or send data out.

Auditability and ownership

We keep an inventory of models and their uses and record decisions and approvals. For each use we document its classification under the EU AI Act; the legal assessment remains with your advisers.

Fairness, explainability and human review

We measure performance across the relevant user groups and document limitations and uncertainty. Explanations match the decision being made, people are told when they are dealing with an AI system, and they have a practical way to question a result or ask for human review.

Metrics to assess
outcomes and costs.

We agree what outcome the user needs and measure the starting point. Then we choose the project’s metrics, including cost and the time the team spends reviewing or correcting the work.

Answer and retrieval quality

Does the response answer the question and have supporting sources?

Example measures
Answer relevance, faithfulness to sources, citation accuracy, retrieval precision and recall.

We use suitable reference data and human review. A score from an automated judge is an estimate to validate, not ground truth.

Agent effectiveness

Does the workflow complete the intended task?

Example measures
Verified task completion, correct tool calls, success rate over repeated runs and how often every run succeeds, escalations to a person and approval outcomes.

We read results in context: handing a case to a person at the right moment can be the correct outcome.

Routing and cache correctness

Does each request reach the right destination?

Example measures
Intent classification accuracy, fallback frequency, eligible cache-hit rate and incorrect answer reuse.

We check ambiguous requests, stale context and permission boundaries. A high hit rate alone does not show that the cache behaves correctly.

Predictive performance

Do predictions improve the decision compared with the baseline?

Example measures
Precision and recall, probability calibration, forecast error and ranking quality.

We choose measures according to the cost of each kind of mistake, and account for class imbalance, time-based validation, data leakage and drift.

Speed and reliability

Does the system respond reliably when people need it?

Example measures
Time to first token, end-to-end p50 and p95 latency, throughput, timeouts and error rates.

We look at distributions and at each stage of the workflow. An average can hide a poor experience for some users.

Cost and product value

Does the saving or revenue justify what the system costs to run?

Example measures
Cost per completed task, total operating cost, adoption, time saved after review and correction, and progress against the agreed business outcome.

We assess savings together with quality and task outcomes, and include review and correction time in the total cost.