Skip to content
Company

How We Run an Engagement: From First Call to Production

Most blockchain projects fail on process, not technology. Here is the engagement model we use to take an institutional client from a problem statement to a system running in production — with the controls that demands.

Adrian Vance

Founder & Managing Partner

6 min read

The hard part of building production blockchain and trading systems for institutional clients is rarely a single algorithm. It is the process: scoping ambiguous requirements, making architectural decisions that will hold up under audit and load, and delivering without a window large enough to lose a trading session. Over many engagements we have settled into a model that consistently gets clients from a problem statement to a system in production. It is not glamorous, and that is the point.

Discovery before estimates

We do not quote a number off a one-paragraph brief. The first phase is a focused discovery: we map the assets at stake, the regulatory and operational constraints, the existing systems we have to interoperate with, and the failure modes the client most fears. The output is a written architecture and threat model that the client signs off on. This is where we find the requirement that was implied but never stated — the one that, discovered three months later, blows up the timeline.

Architecture is a deliverable, not a whiteboard photo

For systems where correctness is non-negotiable — matching engines, settlement contracts, custody flows — the architecture document is itself a deliverable. It states the trust boundaries, the invariants that must always hold, the privileged roles and how they are governed, and the recovery story for every component. This document drives the test plan and the audit scope. When an auditor or a regulator asks why a decision was made, the answer already exists in writing.

Build behind the safety of shadow mode

Wherever we are replacing a live system, we run the new one in shadow first. A new matching engine processes real order flow alongside the incumbent and reconciles every fill to byte-for-byte equality before it routes a single live order. A new execution agent runs in shadow for weeks, its decisions recorded and compared, before it touches real risk. Cut-over is then a gradual, reversible, feature-flagged migration, pair by pair and venue by venue, with a fast path back to the old system. The goal is for go-live to be a non-event.

Security is continuous, not a gate at the end

We threat-model during design, write invariants as we build, fuzz and property-test throughout, and commission an independent audit before anything holding value reaches mainnet. Security that is bolted on at the end finds the cheap bugs and misses the expensive ones, which are architectural. By the time external auditors see the code, the design has already been built to make whole classes of attack impossible.

Hand over a system the client can run

An engagement is not finished when the code works on our machines. It is finished when the client's team can operate, observe, and recover the system themselves: runbooks, dashboards with the latency and reconciliation metrics that matter, alerting, and a documented incident response. We would rather over-invest in observability and handover than leave a client dependent on us to keep the lights on.

There is no proprietary magic here. It is the consistent application of discovery, written architecture, shadow validation, continuous security, and real handover. The technology varies from engagement to engagement; the process is what makes the technology land.

Adrian Vance

Founder & Managing Partner

Founder of Web3Software. Twelve years building distributed systems and capital-markets infrastructure, the last six dedicated to blockchain, on-chain settlement, and quantitative trading platforms for institutional clients.

Subscribe

Get the next deep-dive in your inbox.

Occasional, substantive engineering write-ups from the team. No spam, unsubscribe anytime.

Subscribe to our newsletter

No spam. Unsubscribe at any time.