Recent Projects


2019 - 2020

Co-founder of a startup in the education space; the application is currently in private beta on Android.


2017 - 2018

Created the infrastructure and a mobile VOIP application for a startup in the mental health space.

Clients & Agencies

During my career I have worked with some very well known brands and digital agencies.


Since creating my first web page in the 90s I have been studying programming and working in the digital industry.

Over the course of my career I have created many simple and complex web applications, desktop applications, e-commerce websites, implemented over the wire protocols and designed binary file formats.

I believe in using the right tool for the job and carefully evaluate the most appropriate technology stack for each project.

Operating solo or leading small to medium-sized teams of engineers is a walk in the park. I have led teams of 12+ engineers on multi-million dollar projects and guided junior engineers in small agile teams.

Open Source

As a believer in the benefits of open-source development I have contributed to many open-source projects including commonmark, source highlight and help2man.

Whilst working with Nodejs I have contributed over 200 packages to the NPM registry.

Like nearly all of my work this website is open-source, feel free to browse the code or fork the project but please make the style your own if you do! If you hit a bug raise an issue so that I can continue to learn and improve.

Latest Contribution

Bracket is a fast and correct implementation of Handlebars in Rust; read the documentation or view the source code.


Linux, Tmux, Vim
Docker, Packer, AWS
Rust, Go, Java, Kotlin, Javascript, Ruby, Python, Shell
CSS3, PostCSS, Stylus, Sass, Less
Markup & XML
Nodejs, Babel, Webpack, Browserify, Gulp, Grunt
Postgres, Redis, CouchDB, SQL, MySQL
Android, React Native
Markdown, Commonmark, LaTeX, Pandoc
Source Code Management
Git, Subversion, CVS
Continuous Integration
Travis, Coveralls, Jenkins
OOP, AOP, MVC, IoC & Design Patterns
React, Vuejs, Alpinejs, D3
REST, SOAP, XML-RPC, Open Sound Control (OSC)

For brevity many skills learnt along my journey have been omitted, I am keen to play with Elixir, Nim and Crystal.


I evangelize a document, test, code and iterate workflow to create robust, maintainable software but am also able to be agile for startups that need to move fast.


Writing documentation first not only creates a welcoming atmosphere for other developers it forces a thorough analysis of the task or problem domain. The end result is higher quality software that is easier to maintain.


Testing software is an integral part of the process, we can leverage test frameworks, code coverage, continuous integration and deployment to develop robust programs. Software without a test suite is stumbling in the dark.


Lint code, leverage static analysis, optimize the development environment for maximum efficiency, respect the DRY principle and have an attitude of constantly learning. Look for the better solution even when the code seems close to perfect.