Skip to main content


This is a list of articles I’ve written, talks I’ve given, and podcasts I’ve been a guest on. I sometimes link to these in the main blog feed; this page is meant to be a convenient reference.


Last Week in AWS

Oct 2021 What is Object Storage? A Definition and Overview
Oct 2021 What is File Storage? A Definition and Overview
Oct 2021 What is Block Storage? A Definition and Overview
Aug 2021 10 Free Cloud Databases You Should Consider (And 1 You Shouldn’t)
Jun 2021 Is AWS Certification Worth It? Weighing All the Factors
Jun 2021 Kinesis vs. Kafka: Which Stream Processor Comes Out on Top?
May 2021 Aurora vs. RDS: An Engineer’s Guide to Choosing a Database
May 2021 What is an ECU? An EC2 Compute Unit, Simply Explained
May 2021 What is an Edge Location in AWS? A Simple Explanation
Apr 2021 What is Amazon Athena? An Introduction and Walkthrough

Stacks development blog for Wellcome Collection

Jan 1970 How moving to the cloud took our digital collections to new heights
Mar 2021 Building our new unified collections search
Jan 2021 Our approach to digital verification
Sep 2020 A sprinkling of Azure
May 2020 Building Wellcome Collection’s new archival storage service
May 2020 Large Things Living in Cold Places
May 2020 How we store multiple versions of BagIt bags
Oct 2018 Peering through MRI scans of fruit and veg
May 2018 Creating a data store from S3 and DynamoDB
Feb 2018 Getting helpful CloudWatch alarms in Slack
Dec 2017 Using Loris for IIIF at Wellcome Collection

Other writing

Feb 2018 The Hypothesis continuous release process – The Hypothesis blog

Talks and workshops

Apr 2023 Making a working upwards assignment operator @ London Ruby User Group
Sep 2021 Missing narratives in discussions around diversity and inclusion @ SeptembRSE
Jul 2021 Using Python to organise my physical paper @ Cambridge Python User Group
Oct 2019 Digital preservation at Wellcome Collection @ GLAM Digital Lunch, Cambridge

A quick flavour of digital preservation at Wellcome: the processes, practices, and tools we use. How do we create, store, and present our digital archives?

Sep 2019 Building a robot that stole my job @ QueerJS London
Sep 2019 The Curb Cut Effect @ PyCon UK 2019
Sep 2019 A robot stole my job! @ PyCon UK 2019 lightning talks
Sep 2019 Sans I/O programming patterns: what, why, and how @ PyCon UK 2020

Programmers have access to plenty of powerful, flexible libraries – and yet we often end up reinventing the wheel. Why? Because our libraries aren’t reusable – code gets trapped by its I/O model. If we program in a “sans I/O” pattern, we get code that’s simpler, more flexible, and easier to test and reuse.

Apr 2019 A robot stole my job prospects @ ACCU 2019 lightning talks

Build automation is great, right? We can save time, automate releases, script tedious tasks… but what happens when these build robots turn against us?

Jan 2019 The Curb Cut Effect @ Monki Gras: Inclusive Craft

When we imagine inclusive design, we think about helping people from minoritised or excluded groups. People who are disabled, or BAME, or LGBTQ+. We should consider them in our designs – but if we design for them, are they the only ones who benefit? The Curb Cut Effect suggests otherwise: designing for people who are excluded or marginalised can often result in a better design for everyone.

Sep 2018 A Plumber's Guide to Git @ PyCon UK 2018
Sep 2018 Assume Worst Intent (designing against the abusive ex) @ PyCon UK 2018

We build services with good intent, trying to improve interactivity and connections between our users. But what if one of our users has a stalker, a harasser, or an abusive ex? How do we design services and platforms to reduce the risk of harassment and abuse from other users?

Sep 2018 Building Trust in an Age of Suspicious Minds @ PyCon UK 2018

In a world where people are less and less trusting, how can we take steps to make ourselves more trustable?

May 2018 A Plumber's Guide to Git @ Oxford Python
Apr 2018 (Anti-)Social Media @ Bournemouth University

A lecture for students on the Cyber Security Management course about online harassment – identifying some of the ways services are often used for harassment, thinking about common threat models, and some good practices for building safer services.

Mar 2018 A Plumber's Guide to Git @ Cambridge Python User Group
Dec 2017 An ode to docopt @ Cambridge Python User Group
Oct 2017 A Plumber's Guide to Git @ PyCon UK

How does Git work under the hood? A workshop that uses low-level Git “plumbing” commands to reconstruct a Git workflow from scratch, and see how Git stores data internally.

Oct 2017 Using privilege to improve inclusion @ PyCon UK 2017
Oct 2017 Let's talk about (a)sex(uals) @ PyCon UK 2017 lightning talks
Mar 2017 Property-Based Testing In Practice @ QCon London
Sep 2016 An introduction to property-based testing and Hypothesis @ PyCon UK
Jun 2016 Introduction to property-based testing @ Cambridge Python User Group
Feb 2016 Colossus @ Queens' College Maths Society


Oct 2020 Screaming in the Cloud: Using the Cloud to Preserve the Future