- Telephone: 07957 572988
- Email: firstname.lastname@example.org
- Date of Birth: 1980
- Location: London
- Driving License: Full UK Clean
- Blog: matt-at.keyboard-writes-code.com
- GitHub: github.com/forbesmyester
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 which has included tasks such as drawing up initial requirements and specifications, technology selection, development, designing and documenting the overall system, planning testing strategies, continuous delivery and release processes.
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.
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.
MediaSense (Principal Developer)
Great Portland Street, London 07/2016 - Present
MediaSense advises large national and international organisations on how they buy media. At MediaSense the main data input is often Excel documents but they still desire to be able to process these using modern and automated methods. A large part of my work has been to make this processing possible. Outside of this I have also been working on a single page web application, which is targeted at CMO's that benchmarks selected brands against each other or the entire market.
Land Technologies (Senior 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. The vast majority of my work so far has been planning and developing the systems to collect information about planning applications. As well as this I have introduced TDD and linting as part of the development process and have done MongoDB and PostgreSQL database administration.
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.
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.
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.
07/98 - 05/2000: University of Lincolnshire and Humberside 6 Distinctions, 13 Merits and 7 Passes
07/96 - 06/98 : Franklin College, Grimsby A-Levels in Computing, Maths and Business
07/94 - 06/96: Lindsey School, Cleethorpes
Hobbies / Free time
The main ways I enjoy spending my free time are:
- Listening to audio books.
- Skating / Skateboarding around London with LFNS / Wednesday Night Skate
- Learning Japanese.
- Looking at new technologies through books, media and meetups.
- Personal Projects.
- Mountain Biking
- I have a blog where I write things which I think others will find interesting