Matthew James Booth

Download a PDF version of this document.

View the on-line version of this document at: https://matbooth.co.uk/cv

Personal

33, Mason Crescent
Sheffield, UK
S13 8LH

Nationality: British
Phone: +44 (0) 7817 747664
Email: cv@matbooth.co.uk

Skills Summary

  • Almost 20 years experience as a professional software engineer.
  • Excellent knowledge of Java, C and Shell Script and a working knowledge of other languages including Python and C++.
  • Excellent knowledge of build tools such as Maven/Tycho, Ant and CMake, plus working knowledge of Gradle and the GNU build tools.
  • Excellent team development skills using source control and code review systems (Git, Gerrit and Subversion), defect tracking tools (Bugzilla, Jira and Trac) and CI systems like Jenkins.
  • Experienced with developing large and complex, multi-platform (Linux, Windows, Mac), multi-architecture (Intel, ARM, Power) applications.
  • Experienced with agile project management techniques.
  • Good technical writing and presentation skills, having spoken at international conferences FOSDEM and EclipseCon as well as at various local programming user groups.

Open Source

  • Excellent knowledge of Open Source development tools and methodologies, being a committer at the Eclipse Foundation, the Apache Software Foundation, and the Fedora Linux project.
  • Extensive experience of tightly integrating software within Linux distros using native packaging systems such as RPM and packaging software applications for cross-distro support using Flatpak.
  • Very long history of contributing changes to upstream Open Source projects.

Other

  • UK security clearance 'SC' cleared (lapsed).
  • 2:1 BSc (Honours) Software Development, University of Lincoln

Professional Experience

04/2021 - Current — Self Employed Contractor

Significant clients include Renesas Electronics where I was developing bespoke tools and IDE plug-ins for integrating build tools and compiler toolchains for ARM and Renesas MCUs (microcontroller units). The IDE plug-ins I worked on allow users to easily develop code in C/C++ for Renesas MCUs using a customised version of the Eclipse IDE, cross-compile locally on Windows or Linux, then upload and debug firmware images on physical hardware connected by USB. I also worked on other tools to integrate Renesas MCU projects into third party IDE tooling such as ARM's Keil products and IAR's Embedded Workbench products.

03/2014 - 03/2021 — Senior Software Engineer, IDE Services, Red Hat UK Ltd

My main responsibility for the IDE Services team was maintaining the Eclipse Platform and Eclipse-based products in RHEL and upstream in the community distribution, Fedora.

I was responsible for the development and productisation of the Red Hat Developer Tools product using software collections (SCL) which is a technique that allows the packaging of software as RPMs such that it allows the parallel installation of multiple versions of a product into a system and also allows the development and release of such products much more quickly than the base operating system. This is especially useful for allowing developers to use the most modern tools to develop for the slow-moving but stable RHEL platform.

Since Fedora is a more cutting-edge Linux, I was solving the opposite problem there, where dependencies are updated much more frequently than the upstream Eclipse project can keep up with. This means I was quite often the first person in the world to be building Eclipse against new versions of low level dependencies such as GTK. I would develop and carry patches for Eclipse and its ecosystem of plug-ins until they could be upstreamed for the next release. This work allowed us to keep Linux as a first-class supported environment for developers using Eclipse.

My most recent focus was enabling users to use Eclipse as a sandboxed Flatpak application and solving problems preventing users having a smooth experience in that environment, such as the proper detection and use of JDKs installed on the sandbox host, and the in place upgrade of Eclipse plug-ins.

03/2011 - 03/2014 — Senior Software Engineer, WANdisco Inc

As the main sponsor of the Apache Subversion project my main responsibilities at WANdisco have been to design and develop aspects of their enterprise and business ecosystem of Subversion-based products, including the major redevelopment of the company's flag-ship product SVN MultiSite Plus. This gives large sets of distributed engineers the ability to have geographically local, writable replicas of Subversion repositories with multi-primary (as opposed to primary/secondary or fail-over) replication of commits. Working on these products has given me a much deeper understanding of distributed computing than I had previously.

12/2006 - 03/2011 — Software Engineer, CSE-Servelec Ltd

The primary project I was involved in was the design and implementation of a centralised meteorological monitoring system for the UK Met Office. This involved working with a partner outstation supplier to provide automatic, fault-tolerant telemetry data collection services over IP, PSTN and GSM networks for climate science and flight-safety purposes.

With the help of UK Met Office scientists, we developed algorithms that augment the raw telemetry collected using past and present data collected from various sensors to improve the accuracy of the detection of meteorological events. I was also responsible for the implementation of the WMO's standards on data exchange, which allows the UK Met Office to share data from this system with meteorological agencies around the world.

I've also worked on instituting new internal build and issue tracking systems. This included migrating source code from disparate version control systems to a single source repository and replacing an ageing, in-house issue tracking system with an open source issue tracker and build system in order to reduce maintenance overhead, simplify processes and provide continuous integration testing. A part of this work has been to write plug-ins and patches in Python to customise these systems to match (and in some cases, improve) our internal business processes.

Open Source Experience

2017 - Present — Contributor, Flathub

At Flathub I was the original maintainer of the OpenJDK extensions for the Freedesktop runtime, which enabled the contribution to Flathub any Java-based software including the Eclipse IDE of which I was also the original maintainer. According to Flathub stats, these apps are used by thousands of people every month.

2014 - Present — Committer, Eclipse Foundation

Initially I became involved with the Eclipse Linuxtools project as part of my efforts doing downstream rebuilds of Eclipse IDE at the Fedora Project, where my goal was to make Eclipse the best available IDE for developing software on Linux.

My latest contributions in this vein were the development of Maven plug-ins to allow generation of Flatpak applications from Eclipse products and the development of a tool to give Eclipse the ability to run and debug processes on the host system from inside a Flatpak sandbox, essential to allow people to develop and debug Java programs using additional JDKs that are not available inside the sandbox.

Some time ago I was also nominated a committer to the Eclipse Platform itself and eventually was trusted to become the first non-IBM employee to lead a release of the Eclipse Platform.

2007 - Present — Package Maintainer, The Fedora Project

I serve as the primary maintainer for many key low-level Java libraries and maintained all the packages for the Eclipse IDE until we switched to Flatpak.

Package maintenance duties include responding to user bug reports and either reporting them to the upstream project or submitting patches upstream, keeping packages up to date as new versions are released and working with other maintainers to ensure all dependencies and dependent packages continue to be well integrated within the distro.

I also spent a number of years serving on the Fedora Packaging Committee where RPM packaging guidelines are developed for the wider RPM community.

2012 - 2016 — PMC Member, Apache Bloodhound

I was involved in a fork of the Trac bug-tracking system to add features that upstream was not interested in adding to the core of the project. When we brought Bloodhound to the Apache Foundation I was a founding committer and project management committee (PMC) member of the project.

Despite the project now being retired, I retain my committer status at the Apache Foundation.

Contributor, Various Open Source Projects

I have contributed patches to various other projects including OpenLDAP, Apache Maven, Spring Security, Jetty, Flatpak and various other Eclipse Foundation projects not mentioned above.