Mobile: 07880 808160
Location: Plymouth, Devon, UK
Software engineer with extensive frontend and backend experience across a variety of high profile agile projects. Equally at home coding, leading and mentoring or presenting ideas to stakeholders. Always looking to learn, improve and innovate where I can - and to bring others along with me.
- Expert level frontend development including:
- HTML5 & CSS3 (Sass/LessCSS) including responsive techniques for mobile, progressive enhancement
- In depth knowledge of accessibility issues and techniques
- Extensive knowledge of frontend build tools including Webpack, Gulp, Grunt, Rollup, Browserify
- Extensive experience creating reusable component libraries comprising clean & well documented modular frontend code for subsequent use by backend developers.
- Familiar with many templating languages such as JSX, Jinja2, Nunjucks, Handlebars, Liquid
- Good eye for design and user experience issues.
- In depth knowledge of GOV.UK frontend kits (Both new and old)
- Good understanding of core http concepts and browser security features
- Use of S3 / Cloudfront / Lambda@Edge for setting up highly performant frontends
- Experienced in a variety of backend technologies including Python/Flask, Node/Express, PHP/Drupal
- Working knowledge of Ruby, Java
- Good working knowledge of SQL including PostgreSQL (SQLAlchemy) & MySQL
- Good appreciation of microservices architecture best practices / patterns including RESTful principles
- Version control with Git (Including various branching methodologies such as Gitflow)
- Acceptance testing - extensive experience with Cucumber/Capybara/Ruby and Cypress.io
- Solid working knowledge of modern DevOps practices comprising:
- Experience working in a continuous integration and deployment methodology using GitlabCI, TravisCI, JenkinsCI
- Good Linux command line skills
- Automating tasks with Bash, Python or NodeJS scripts
- Docker, Docker compose and Vagrant
- Use of AWS services including Cloudformation
- Good knowledge of XML & XSLT
- Experienced working in compliance with the GOV.UK Digital service standard and service manual
- Extensive experience building and customising Drupal 6 & 7 sites, including custom module development, eCommerce sites and 3rd party integrations
- eCommerce experience using Drupal Commerce, Ubercart and Magento
- Good knowledge of Wordpress, including best practices for managing complex sites
- Experience using Elasticsearch, Apache Solr, Lunr.js
- Redis and Varnish for caching
- Frequent contributor to open source projects, including those from GDS as well as my own (See below)
Surevine - Senior Frontend Engineer
(Nov 2019 - Present)
As part of a small agile team I have been working on everything from large services central to the functioning of government, to smaller projects with tight deadlines. I am primarily responsible for the frontend technology stack but naturally in such a small team I am assisting elsewhere when necessary and taking on backend and testing work. I am currently learning Java and AWS CloudFormation in order to increase my ability to assist with the full development stack.
HM Land Registry - Lead Software Engineer
(Aug 2018 - Oct 2019)
My primary function at HM Land Registry was to act as the Subject Matter Expert for all aspects of frontend development. This included setting standards, building and maintaining common components as well as mentoring and supporting developers / teams.
I led a variety of initiatives such as:
- Significant improvements to the frontend boilerplate applications to improve speed of development, maintainability of code and security
- Introducing React.JS for internal applications including supporting the team through learning the new technology, developing common libraries to support the creation of GOV.UK style React applications and ensuring the experience of developing a React application is as smooth as possible from the developer's laptop through to deployment on Openshift / Kubernetes.
- Acting as a champion for accessibility within the organisation
- Setting up an organisation-wide component library for sharing design patterns and production UI components
In addition to these central activities, I regularly dropped in to teams to assist with more complex areas of frontend development that they may not have the skills to deliver to the high standards that are necessary for government services.
I led a monthly frontend community where developers could share knowledge, keep up to date with developments inside HMLR's frontend stack as well as emerging industry trends. I set regular challenges for community members allowing them to practice skills they might not otherwise get to use on a daily basis. As part of the wider development community I also helped organise a 2 day hackathon.
I have delivered training courses taking developers less familiar with frontend technologies and giving them the skills they need to maintain their services effectively. I also presented at an internal conference - covering the importance of high quality frontend development for a non technical audience.
HM Land Registry - Contract senior frontend developer
(Jan 2016 - Apr 2018)
Working on a multi-disciplinary agile team building a GOV.UK service for citizens to find property information - successfully taking the service through a GDS assessment. During this period I increasingly undertook activities outside my team to improve the quality of frontend code and the skills of staff across the whole of HM Land Registry, eventually culminating in my appointment as Lead Software Engineer. I was responsible for maintaining the frontend application and multiple RESTful microservices in a complex stack.
(Dec 2009 – August 2018)
Working with digital agencies to produce high quality frontend code and deliver superb results to their clients. Including:
Formoda Ltd - Senior developer (Dec 2009 - March 2010)
Nameless Media Group - Junior developer (Nov 2007 - Nov 2009)
Ewan Group plc - Data scientist placement (Aug 2003 - Aug 2004)
- Organiser of the quarterly PlymouthJS event
- Acceptance testing with Cucumber & Capybara (FutureSync - 2017)
- Introduction to back propagation / machine learning in JS (Plymouth JS - 2017)
- Introduction to pattern libraries (Tech Exeter - 2016)
- Node.JS isn't scary! (An intro to Node.JS and Express) (PlymouthJS - July 2015)
- Modular and Maintainable frontends (Digpen 7 - September 2014)
- CSS Preprocessors - Why, How and Wow! (Digpen 5 - September 2012)
University of Exeter
(Sep 2004 - Jun 2007)
BSc Cognitive Science – 2:1
(Sep 2001 - Jun 2003)
A Levels: Mathematics (A), Computer Science (A), Physics (B).
AS Levels: Further Mathematics (C), Critical Thinking (C)
- govuk-react-jsx: JSX port of the GOV.UK frontend components for use in React apps.
- govuk-frontend-diff: A command line tool to compare custom ports of govuk-frontend with the Nunjucks reference macros. This allows authors of ports to ensure compliance with govuk-frontend, including subtleties such as Aria roles which are often missed.
- hmlr-design-system: Early proof of concept design system for use across HMLR's frontends. Supplies Sass and JS as well as Nunjucks templates / JSX components in order to serve the needs of Python/Flask and React apps.
- land-registry-elements: Previous iteration of a design system for HMLR - initially focusing on the needs for the "Find Property Information" service.