Skip to content

04 The lab

Software with the rigour of the science it serves.

Research software fails differently from business software. It fails quietly, in the fifth decimal place, eighteen months after the result was published. We engineer against that specific risk.

01 Domains

Where we are useful to a research programme.

We are engineers, not domain scientists. The division of labour is clear: you own the science, we own whether the software is worthy of it.

D1

Instrument control & acquisition

Deterministic control loops, timing-critical acquisition, and telemetry pipelines that do not lose samples when the network hiccups. Provenance recorded at the point of capture.

D2

Numerical & simulation workloads

Solvers and simulation pipelines taken from a single workstation to a scheduled, reproducible, cost-bounded cluster workload — without a rewrite that the scientists cannot read.

D3

Signal, image & spectral processing

High-volume processing pipelines with validated numerics: calibration, registration, denoising, feature extraction and downstream inference, versioned end to end.

D4

Research data platforms

Catalogued, queryable, citable data with lineage from raw capture to published figure. Storage tiering designed around access patterns rather than convenience.

D5

HPC & GPU orchestration

Scheduling, queue strategy, containerisation and cost control across on-premise clusters and burst-to-cloud capacity. Utilisation reported, not assumed.

D6

Scientific software hardening

The grant-funded codebase that now has forty users. Tests, packaging, CI, numerical regression suites and documentation — without breaking the science it encodes.

02 Standard of rigour

The practices that keep a result defensible.

Everything here exists because we have seen its absence cost someone a year.

  1. 01

    Reproducibility as a build artefact

    Pinned environments, containerised toolchains and deterministic seeds. A result from eighteen months ago can be regenerated bit-for-bit, or the system tells you why not.

  2. 02

    Numerical regression testing

    Golden datasets with tolerance bands, so a refactor that shifts the fifth decimal place is caught by a pipeline rather than by a reviewer six months later.

  3. 03

    Provenance and lineage

    Every derived dataset carries its inputs, code version, parameters and instrument state. Auditable by a third party without archaeology.

  4. 04

    Uncertainty carried through

    Error propagation treated as a first-class concern rather than dropped at the first aggregation. Confidence reported wherever a number is displayed.

  5. 05

    Performance with a budget

    Profiling before optimising, and a stated cost per run. Compute spend is a scientific constraint, not an infrastructure detail.

  6. 06

    Software the group can own

    Written to be read by domain scientists. Reviewed with them, documented for them, and handed over with the intent that we become unnecessary.

03 Collaboration models

Four ways we plug in.

Research funding and procurement rarely fit a standard consulting shape. These are the arrangements that have worked.

C1

Research group partnership

Embedded engineering capacity alongside a research team — building the platform, pipeline or instrument software while the group focuses on the science.

C2

Instrument & hardware builders

The software layer for a physical instrument: firmware interfaces, control software, acquisition, analysis and the customer-facing application.

C3

Grant & consortium work

Named technical partner on funded programmes, including deliverable definition, work-package ownership and the reporting that comes with it.

C4

Internal R&D for industry

Corporate research teams who need a prototype taken to the standard where the rest of the business can adopt it.

Research brief

Bring the instrument, the dataset, or the code you inherited.

A short technical conversation about what the software has to guarantee, and what it currently does not. Useful whether you are scoping a grant deliverable, hardening an existing codebase, or building an instrument from scratch.

or write directly — [email protected]