Skip to content

Projects

MPC Autofill 2020 → Present

MPC Autofill is a suite of self-serve print automation software targeted at casual trading card gamers. It’s used for printing “proxy” cards — i.e. clearly marked as fake & not for sale — for tabletop play.

I kicked off this project in my final year of uni for self-directed learning, and I’ve continued to maintain and improve it by night since then.

Here are a few stats, current as of March 2025:

  • 200,000 downloads
  • Averaging 1,000 daily users
  • Tracking over 265,000 community-made card images

And here are a few technical details:

  • Decentralised architecture
  • Django + Elasticsearch backends
  • Connects to Google Drive image repositories
  • Next.js/React frontend (in TypeScript)
  • Python desktop tool bundled with Pyinstaller

Proxy Pipeline 2018 → Present

This project is targeted at building a “standard library” of print-ready Magic: The Gathering images for use with MPC Autofill.

It consists of the following pieces:

  • An image rendering engine built with Photoshop scripts and hand-created template assets.
    • When the engine is supplied with a JSON blob of card data and an art image for that card, it will produce a high-resolution recreation of that card.
    • This is the open source bit of the project.
  • A Django application built around this engine which manages the following: *

Advent of Code 2022 → Present

I’ve been following along with Advent of Code each December for the last couple of years.

It’s an advent calendar of small coding challenges, and they get progressively harder throughout the month.

I’m having a crack at attempting each year of Advent of Code in a different language. So far:

Trello Shopping List 2021 → 2023

I moved in with housemates in 2021 and we needed a way to manage our joint grocery shopping adventures.

So I wrote a Trello Power-Up (like an extension) to help us out. It works like this:

  • We each set up some Trello cards with our recipes and their ingredients,
  • Whenever we organised a shopping trip, we would stage our selected recipes for the week ahead,
  • The Power-Up adds a button to Trello for generating a shopping list with the ingredients of all the staged recipes.

The cool part is it uses natural language processing to parse ingredients and quantities, then smartly rolls them up by adding together the amounts of each ingredient.

A few technical details:

  • Flask + Celery backend
    • Leveraging nltk and quantulum for natural language processing
  • A bit of HTML, CSS, and plain JavaScript for the Power-Up frontend
  • Deployed with docker on my home server