I’m Paul Herron, a web developer. I build online applications
with tools like Symfony and Angular.

Other things I’ve been working on recently

The Angry Architect Cooksey Studio Keyword Bookmarks

A very brief CV

Technical Skills

Back-End Web Development. 12 years’ experience with CakePHP. 4 years’ commercial experience with Symfony. Understanding of building maintainable, test-driven, scalable web applications using object-oriented code and the MVC pattern. Extensive use of PHP, MySQL, PostgreSQL and Elasticsearch.

Front-End Web Development. 10 years’ experience with jQuery. Commercial experience with Angular 2. Thorough understanding of HTML5, JavaScript, CSS. Proven experience developing quality, user-focused, accessible, standards-compliant and responsive websites. Experience with tools like Backbone.js, Grunt, Sass and Less.

DevOps and Systems Administration. 8 years’ experience provisioning and maintaining Linux servers to run high traffic, high availability websites. Solid command-line knowledge. Experience with Git, cron, rsync and related utilities. Ability to administer Nginx, Apache, PHP, MySQL, PostgreSQL, HAProxy, Exim, OpenSSH and other services. Knowledge of cloud platforms such as Amazon EC2 and Rackspace Cloud, and development tools like Vagrant and Jenkins.

Management and Workflow. Long-term experience implementing and using agile workflows. Ability to switch between management and hands-on development roles. Experience of building a development team and meeting business-critical deadlines. A long history of liaising successfully with product owners and stakeholders, both technical and non-technical. Extensive use of Git Flow and continuous integration. An overall focus on pragmatism.

Work Experience

February 2017 — Present, Wireless Logic
Building features for SIMPro, an online platform for managing SIMs and IoT devices. Working with Symfony, RabbitMQ, Solr, MySQL and Angular 2. Building customer-facing APIs. Leading the Development Support team, responsible for bug fixes and maintenance of the platform, as well as general troubleshooting issues arising from the management of millions of SIMs integrating with many third party providers. Responsibility for code review and regular releases to production. Working to agile principles, using pull requests and code review. Helping to establish better testing and the use of tools like SonarQube.

July 2016 — October 2016: PHP Developer (Contract), Adaptive Lab
Developing a RESTful API used by Forevr, a contacts application for Android and iOS. Using Symfony 3, domain-driven design, TDD and BDD, PHPSpec, PHPUnit, Dredd, PostgreSQL and Vagrant. Using PHP 7 for its enhanced language features and working with large denormalised datasets in Elasticsearch. Working closely with iOS and Android developers to establish desired functionality, and using BDD and API Blueprint to help codify this. Liaising with the business founder and other stakeholders. Maintaining load-balanced infrastructure in AWS, and deploying to it using Ansible and Travis. Integrating with the Facebook API and building a feature with SQS to send push notifications to mobile devices.

May 2016 — July 2016: Senior PHP Developer (Contract), Havas Worldwide
Maintaining and improving a Symfony-based crowdfunding platform for a global drinks brand. Deploying with Capistrano to a load-balanced setup in Rackspace Cloud. Working with CDNs, database migrations, unit and functional tests, the Facebook API and multiple translations for the website's worldwide audience. Front-end development with Twig, Sass, Grunt and jQuery.

May 2015 — April 2016: Technical Lead (Contract), MBA & Company
Leading the development team in a total rebuild of this startup's web application and server infrastructure. Ensuring good architecture and a robust product. Hiring a technical team of seven developers and helping establish a productive working environment. Developing using Symfony, Doctrine, MySQL, Twig, Bootstrap and Sass. Scripting data migration and orchestrating the switchover to new infrastructure in Rackspace Cloud. Reporting directly to the COO and attending board meetings to update the company's investors. Working with the Product team to define an MVP for launch, successfully meeting a very tight relaunch deadline, then leading the tech team in iterating rapidly on this. Establishing an agile workflow and test-driven approach. Using Chef to manage infrastructure and Jenkins for continuous integration.

October 2014 — February 2015: Senior PHP Developer (Contract), Amaze
Working on a CakePHP-based social publishing platform for a global hotel company. Working as sole developer, from early prototype to production site used by 22,000 employees. Establishing an agile workflow, coding conventions, Vagrant-based development environment and a focus on unit testing. Co-ordinating with project stakeholders both from the agency and the client company. Integrating with some of the company's existing infrastructure, such as LDAP authentication. Using tools like CakePHP, PHPUnit, Jenkins, Grunt, Sass and jQuery.

May 2014 — September 2014: Senior PHP Developer (Contract), MBA & Company
Acting as the technical lead, working with an in-house Junior Developer and remote teams in India and Russia to improve the application for a funded recruitment startup. Building features and reducing technical debt on the Yii-based platform. Reducing code duplication and establishing coding best practices for the team. Using tools like Backbone, Sass and Elasticsearch. Establishing an agile workflow and regular deployment process using tools like Jenkins.

July 2009 — April 2014: Back End Developer, SHOWstudio
Working alongside a Front End Developer on a total rebuild of the SHOWstudio website using CakePHP. Migrating server infrastructure from a single dedicated machine to AWS, using S3 and Cloudfront for assets and Wowza Media Server for live video broadcasts. Building and maintaining server instances in EC2. Migrating 10 years of editorial content into the new application and orchestrating the switchover to it. Building features from scratch such as a blog, events calendar, project archive, online store integrating with Sage Pay and a content management area used by the editorial staff. Using tools like PHPUnit and HAProxy. Building some 'big data' features such as tracking millions of tweets and Instagram photos to create data visualisations. Managing mailing lists, corporate email and all other infrastructure.

Download the full document:
Word file PDF

Recent blog posts

More blog posts…