Matthew Forrester

Personal Information

Overview

I have been a software developer since 2001 and have accumulated a wealth of experience from a variety of different projects. I find great enjoyment from both writing great code and finding solutions to real-life business problems.

I have experience of leading projects from inception to completion including drawing up requirements by talking to key stakeholders, validating those requirements via mock-ups and presentations, technology selection, design and documentation, development, putting in continuous integration, systems administration and ongoing monitoring.

I consider myself to be a software craftsman and put significant thought into finding elegant simple solutions which can be easily understood and tested. Sometimes the best solutions are not code.

I am always keen to learn new things even when they are far outside of my normal comfort zone.

Experience

MediaSense (Principal Developer)

Great Portland Street, London 07/2016 - Present

MediaSense advises large national and international organisations on how they buy media. The media industry is often driven by Excel documents over Email. A key part of my role is to try and change internal processes from this into something more reliable, efficient and accountable.

At MediaSense I talk with Analysts, Founders, CEOs, Account Managers and Directors to draw up and validate requirements for projects. After this I will take these projects through the whole project life-cycle.

During my tenure I have led two very success projects from inception, these are:

Land Technologies (Lead Developer)

Farringdon, London 09/2015 - 07/2016

Land Technologies collates and presents information for house builders to help them make decisions on possible land purchases. At Land Technologies I lead the data collection projects which were primarily NodeJS/AWS SQS based systems as well as taking a key role in systems administration and monitoring. Outside of project related work I introduced TDD and linting as part of the development processes.

Daily Mail (Senior Developer)

Kensington, London 09/2014 - 09/2015

At Daily Mail I have worked across two teams. Firstly in the Content Creator (CMS) team where I developed and integrated a service for storing / visualizing auto saves. The system was planned out and using RAML and developed using TDD principles (Express, Mocha, Elasticsearch, ESLint and Expect.JS). Later I worked on a team creating a Haskell based news service for discovering breaking news.

Pod Point Ltd (Senior Developer)

London: 04/2014 - 09/2014

Pod Point are selling chargers and services for running electric cars. A lot of the work was spent understanding how charger and server communicate though a RESTful back end to ensure data and communication is done correctly. Later I used this knowledge and data to develop a Pay As you Go HTML5 mobile app using RAML and TDD (PHPUnit and Codeception). I have also planned provisioning into Amazon AWS using Ansible.

CityHook / Indigo Connect (Developer)

Dublin / London: 01/2014 - 03/2014 (Contract)

CityHook is trying to redefine the the airport transfer business. Their technology stack is based on Node.JS/Express.JS and backed primarily by a CouchDB database. A great deal of the time has been spent so far has been modularizing the existing code base to enable it to be unit testable while working on administration systems for CityHook employees and external customers.

LateCard / MediaEquals (Lead Developer)

Westminster, London: 02/2007 - 04/2008 (Contract), 04/2008 - 12/2013 (Permanent)

MediaEquals is a B2B media trading system designed to support the multiple workflows used by media agencies / publishers including BuyNow, Offer/Negotiation (with full change and cancel processes) and Auctions. It was selected and used successfully to sell all the outdoor media for the 2012 Olympic Games.

During this time I have led the majority of the development, organized releases and processes, configured nightly build systems, provisioned / configured servers (including a recent switch to Amazon AWS) and selected key services for developers such and version control and bug tracking. Outside of the purely technical skills I have had a large amount of input into requirements capture and specifications.

Note: Public website is not under development teams control.

IPC Media (Developer)

Southwalk, London: 11/2006 - 02/2007 (Contract)

This contract was for the re-release of the high traffic CountryLife.co.uk website. It utilised the Symfony framework and many Web2.0 technologies.

Pearson (Developer - Contract)

Westminster, London: - 07/2006 - 11/2006 (Contract)

Working on the Knowledgebox platform which was a Flash based interface communicating with a backend through XML. Most of the work was to analyse the existing system using Java/SAPDB and rewrite it with tests using PHP/MySQL as it was felt that this would be easier to support at customer sites.

Speechmarks.com (Owner / Developer)

Grimsby, N.E. Lincs: 09/2003 - 09/2005, 12/2005 - 07/2006

I sometimes in-between contracts worked with other freelance professionals on alternative projects. These projects have included some eCommerce websites, developing an early ORM/CMS with Hybrid Media and the Youemail platform with Creative Alliance.

Technophobia.co.uk (Developer - Contract)

Sheffield, Yorkshire: 09/2005 - 12/2005

I contracted with Technophobia to aid with development of the Haggle4Me website. My main task was to design, implement and integrate the financial control systems with the credit card payment provider.

Direct X Training (Technical Trainer - Redundant)

Grimsby, N.E. Lincs: 05/2003 - 9/2003

I trained and worked as a Technical Trainer for NVQ candidates doing IT related courses. This included running a workshop, visiting candidates at workplaces to check their progress and helping them achieve their goals.

Creative Alliance (Lead Developer - Contract)

Laceby, N.E. Lincs: 08/2002 - 05/2003

I led a small development team creating the Youemail communication platform which incorporated email, SMS notifications / payment, calendars, forums and contact management. I designed and implemented all back-end systems as well as collaborating on interface design.

QED IT Group (Developer - Company Liquidated)

Letchworth, Hertfordshire: 04/2001 - 07/2002

At QED I worked in a small team developing two Delphi based applications called EMIR and BOSS. I later led an effort to introduce more modern methods into the development process such as Unit Testing and Version Control.

Technicks (Developer)

Market Rasen, Linconshire: 05/2000 - 04/2001

I originally was the only website developer at Technicks but as the development team grew I became Development Team Leader. This role often required me to meet customers and draw up requirements and development plans.

Skills

Node/JavaScript: having used JavaScript to varying degrees throughout my career it is the technology I have most experience with. My preferred tool-kit is based around Node.JS, ExpressJS, NPM and (on larger projects) TypeScript. I prefer focussing on the back-end but have good knowledge of React, Redux and GlimmerJS.

HTML/CSS: Throughout my career my output has often been web pages and I have become proficient with these technologies. I quite enjoy the challenge of writing clean, semantic HTML and using tools like SCSS to give the desired look.

Test Driven Development / Refactoring: Throughout my career. I believe any code which is non trivial and not wholly IO should be tested.

SQL/PostgreSQL: Throughout my career I have performed basic administration and (now) can write advanced queries using concepts such as common table expressions, window functions and build custom aggregates.

APIs and RESTful Design: MediaEquals - Present: Experience of RESTful API design using RAML and OpenAPI. Outside of this I have used and deployed API's using SOAP, XML-RPC, REST, SMS, OAuth (2-Step) and other methods. Would like to learn about gRPC.

Amazon Web Services MediaEquals - Present: AWS Certified Cloud Practitioner with experience of using Terraform, AWS API's and the CLI based tools.

Docker / Microservices / Kubernetes: Daily Mail - Present: Using tools like Docker and Kubernetes I have achieved service configuration as code, which I believe is incredibly valuable.

Documentation I like code friendly documentation, such as MarkDown and enjoy code driven diagramming tools such as GraphViz and BurntSushi's ERD, particularly when joined together using ASCIIDoctor plugins.

Apache NiFi: MediaSense - Present: For managing ingestion of data and lots of data hygiene related tasks.

Metabase I have found this useful for monitoring.

Clojure Daily Mail - Present: At MediaSense I inherited and continue to maintain multiple software services wrote in Clojure.

NoSQL Databases (MongoDB / CouchDB / Elasticsearch / Redis): Cityhook - Present: I have commercial experience with a range of NoSQL databases.

Python / C# / Haskell / Java Proficient and capable, should it be required, but not my focus.

Rust Personal Projects: I'm really interested in using this language but my only experience is on personal projects which are available publicly in my GitHub profile.

PHP: Creative Alliance - MediaEquals: Many years experience.

Version Control: I have used CVS, Subversion, Mercurial and Git and have managed the last three. I prefer to use a GitHub based workflow.

Unix / Linux: I have been using Linux since before starting my professional career setting up such things as DNS, firewalls, web servers, and email services. I am fully capable of writing reliable BASH scripts as well as using powerful tools such as parallel, find and sed when the need arises.

Public Speaking I have talked at the CodeNode and the London Node User Group multiple times as well as giving internal workplace presentations.

Patents

Author of US Patent US2009/0287610 A1: Negotiation of a package of inventory, taking the form of offers and counter offers between a single major party and a plurality of minor parties.

Education

HND Computing

07/98 - 05/2000: University of Lincolnshire and Humberside 6 Distinctions, 13 Merits and 7 Passes

A Levels

07/96 - 06/98 : Franklin College, Grimsby A-Levels in Computing, Maths and Business

GCSE's

07/94 - 06/96: Lindsey School, Cleethorpes

Hobbies / Free time

The main ways I enjoy spending my free time are:

links