← Writing

Designing backend systems for throughput and safety

#systems#infrastructure

Over a decade building wallets, protocols, and payment rails, a few tradeoffs come up again and again:

Throughput is a systems property, not a hot loop

Most latency wins don’t come from a faster function. They come from batching, from removing a request waterfall, or from moving work off the critical path. At Yellowcard, batching requests cut cost and lifted margins; the code got simpler, not cleverer.

Safety is designed in, not bolted on

Owning the security posture of a protocol taught me that audits find what your architecture allows. Clear boundaries, small trusted surfaces, and explicit invariants make the auditor’s job, and the on-call engineer’s, tractable.

Build the smallest thing that can fail safely, then make it fast.

What this blog will be

Short, concrete notes on backend infrastructure, distributed systems, and blockchain engineering: the kind of thing I wish I’d read earlier.

// the shape of most of my wins
const results = await batch(requests, { size: 50 });