Table of contents is a fully featured CRM for timber mills, and my very first foray into software development. I was the 'Logistics and Systems Coordinator', which was a fancy term to describe booking freight, tracking and processing orders, and generally managing paperwork that moved between the office and the yard. The problem was that my memory was terrible and none of the details would stick. My customers would ask for updates on orders and I wouldn't have the foggiest clue what they were talking about. So I developed this system to remember things for me. Dashboard

Built with PHP, MySQL, Python, Javascript, SASS on Github

Print My Day

Print My Day is a tool I made over-engineered to help me stay organised. A little bit of code pulls data from taskwarrior and my calendar, then sends it to my receipt printer on request.

Print My Day frontend Print My Day printout

This thing is great. It has encouraged me to keep on top of taskwarrior and my calendar, and check my phone and laptop less often.

🗹 Genuinely useful 🗹 Over-engineered 🗹 Convenient

Built with Golang and NYear NP100 receipt printer

Ocean Acidification

Ocean Acidification is an animation I put together for one of the Science Communication classes. I wrote, narrated, illustrated, animated, and mixed the video.


Geotrace was built for the Waitaki White Geopark as part of a Centre for Science Communication paper at the University of Otago.

Geotrace Logo

This project combined web development with science communication and audio production. I created a set of four audio stories (you can listen to these in the demo) and a website. The audio stories are all about 90 seconds long and tell the geological history with a rich soundscape. The website serves the audio but also acts as a sort of scavenger hunt, encouraging visitors to explore the more of the area.

Geotrace - Elephant Rocks

Built with Golang, SQLite, Javascript


The Amazing Trace

The Amazing Trace was developed for the Locals Programme as an O-week event. The goal was to quickly acquaint our first year students with important locations around the university. Each team was given a set of three clues for three random locations. They had to solve the clue, get to the location, and scan the poster. Some locations had challenges lead by team members. Upon completing a challenge the team would be allowed to scan the poster, and in some cases be given the opportunity to help themselves (solve the next three clues automatically) or hinder others (shuffle their clues randomly). The project was a huge hit with great turn out. I hope to run it with other groups.

The Amazing Trace

Github Link

Built with Go, SQLite

Super Extreme Uno is a website I made to describe a new set of rules for Uno. The rules were developed in my first year at university where we played at least a thousand games. The rules can be hard to grasp so I figured a website might be a good way for new players to have a quick reference.

Who's Home

My flatmate, Marcus, and I built Who's Home. It's a device that shows us who's at the flat. We're all introverts so this is the easiest way to check in without checking in. The device sniffs the air for any network traffic associated with our phones respective MAC addresses. It's only a little bit creepy.

Who's Home

Github Link for code and schematics.

Built with NodeMCU, C, C++

Nugget Watch

Nugget Watch is the Goodreads of New Zealand chicken nuggets.

This was passion project that grew just a little too big. Image uploads. Ratings on reviews. Statistical methods for determining ratings. There's a map. It can handle about 1,000 people simultaneously (for when it becomes popular). There's also a phone number - 0800 NUGGET - it's fully automated based on entered post codes. It has been translated into te reo Māori.

Nugget Watch

Built with PHP, MariaDB, MapBox, Twilio


NuggetNav is an android that points users to the nearest nuggets to them and gives the distance as the crow flies. This communicates with Nugget Watch to fetch the nearest nuggets.

Nugget Nav

Built with Android Studio, MapBox, Java