About

I've been working on system design since 2006. The pattern I keep coming back to: good design starts from two questions — what problem are we actually solving, and what technology do we have to solve it with?

The first question is subtler than it looks, because "the problem" sits at different layers. Take a familiar one: scaling the handling of incoming requests. At the technology layer, the answer is well known — stateless servers behind a load balancer, add capacity as needed. Now make the incoming requests stock orders at an exchange. The same answer breaks: matching requires one sequenced stream, order arrival time is a matter of fairness and regulation, and processing a message twice moves real money. From a distance it's the same question. Up close, it's a different problem.

Almost everything written about system design addresses the technology layer. The problem in the domain context is barely written down at all. This site exists to close that gap.

What you'll find here

The Book of Record covers the common problems we face in the domain context of capital markets and asset management: the problems I've encountered while building real systems, the trade-offs behind them, and the patterns that have held up in practice.

If you build portfolio management, e-trading, risk, or analytics systems — or want to — this is written for you.

Join the conversation

Subscribe to follow the work — it's free, and pieces will reach your inbox once the newsletter is live.

But I'd like this to be more than a broadcast. This is a narrow field, and most of its hard-won knowledge lives in people's heads rather than in print. If you've solved one of these problems differently, disagree with a trade-off, or are wrestling with something in this space, reply to any email or leave a comment — the best insights in this domain have always come from practitioners.

About me

I wrote my first program in 1995, as a teenager, and turned it into a career in 2006. Most of that career has been in capital markets and asset management — building portfolio management, trading, risk and analytics systems, and at times working directly on the business side. Throughout, I've led as a coach — mentoring engineers on system design and architecture.