Projects
Current
Workbrew (2023 - Present)
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
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
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
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
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
Creator. A small application to delete your old, unpopular tweets.
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
Maintainer. Implemented language translations support and workflow, general bug-fixes and development. Managed community.
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
Creator. Official TextMate bundle providing programming languages linter functionality.
GitHub-Markdown.tmbundle
Creator. Official TextMate bundle providing GitHub Flavoured Markdown extensions to make working with GitHub Flavoured Markdown nicer.
Git in Practice
Author. An opinionated, intermediate/advanced Git book.
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
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
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
Creator. A small web application which runs scripts from web hooks.
LockOldIssues
Creator. A small application to lock your old, closed GitHub issues.
ManningAsciiDoc
Creator. Rake build system for generating Manning DocBook and PDF files from AsciiDoc.
Audioscrobbler.app
Maintainer. Added HiDPI support, merged contributions and fixed bugs.
Qocoa
Creator. A collection of Qt wrappers for macOS’s Cocoa widgets.
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
Added CPack packaging support, Windows support, other features and bug-fixes.
Qt Creator
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
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.