Open Source contributions: rsyslog
September 2025
rsyslog is a widely deployed log processing daemon shipped as the default syslog implementation across most Linux distributions. I contributed two patches upstream in 2025.
More information...Security Research: LibreChat
August 2024
Two CVEs discovered in LibreChat, an open-source AI chat platform: a conversation hijacking flaw and a path traversal vulnerability, both reported through REA Group's coordinated disclosure program.
More information...Open Source contributions: Caddy
June 2024
Caddy is a modern web server with automatic HTTPS. I contributed split API token support to its Cloudflare DNS plugin and the underlying libdns library.
More information...Security Research: Dinkleberry
April 2024
A Python tool that patches D-Link NAS devices vulnerable to CVE-2024-3272 by using the exploit itself to overwrite the vulnerable code in place.
More information...Ducky One USB hub mod
February 2024
Added a hidden USB Type-A port to a Ducky One mechanical keyboard by installing an internal USB hub and rewiring the keyboard's controller as a downstream device alongside a new rear-facing socket.
More information...Open Source contributions: Ethereum staking
November 2023
Prysm and eth-docker are tools for running Ethereum validator nodes. I contributed Debian packaging to Prysm and several fixes to eth-docker while running my own validators.
More information...Logitech Lightspeed USB-C mod
February 2023
Replaced the USB-A plug on a Logitech Lightspeed wireless receiver with a USB-C connector, since Logitech don't sell a C version and a bulky adapter wasn't cutting it on a MacBook.
More information...Pentagraph
January 2022
A browser-based PGP encryption and decryption tool. Keys are loaded locally and never leave the browser - all cryptographic operations happen client-side.
More information...UpThing - Up Bank API toy
August 2020
So I made a bank website! Well, not really, but Up recently published the first version of their API, so I took the opportunity to have a play.
UpThing provides a desktop web UI for the bank (which is normally mobile app only) as well as enabling transaction notifications to Discord, and Google Sheets integration.
More information...Small scale RGB LED matrix
July 2020
A Raspberry Pi driven 32×16 WS2812B LED matrix with companion clients for Windows screen capture and live Bureau of Meteorology rain radar.
More information...Scrapelet
April 2020
A browser bookmarklet that scrapes data from the current page using your active session, bypassing anti-scraping measures by piggybacking on the page you've already loaded.
More information...Deformed Penrose Tiling
February 2020
Inspired by a post I saw on Reddit [1], I was tempted to re-create this and use the apparent brightness difference as a method of shading a greyscale image. It turns out it works pretty well!
More information...Website remake
May 2016
Long overdue, I upgraded my website to some more updated technologies. All the old content remains (plus some new entries!), but now driven via a Laravel backend, responsive layout, CSS tweaks, and less jQuery bloat.
fuzzycomplete jQuery plugin
April 2016
Not satisfied by the flexibility of existing javascript autocomplete libraries, I set out creating one of my own. I ended up using it across a few of my sites so I packaged it up as a jQuery plugin and published the result on GitHub.
Modular audio amplifier
December 2015
I built a custom amplifier for my Dad as a Christmas/birthday present out of eBay modules, a chunk of wood and custom moulded acrylic.
Large scale RGB LED display
December 2014
To support a small music festival run by some friends, I helped create some stage equipment used by the bands. I designed and built 8 modular 1x1 meter RGB LED displays, capable of taking input from a PC, or running pre-coded visualizations.
eSports replay website
June 2014
Cofounder and technical lead of a website dedicated to eSports replays, focusing primarily on competitive League of Legends tournaments. Responsible for feature implementation, security analysis and hardening, as well as contributing to website content.
3D printed minimalist USB keyring
January 2014
My old USB key came apart, so I went about designing a replacement casing to fit on my keyring. Taking advantage of 3D printing in metal, I was able to create a slimline, durable alternative.
More information...Lantern LED retrofit
May 2012
Retrofitting an inefficient incandescent lantern with more efficient LED technology for a friend, overcoming some fundamental hurdles along the way.
More information...Switchmode supply
October 2011
While working on another project, I needed a compact switchmode power supply. This handmade board was designed to test the capability of the LT1370 chip at the heart of this switching regulator.
More information...Ford Laser Hotwiring
August 2011
After a respectable gentleman tried to break into my friend's car and turn the ignition with a screwdriver (unsuccessfully), my friend was left with an unworking ignition.
He still needed the car, and until he could get the ignition replaced we decided to try hotwiring the car.
More information...Personal Website
May 2011
This website was designed by myself and written from scratch in notepad. It utilises the jQuery javascript library for all the fancy animations and ajax stuff. Social media icons licensed under Creative Commons BY-SA from Komodomedia.com
It is fully WC3 standards compliant.
HTC headphone controller
December 2010
Dissatisfied with the standard headphone quality that shipped with my HTC phone, but not wanting to leave the ability to control the media application behind I designed and built an adapter which allowed any headphone to be plugged in to a custom controller.
More information...Final Year Project
November 2010
For my final year project I worked on developing the hardware and software of a "Smart Power Meter".
The hardware is based on a current clamp, Atmel microcontroller, ZigBee wireless module and Linksys WRT54G router while the software leverages the Google Powermeter API to record measurements for users.
More information...Image evolver
November 2009
A simple program created for fun (It doesn't have much use other than looking cool). When given a reference image the program attempts to recreate it sequentially, getting better and better as time goes on.
More information...Wireshark dissector for Link 16
November 2009
As part of my degree I was required to complete 12 weeks of work placement in the industry. I was fortunate enough to be granted a scholarship position at the Defence Science and Technology Organisation (DSTO) to develop a Wireshark "dissector" capable of decoding Link 16.
More information...Digital bar fridge thermostat
March 2009
An electronically controlled thermostat designed to keep the insides of a 240 volt bar fridge at a constant temperature while fermenting home brewed beer.
More information...