London, United Kingdom
London, United Kingdom
Web Application Development Specialist. Specialising in PHP5, Symfony and MVC frameworks.
I have extensive knowledge of Object Oriented development, Design patterns, MVC frameworks (including Symfony 1.x, Symfony2, Symfony3, Silex and Zend), High traffic web systems, Continuous Deployment tools and various testing strategies for different platforms.
The ability to administer and configure web servers using automated tools such as salt, puppet and chef. Experience with the set up of vagrant for local development. As well as knowledge on how to generate RPMs for consitant deployment.
The ability to manage an IT team to deliver projects in an agile manor with use of tools including JIRA, Elementool, TRAC and Agilo. Running scrum and burndown within a sprint, including story estimation and sizing, planning poker and retrospectives. Ensuring code quality with git hub code reviews and TDD with unit tests run on a CI environment.
The ability to mentor, train and get the best out of my team members and therefore improving productivity within the team.
An in depth knowledge of GNU/Linux (mainly Debian based) and Windows.
Platinum Tech Solutions Ltd
October 2015 - Today
Contract Developer Specialising in PHP, Symfony3, ElasticSearch, AWS, PostGreSQL, Git, SVN and Agile based in London.
Technical Team Lead (Contract)
June 2017 - Today
Managing the transition from RBI hosted solutions into a new AWS system managed by Rackspace. As well as conducting code reviews and improving processes within the existing New Scientist development team. Ownership of the existing release process in Jenkins to build create Elastic Beanstalk containers for the web platform as well as implementing a new CI system to improve development processes and procedures. Tools & Skills used: ElasticSearch, AWS, Elastic Beanstalk, CentOS, RackSpace, DevOps, PHP, RDS, Jenkins, JIRA & GitLab
Contract Developer - Core Dev Team
July 2016 - May 2017
Working within the Core team to maintain the existing REST API written in Symfony3 my main task was to create a stats micro-service powered by Symfony3 and ElasticSearch 5. This service pulls data from the REST-API and then uses aggregations to generate stats for football players & teams. I also handled the deployment and server configuration of the Elastic Search machines via a collection of ansible scripts. I also made a number of improvements to the ansible deployment scripts for other projects include Slack notification integration and version logging when code was deployed to DEV or PROD. Tools used: PHP, Symfony 2 & 3, ElasticSearch, AWS, MySQL, Docker, PHPUnit, git, github, Ansible, Travis, JIRA, & confluence.
ElasticSearch Consultant & Advisor (Remote)
October 2016 - January 2017
Providing advise and support to the development team on ElasticSearch including best practices, and techniques to get the most from the technology.
Contract Developer - UK Consumer Engagement
March 2016 - July 2016
Contract Developer - EComm CMS
January 2016 - February 2016
Developing an MVP CMS tool in Symfony3 (3.0.2) to control blocks of content across multiple websites, including the in-store website. This small MVP project uses bootstrap most of the UI, and jQuery for any additional JS logic. The CMS is separate to the main Magento system that powers the main sites, but is used to enhance the content on them without the need to re-deploy the main websites. Deployed in AWS and using GO-CD for continuous delivery. Developed in an Agile way and using TDD with a mixture of PHPUnit and Behat.
Contract Developer - Visible Rights Project
November 2015 - December 2015
Consulted on the build for an MVP video portal. Researchers can upload video clips into the system and produce playlists of clips to share with producers to review. The producer can short list from the clips and request access to the full versions. This system is built with the latest version of Symfony2 and Doctrine2. Deployed on AWS running PHP 5.6 and MySQL. All code is stored in github, and development was done on local vagrant instances. All code changes are processed via pull requests on github, and I set up a Jenkins node to automatically run the PHPUnit and Behat tests. Code was not allowed into the main branch if tests failed to run. Sprints were quick 1 week blocks as this MVP was needed before Christmas, and the end of the year.
Technical Lead, Core Platform
March 2014 - November 2015
Lead Developer for the Provisioning side of the platform. Low-level database communications and search. Team includes developers in the London office and Bangalore office. Technologies used: PostGreSQL, PHP 5.4, Git, Memcache, Elasticsearch, JSON, JSONP & XML, Salt, PHPUnit, Jenkins (CI), NginX, AWS, Redis, Akamai. My roles includes weekly 1-2-1s with developers within my team and line manager responsibility for 2 permanent developers.
Senior Platform Engineer
July 2013 - February 2014
Part of a team of developers responsible for building an REST API for a second generation system. Technologies used: PostGreSQL, PHP 5.4, Git, Memcache, SOLR, JSON, JSONP & XML, Puppet, PHPUnit, Jenkins (CI), NginX, AWS.
Lead Developer - Southbank Team
September 2012 - June 2013
Lead Developer for the Southbank Team, working on the Homes Network websites including House to Home. Line Manager to 3 developers, who I hold regular 1-2-1 meetings with. Working with the Tester in the team to plan sprints, including task break down and sizing as well as backlog sizing.
Senior Developer - Core Systems Team
November 2009 - August 2012
Lead Backend Developer for a content management system, built in house with the Symfony framework for a number of IPC Media brand magazines. Assumed the role of the release co-ordinator for the CMS and ensured that all of the BETA and LIVE releases we conducted during non-peak times, and with issue. Built and maintained a QA portal website which lists QA instances of the CMS for the test team to easily find and test our website. This was later rolled out into the wider department to aid test teams on all the magazine websites. Worked on improvements to our database upgrade/migration systems reducing the amount of work needed for each database change for releases of our CMS. Conducted 1-2-1 meetings with the other backend developer to discuss their current thought and ideas about the work, and to offer any advice or support they may have needed. Built a content API with MongoDB and Symfony2 to serve content from our top brands to a mobile app available from the Android Market Place and Apple iTunes. Worked on improvements to a Release Management tool written in Zend Framework. Which communicated with SVN and Jenkins to create release packages for our brand websites. Applied Coding Standards across multiple projects within the department with regular code reviews with other developers as well as reviewing SVN commit emails on a periodic basis. Became the goto person for all things TDD related because of my passion for automated testing and effective code coverage.
University of Portsmouth
BSc (Hons) Internet Technology
2002 - 2005