Curriculum Vitae

A portrait photo of Matt

About me 📝

Hi there! I’m Matthew Riley MacPherson, a software engineer and public speaker living in Edinburgh, Scotland. I’ve worked in open source for nearly a decade, so most of my work is available on sites like GitHub.

I care a lot about accessibility, code quality, copy-editing, and design. I automate processes so people spend their time on work that requires human thought, not repetitive gruntwork.

I’ve worked on everything from small business blogs to shipping Firefox and WordPress to hundreds of millions of people. I created localForage, a popular offline storage library because I care about developers too.

An experienced JavaScript, Ruby, and Python developer, I’ve worked on large React projects like Gutenberg, WordPress’ new editing experience and the Mozilla Add-ons Website.

Having worked with Django, Rails, Node.js, React, Drupal, and WordPress extensively throughout my career, I love learning new things and am well-versed in existing tools. I write thorough, thoughtful tests because I’d prefer to be the one to find bugs in my software. I do the same for documentation, because I’m not the only person who will need to use my code.

I’ve worked remotely for nearly a decade and I’m a great communicator. I’m comfortable with self-direction and can easily work away at an issue backlog. I’m comfortable working with people regardless of their technical skills; from CTOs who literally wrote JavaScript to self-described “technophobes”: I can work with you to make software work for you.

I love working on open source software, and I love working on products that democratise distribution and publishing. I will always fight against the consolidation of platforms on the web, because I don’t want more technology monopolies to limit people and small business’ control of themselves.

Work experience 💼

Senior JavaScript Engineer, Automattic

April 2018–January 2019

Worked at Automattic as a WordPress Core Developer, chiefly on Gutenberg, the new WordPress editing experience. Served as the Accessibility Release Lead for WordPress 5.0, one of the biggest WordPress releases in history, and worked to improve WordPress’ editing experience for all users.

Worked on all aspects of Gutenberg: from API design and developer documentation; to prototyping and implementing new features. I worked to drastically improve Gutenberg’s end-to-end tests to prevent regressions and maintain a fast development pace.

I retain core commit access to WordPress and also worked on other Automattic projects, including

Senior Software Engineer, Mozilla

May 2011–April 2018

Worked on large-scale Django apps like,, and React rewrite of Spoke at conferences and organised developer workshops in over a dozen countries from Brazil to Malaysia. Worked on Firefox’s transition to WebExtensions including core browser code shipped to nearly half a billion users.

My role at Mozilla was 100% remote and involved a lot of self-direction, technical envangelism, time management, user support, and community engagement. I worked mainly with Python (Django), PHP, and JavaScript (Backbone, Ember.js, React/redux). From time-to-time I wrote C++, Ruby, and Perl.

Lead Front-end Developer, ViewPoint

July 2010–May 2011

I built a fast and engaging map interface for ViewPoint, a Canadian real estate start-up offering a better property browsing experience for home buyers. We dealt with various government and industry datasets requiring extensive testing to ensure data imported correctly.

I wrote and thoroughly documented a PHP API used across the site, migrated the site to the new Google Maps API, and improved the speed and user experience of the site. Being a start-up, our team was extremely small. To account for this, I wrote extensive automated UI tests to ensure the site worked well in spite of limited code review.

Web Development and DevOps, Nova Scotia Government

September 2006–July 2010

Originally hired as a summer intern, I was asked to stay on full-time as a web developer, server administrator, and software consultant at Nova Scotia Government. I worked on tools that allowed novice web developers to easily create government web sites that inherited a common look and feel, resulting in a much more consistent experience across government sites.

I worked with everything from Windows Server to Linux–ASP (classic!) to Ruby on Rails. I helped teach many government web developers (who were previously copywriters and had become web developers by chance) how to develop accessible and responsive sites. I advocated for more open source software, leading to widespread adoption of Drupal and WordPress throughout government instead of SharePoint. 😱