My Blog

brackets yellow

Accidental Functional Programming in Rust (From an Epidemiologist's Perspective)

Rust quietly pushes you into functional patterns. An epidemiologist explains Result, match, enums, iterators, and when readability beats idioms.

Read More
stethoscope blue

How to Create a Codelist

A practical guide to creating codelists from scratch for health data research.

Read More
stethoscope green

What is a Codelist?

What are codelists and why do they matter? An accessible introduction to coding systems, clinical nuance, and research reproducibility.

Read More
errors orange

Error Handling in Rust: anyhow and thiserror

Practical Rust error handling beyond the basics: add context with anyhow and define typed errors with thiserror.

Read More
errors blue

Error Handling in Rust: Fundamentals

A clear, practical guide to Rust error handling: panic, Result, ?, unwrap, and expect - written for Rust developers who want clarity without jargon.

Read More
crab orange

Women in Rust 2025

Celebrating another wonderful year of women making strides in the Rust programming community.

Read More
table green

Multiple Imputation and Perturbation: Why They're Not Built for Synthetic Data

This blog explores why multiple imputation and perturbation are not suitable for generating synthetic data.

Read More
dag_2 orange

What are GANs and how can they generate synthetic data?

This blog explores Generative Adversarial Networks (GANs) and how they can be used to generate synthetic healthcare data.

Read More
hospital blue

Clinic to Code to Care

This blog came out of a talk Steph Jones and I gave at Women in Data and AI in October 2025. It explores the journey of information from a patient in clinic to how that information is coded for research and ultimately ends up informing statistical and machine learning models that can help improve patient care.

Read More