I find the pattern in everything.

Statistical programmer in R, singer, and writer on politics, spirituality and science. This is where the three meet.

Writing

Curious events, read slowly. Filter by what you want to think about today.

Oct 28, 2026
7 min read

Why small countries decide big votes

A look at how blocs of a few million people keep tipping outcomes at the UN, with the numbers behind it.

Oct 19, 2026
5 min read

What silence taught me about singing

The pause between notes is where the meaning sits. Notes on breath, stillness and attention.

Oct 11, 2026
6 min read

The coincidence that was not one

Why surprising overlaps are common, and how a simple simulation in R shows it.

Sep 30, 2026
4 min read

Do crows count?

A short tour of the evidence on animal numeracy, and how to read these studies critically.

Music

Songs, sessions and live recordings. Tap a track to preview the player.

Book a performance

Data and R

Selected projects. Each one states the question, the method and the result.

Survey weighting dashboard

Interactive tool that shows how weighting changes survey estimates.

R · Shiny · survey

Trial summary tables

Reproducible tables and listings, generated from one analysis script.

R · tidyverse · gt

Election results explorer

Maps and trend lines connecting my data work to my political writing.

R · ggplot2 · sf

R tips, weekly

Short, tested snippets for people who work with data every day.

Quarto · GitHub
Your portrait here

About

I work with numbers by day and sing by night. Both ask the same of me: listen closely, and be honest about what I hear.

Writing is where I bring the two together, along with the questions of meaning that neither fully answers. Replace this text with your own story.

Get new essays by email

One message when a new post is published. No spam.