Marketplace & exchange · Real-time

Delivering features on a peer-to-peer exchange, where every price is set by other users

The world's largest betting exchange: users trade with each other instead of against a bookmaker, so prices and liquidity move continuously. The work: ship features into a large, established product with complex business rules.

Product
Betfair Exchange
Year
2022
My role
Delivered production features in a cross-functional team; performance, reusability and integration work
Back Exchange Lay Backers bet for an outcome Layers bet against it Exchange order book matching prices set by users Order lifecycle unmatched partially matched matched settled
Simplified system view — for illustration

The product

Betfair Exchange is the world’s largest betting exchange. Instead of betting against a bookmaker, users trade with each other: one side backs an outcome, the other lays it, and the exchange matches them. Alongside the exchange, the product family includes casino, poker and bingo.

What makes it complex

  • Prices are made by users, not set by an operator. Available odds and liquidity on every market change continuously as orders are placed, matched and cancelled.
  • Orders have a lifecycle. A bet can be unmatched, partially matched, matched or settled — and the product has to represent each state correctly, in real time.
  • A large, long-lived product. Changes have to fit an established architecture, established conventions and the work of many other contributors.

My responsibility

I delivered production features as part of a cross-functional team, working with product owners, managers, QA, backend engineers and other engineers on complex business workflows. Alongside feature work, I improved performance, reusability and code quality through refactoring, code reviews, reusable components and better integration patterns, and took part in technical discussions and estimation.

What mattered

  • Understanding the domain before the interface. Exchange mechanics — backing and laying, matching, liquidity — decide what the product has to show and when.
  • Integration patterns over one-off wiring. Clear, reusable patterns for working with backend services make complex workflows easier to change safely.
  • Incremental improvement. In an established codebase, performance and quality improve through steady refactoring and review rather than rewrites.

Constraints and trade-offs

  • Working inside an existing architecture. Improvements have to be compatible and incremental.
  • Correctness first. In a financial-style product, showing a stale or wrong state is worse than showing it a moment later.

What changed

Production features shipped into the exchange product, with performance, reusability and code-quality improvements delivered alongside them.

Betfair Exchange
Betfair Exchange in production
Next case study