Consulting
I take on high-end Rust consulting for performance-critical and data-intensive systems, plus the data engineering around them. My clients span education, healthcare, gaming, and research institutions.
Rust
I use Rust where performance, accuracy, and reliability matter most — high-stakes systems that need to be both fast and correct. Its strong type system catches whole classes of bugs before they ever ship.
Open Science
I advocate code sharing and open science in health research, teaching researchers software best practices for transparent, reproducible research. I also build open source tools to help researchers.
My Blog
What is a directed acyclic graph (DAG)?
How directed acyclic graphs (DAGs) help epidemiologists separate causal from non-causal paths, and decide which variables to adjust for in health data research.
Why I teach a workshop on codelists
Codelists decide which patients end up in a study, but building one is rarely taught as a method. This post explains why I run a three hour codelist workshop for universities and what it covers.
What is the difference between selection bias and sampling bias?
A reference guide to the difference between selection bias and sampling bias in health data research, with worked examples of how each one distorts your results.
Newsletter
I write about open science, research code, and building better tools for researchers. Subscribe to get new posts delivered to your inbox.