Projects

Current

GitHub

Homebrew

Senior engineer. Currently doing GitHub feature development to improve GitHub for open source software maintainers and participate and train others on GitHub.com application and escalation on-call rotations. Previously on various GitHub.com microservices’ and ops/infrastructure on-call rotations. Provided engineering resources to Marketing organisation building new JSON, Kafka and Go microservices to improve their productivity. Improved GitHub for open source (collaborating with Google, Microsoft and Facebook) conceiving and building Open Source Friday and helping to build Open Source Guides and other GitHub open source programs. Improved database performance, process and tooling. Built Strap (replacing Boxen) which reduced development downtime for all GitHub-employed engineers. Improved the GitHub API and web hooks platform by fixing bugs, building process and conceiving and creating new APIs.

Homebrew

Homebrew

Project Leader and longest-running maintainer. Invented Homebrew binary packages (bottles) featured in Apple’s Touch Bar MacBook Pro keynote and used by Google, Microsoft and Facebook. Fix users issues, plan roadmap, create and manage security program, make new releases, teach new maintainers and contributors and develop features in Ruby and Bash. Started a successful Kickstarter project which was funded in two hours to create a Jenkins CI system for Homebrew. Installed servers into data-centre and keep them running. Ran and mentored students in several Google Summer of Codes and an Outreachy for Homebrew to successfully attract new maintainers. Brought Homebrew into the Software Freedom Conservancy for 501c3 non-profit status in the USA and financial sustainability. Organised first ever Homebrew maintainer meeting.

Strap

Strap

Creator. A script to bootstrap a minimal macOS development system.

Homebrew Bundle

Homebrew Bundle

Maintainer. Like Ruby’s bundler but for non-Ruby dependencies from Homebrew and various other sources. Brought into GitHub organisation and integrated with the rest of the Homebrew ecosystem.

TwitterDelete

TwitterDelete

Creator. A small application to delete your old, unpopular tweets.

Past

Open Source Guides

opensource.guide

Maintainer. Implemented language translations support and workflow, general bug-fixes and development. Managed community.

Open Source Friday

Open Source Friday

Maintainer, program manager and lead engineer. A program and site encouraging regular contribution to open source software during work hours.

Linter.tmbundle

Linter.tmbundle

Creator. Official TextMate bundle providing GitHub Flavoured Markdown extensions to make working with GitHub Flavoured Markdown nicer.

GitHub-Markdown.tmbundle

GitHub-Markdown.tmbundle

Creator. Official TextMate bundle providing programming languages linter functionality.

Git in Practice

Git in Practice

Author. An opinionated, intermediate/advanced Git book.

GitHub Enterprise

GitHub Enterprise

Hired to improve the quality of GitHub Enterprise and measurably improved it through bug fixing and improving manual QA, CI, packaging, deployment, automation and ChatOps for the release process.

AllTrails and AllSnow

AllTrails and AllSnow

Full stack engineer developing Rails/MySQL back-end and Coffeescript/SASS front-end. Developed features, APIs and optimised performance. Setup Jenkins CI and automatic Chef deployment for Rails and mobile applications HockeyApp deployment. Managed and improved AWS EC2 infrastructure.

Mendeley Desktop

Mendeley

First non-founder employee and lead developer for Mendeley Desktop. Setup all Linux servers and software systems. Created a workflow focused on quick deployment and high quality through automated Buildbot builds, tests, CPack packages for Windows, Mac and Linux. Designed, ran technical interviews and personally recruited three engineers.

Ported Qt/MSVC++ application from Windows to CMake, macOS and Linux. Fought for successful Linux port. Proposed, implemented the successful rewrite of problematic contracted legacy code creating a faster application and happier users. Designed, implemented the REST XML protocol used between Mendeley Desktop and Web.

Boxen

Boxen

Maintainer. Improved Homebrew integration, general bug fixing and updates. Migrated GitHub to use Strap instead. Transitioned project to community ownership and (eventually) archived status.

Hookhand

Hookhand

Creator. A small web application which runs scripts from web hooks.

LockOldIssues

LockOldIssues

Creator. A small application to lock your old, closed GitHub issues.

ManningAsciiDoc

Homebrew

Creator. Rake build system for generating Manning DocBook and PDF files from AsciiDoc.

Audioscrobbler.app

Audioscrobbler.app

Maintainer. Added HiDPI support, merged contributions and fixed bugs.

Qocoa

Qocoa

Creator. A collection of Qt wrappers for macOS’s Cocoa widgets.

Charm

Charm

Maintainer. Added support for Mac OS X 10.6 and Qt/Cocoa, added CPack packaging support and macOS installer creation, migrated to Git and bug fixing.

Make-O-Matic

Make-O-Matic

Added CPack packaging support, Windows support, other features and bug-fixes.

Qt Creator

QtCreator

Technical lead for team that created the analysis mode and integrated Valgrind’s Memcheck, Callgrind and Cachegrind tools. Personally focused on tool visualisations. Released in 2.3.0.

KDE

Kontact

Worked on KDE on Mac integration/bug fixing. Improved the KBlog XML-RPC API for KDE 4.0 API freeze. Added rich-text support and posting of journals (as blog posts) from KOrganizer which was released in KDE 4.1.

CMake

Fixed bugs in and improved cross-platform packaging in CPack. Added Qt plugin support. Created DeployQt4 module for easy deployment of Qt applications. Released in 2.8.7.

Linux kernel

Wrote WM8711 Linux kernel driver which was released in 2.6.26.

D-Bus

Improved and merged the long-running launchd patchset. Bug fixes for macOS. Released in 1.4.1.

libgcal

Added the CMake build-system and migrated to Git. Released in 0.9.

QtScriptGenerator

Improved support for parsing and generating non-Qt C++ code. Released in 0.2.0.

PRISM

Added OpenDocument support and JFreeChart integration. Released in 3.2.beta1.

OpenZaurus

Fixed a noisy LCD issue. Released in 3.5.4.2-rc2.