Software engineering

Built to be maintained, not only delivered

Anyone can produce code quickly now. What separates an application that lasts from one that is rewritten in three years is what surrounds the code: requirements written to be executed, decisions written down, and quality checked at every commit rather than at acceptance.

The expensive part of software is never the first version.

Organisations put around thirty per cent of their IT budget into managing technical debt, and developers spend a large share of their time working around it rather than building. None of that debt was created deliberately. It accumulates through decisions nobody wrote down, requirements clarified verbally, and quality checks that were negotiable when the date got close.

So we work on the surroundings. Behaviours written in a form that executes, so the gap with the code shows by itself. Architecture decisions recorded with what was rejected and why. A small number of blocking gates, few enough that nobody switches them off under pressure. And accessibility and page weight treated as requirements from the first sprint, because since June 2025 the European directive makes the first one a legal duty rather than a preference.

What we do

Four workstreams, from the first requirement to the tenth year of service.

WORKSTREAM 01Fit, not fashion

Design and build

Web, mobile and cloud-native applications, with the interface designed with the people who will use it. Microservices where two rhythms genuinely differ, and a single deployable where they do not.

the architecture answers a constraint, or it is not adopted

  • Web, mobile and cloud-native applications
  • A boundary per domain, when the rhythms differ
  • Design system and journeys tested with real users
WORKSTREAM 02At commit, not at acceptance

Hold the quality line

A small number of blocking gates at commit time: behaviour coverage, dependency vulnerabilities, automatic accessibility violations and a page weight budget. Few enough that none of them gets switched off.

an assistant proposes, a named engineer answers for it

  • One test per behaviour, that fails without it
  • Accessibility verified at every commit
  • Generated code reviewed by a named owner
WORKSTREAM 03A map, not a score

Audit and locate the debt

Code, security and dependency audits that produce a map rather than a score. What matters is not how much debt exists, it is whether it sits where the business asks for the most change.

debt is arbitrated with an estimate next to it

  • Debt located file by file, not averaged
  • Crossed with the change history
  • An estimate in front of each remediation
WORKSTREAM 04Same chain as day one

Sustain and evolve

Corrective and evolutionary maintenance on the same chain that built the application, with accessibility and weight measured on every release. A product that stops being measured starts drifting quietly.

eco-design measured on the journey, not claimed

  • Fixes and changes on the delivery chain, not beside it
  • Weight and requests budgeted, then held
  • Debt tracked as a trend, published to the team

What you get

One project runs through the four deliverables below: rebuilding a customer portal. Each step states what is actually handed over, in the order it is handed over.

How we deliver

PHASE 012 to 6 weeks

Frame

depending on the number of journeys and the state of existing requirements

  • Expected behaviours, written to be executed
  • Accessibility and weight requirements, quantified
  • Blocking gates, few in number and owned
PHASE 024 to 10 weeks

Build

depending on the scope and the number of integrations

  • Architecture decisions written down, with what was rejected
  • The first journey in production, not in a demo
  • The chain that checks at every commit
PHASE 033 to 6 months

Extend

depending on the pace of the business and the debt already there

  • The remaining journeys, at the same standard
  • Debt located, costed, arbitrated
  • The internal team equipped on the same chain
PHASE 04continuous

Sustain

service commitment defined with you

  • Fixes and changes on the same chain
  • Accessibility and weight measured on every release
  • Debt tracked as a trend, not as an absolute value
Adservio and Vercel partnership, augmented engineering
PARTNERSHIP · VERCEL

Augmented engineering, in partnership with Vercel

Adservio and Vercel share a simple conviction: ship fast without giving up performance or security. The partnership anchors our development practice on a modern delivery platform, from commit to production, through preview deployments and the edge.

In practice, our teams build and industrialise Next.js applications that are fast, observable and eco-designed, AI-augmented at each step: measurable time-to-market, a quick web experience, and a codebase that stays maintainable over time.

What software actually costs

30%
of IT budgets go to managing technical debt on average, according to the 2025 Protiviti survey: it is the largest line nobody planned
42%
of developer time is spent dealing with technical debt in Stripe's estimate, which is time not spent on what the business asked for
28.06.2025
the date the European Accessibility Act became applicable to consumer digital services, on the EN 301 549 standard, WCAG 2.1 level AA

Products that are still standing

Forty-two applications held to a measured standard
CNFPTPublic sector
Quality & accessibility
Case(01)

Forty-two applications held to a measured standard

96% accessibility score · 42 applications

The challenge

A critical application estate used daily by more than 120,000 local government staff, where an outage is noticed by the users before the monitoring, and where accessibility is a legal duty rather than a preference.

Our answer

Systematic instrumentation, measurable service levels and accessibility tracked release by release rather than audited once a year, with the practice transferred to the internal teams.

Read the case study
A product where model accuracy is the feature
Pearl DentalHealth & medtech
Product engineering
Case(02)

A product where model accuracy is the feature

96% model accuracy · error rate 35% → 1%

The challenge

Dental charting done by hand, slow and inconsistent, on a product where a wrong reading is not a defect to fix later but a clinical answer given to a practitioner.

Our answer

Deep learning built into the product rather than bolted onto it, co-designed with the practitioners who use it, with accuracy measured as a delivery criterion and not as a research result.

Read the case study
TALK TO AN EXPERT

Build something still standing in five years

Requirements written to be executed, decisions recorded, a small number of gates that hold, and debt located rather than averaged.

By submitting this form, you agree to our privacy policy.

Frequently asked questions

From decisions nobody wrote down and requirements clarified verbally, far more than from bad code. Around thirty per cent of IT budgets go to managing it, and none of it was created deliberately: it accumulates every time a gate becomes negotiable under deadline pressure.

Only where two parts genuinely change at different rhythms. Splitting by screen multiplies network calls on a journey that fits in one transaction, and moves complexity from the code into operations. A boundary is a cost, and it has to buy something.

In the requirements, not at acceptance. The European Accessibility Act has applied to consumer digital services since 28 June 2025, on the EN 301 549 standard which follows WCAG 2.1 level AA. Written up front it costs hours; found at acceptance it costs a rebuild.

By having very few of them. A long list of blocking checks gets disabled the first time a release is at risk, and never comes back. Four gates that always hold are worth more than twenty that hold until the first difficult week.

A named engineer, the same as for any other code. The volume produced does not change who signs. Review stops being a formality precisely because the amount of code arriving has gone up, not despite it.

No, it means budgeting weight and requests the way you budget latency. Most of the result comes from the same levers that make a page fast: fewer requests, less transferred weight, better caching. The user sees a quicker product, not a smaller one.

Framing takes 2 to 6 weeks depending on the number of journeys and the state of existing requirements, and produces the executable behaviours, the quantified accessibility and weight requirements, and the blocking gates. The first journey in production, not in a demo, follows in 4 to 10 weeks.