One of my greater passions is contributing to free software projects, to help improve the lives of developers and users around the world. The following is a list of projects I have contributed to (and continue to actively contribute to).
- Linux C + ASM
A modern (and exceptionally widely used) Unix-like operating system kernel. I implemented the PIDs cgroup controller, which required modification of the
clone(2)paths. In addition, I wrote a blog post with some recommendations for getting into kernel development.
- Docker Go
The free software application container engine, to which I have contributed several fairly significant patch sets (ranging from security fixes to feature implementations).
- libcontainer / runC Go
A reference implementation for OCI container runtimes, and is the runtime that powers Docker containers. I am a maintainer of runC, and have been working on container runtimes for several years.
- Portus Ruby
Authorization service and frontend for the Docker registry, which supports self-hosting and has many of the features of the Docker Hub.
- Team Win Recovery Project C++
A free software custom recovery for Android-based devices, the only such recovery which supports disk encryption. I implemented CyanogenMod-style NxN pattern decryption for TWR NxN pattern decryption for TWRP.
Having programmed for most a majority of my life, I have worked on quite a few software projects in that time. The following is a list of projects I've worked on as either chief or sole contributor.
- umoci Go
Free software tool to create and modify Open Container Initiative images, without needing to understand how such images are structured internally. I wrote a blog post about this new project.
- remainroot Go + C
A set of shims to allow unmodified programs to run nicely in rootless containers.
- mkonion Go
Small, simple and self-contained tool to create a Tor onion address for an existing container without restarts or modification of the container. I use this to manage the onion link for this website.
- redone Python
A 'correct' implementation of regular expression matching and substitution using finite state automata.
- rawline C
The small and self-contained line-editing library. Written in less than 1000 lines of ANSI C and can easily be included in any project.
- keplerk2-halo Python + Shell
All of the scripts written and used during my research project into Asteroseismology at the Univeristy of Sydney, as well as some document and reports on my findings using these scripts.
- epyc Python
A Python templating language like Jinja (written for perfectgift).
- synge C
Very powerful scientific calculation engine. Supports variables, short-cutting conditions and recursive expressions.
- sched C
A simple toy scheduler for the Arduino, which currently doesn't support preemptive scheduling.
In my spare time, I like working on programming problems and competing against others. The following is a list of competitions I've participated in.
- NCSS Challenge (Advanced) Perfect Score
A High School Python programming competition, exploring advanced concepts. I achieved a perfect score in 2013 and 2014.