Following a successful first career as a not-for-profit fundraiser, I am now committed to retraining into software engineering. To this end, I’ve worked on a number of projects. You can also see them on my GitHub. I also refer to the projects in my CV (PDF download).

Donation Whistle

Written in Python/Flask, Donation Whistle exists to parse, clean and visualise data from the UK Electoral Commission’s register of donations to political parties. I explain the need for the app to improve public understanding of party funding and the app’s development on my blog. It relies on a SQLite database and includes Pytest unit testing, a filesystem cache, an API and task queueing with Redis Queue. JavaScript is used to synchronise the front- and back-end filters. It is deployed with Docker Compose behind Nginx on an AWS S3 instance. I host a demo here ( for login details) and have recorded a video tour.

My Donation Whistle app

Wedding Wrangle

I wrote Wedding Wrangle, a Python/Django application for organising a wedding’s guestlist while tracking dietary requirements and RSVPs. It features loginless RSVP links for guests (URL or QR code), email merging and QR code export (for print). The app’s demo is at weddingwrangle.willthong.com, but all the app’s features are password protected, so for login details.


Binfluencer is my \textbf{Python} script for asking your local council what colour bins, if any, need putting out today. Home Assistant can then provide automated smart speaker reminders.

Open source contributions

I have contributed pull requests to the static site generator Pelican. I wrote this blogpost about my first, and what it taught me about automated CI/CD and collaborating with Git.