Projects

Current

Workbrew (2023 - Present)

Workbrew

In 2023 I started a company, ☕️ Workbrew, to provide the missing features and support for companies using Homebrew. Workbrew’s 1.0 release was in November 2024. It provides vulnerability reporting and mitigation, MDM integration, fleet configuration, remote brew command execution and much more. Please try it out or book a demo.

Homebrew

Homebrew

Project Leader and longest-running maintainer. Invented Homebrew binary packages (bottles) which were featured in Apple’s Touch Bar MacBook Pro keynote and are 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 people in several Google Summer of Codes a MLH Fellowship 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. Migrated Homebrew to GitHub Packages which required extensive changes and collaboration in both Homebrew and GitHub.

Strap

Strap

Creator. A script to bootstrap a minimal macOS development system. Built for GitHub (replacing Boxen) to reduce development downtime for all GitHub-employed engineers.

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.

Past

GitHub

GitHub

Employee #232. Built Merge Queue, Codespaces for GitHub’s internal usage, GitHub Sponsors, repository archiving, Open Source Friday, Open Source Guides, Strap (replacing Boxen), new APIs, GitHub Enterprise’s release process and many more changes invisible to those outside GitHub.

TwitterDelete

TwitterDelete

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

Balancing Dads

Balancing Dads

Creator. An inactive podcast that assumes it’s normal for working dads to be present in their kids’ lives. We speak to fathers about their work-life balance and what works (and doesn’t) with their kids. Was hosted by Paul Campbell and I.

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 programming languages linter functionality.

GitHub-Markdown.tmbundle

GitHub-Markdown.tmbundle

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

Git in Practice

Git in Practice

Author. An opinionated, intermediate/advanced Git book.

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.