Matthew James Booth
View the on-line version of this document at: https://matbooth.co.uk/cv
Personal |
33, Mason Crescent |
Nationality: British |
Skills Summary |
|
Open Source |
|
Other |
|
Professional Experience |
04/2021 - Current — Self Employed ContractorSignificant 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 LtdMy 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 IncAs 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 LtdThe 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, FlathubAt 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 FoundationInitially 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 ProjectI 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 BloodhoundI 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 ProjectsI have contributed patches to various other projects including OpenLDAP, Apache Maven, Spring Security, Jetty, Flatpak and various other Eclipse Foundation projects not mentioned above. |