Software Engineering
Twenty-five years of building production systems (at Salesforce, Citadel, and elsewhere) taught me that engineering discipline matters more than clever algorithms. I write about the software engineering practices that make financial systems reliable: separation of concerns, immutable data models, property-based testing, and infrastructure as code. These articles are for developers who want to build systems that work correctly under pressure.
Metamorphic Relations for Backtests: Testing the Engine, Not the Strategy
Backtests have a testing problem: you often do not know the correct output. Metamorphic relations sidestep that by asking whether the output changes correctly when the input is transformed. The full …
The Testing Pyramid, Sideways: Software Testing Practices Analogues in Quantitative Trading
The quant research funnel maps almost directly onto the software testing pyramid. Exploration is customer discovery. Backtesting is unit testing. Statistical validation is integration testing. …
Thinking in Properties (and Beyond), Testing edition
Slide deck from conference talk discussing how property-based testing offers a launchpad to discover and practice thinking in properties in your software development activities to test your software …