Senior Software Engineer2015 - PRESENTRetailMeNot UK
Technologies: PHP7, Laravel, Python, Docker, Vue.js, MySQL, AWS Redshift, Rabbit MQ, AWS Kinesis, Terraform, Ansible, Flask
- Created and maintained a tool using PHP7 for orchestrating the flow of data between production and reporting data stores.
- Wrote and monitored ETL jobs in PHP7 and Python, moving millions of rows of data each day.
- Created real-time streams of user activity data to be used for reporting and personalizing on-site experiences using AWS Kinesis and Kinesis Analytics.
- Transitioned a user/merchant affinity algorithm on a Spark-based EMR cluster in AWS to production-ready status.
- Led the data engineering team; a team of three software engineers.
- Modeled data for storage in the company's data warehouse hosted on AWS Redshift.
- Created a database user management and authorization system using Flask (Python) as a REST server and a Vue.js front-end.
PHP Engineer (Contractor)2014 - 2015Aurora Commerce
Technologies: PHP, Varnish, Memached, NGINX
- Implemented an event-based workflow system in the company's flagship eCommerce platform.
- Optimized caching strategies using Memcached and Varnish with edge side included for improved performance.
- Worked directly with the company's clients to gather requirements, estimate costs, and generate a quote for work.
- Implemented dashboard reporting, allowing store owners to compare data over date ranges in the same type of service that Google Analytics provides.
- Helped optimize MySQL queries to improve stability and performance of the client systems during peak hours.
PHP Engineer (Contractor)2013 - 2013Affiliate Window
Technologies: PHP, Zend Framework, Elasticsearch, MySQL, REST, Behat
- Refactored existing code architecture for the company's directories of publishers to vastly improve maintainability of this section of the codebase.
- Introduced Elasticsearch as a search technology, replacing the MySQL solution. Improved indexing and retrieval times by several orders of magnitude.
- Integrated with Zanox (Affiliate Window's parent company) via REST and SOAP APIs to provide UK and EU users seamless access to each other's markets.
- Wrote extensive end to end tests around the new directory architecture using Behat.
- Contributed to the team generating recommendations for users based on previous behaviors using Mahout.
PHP Engineer and Consultant (Contractor)2012 - 2013Xigen
Technologies: PHP, Zend Framework, Scrum, jQuery
- Mentored junior members of staff to develop their OOP skills and Zend Framework knowledge.
- Built a Zend Framework system for a client that specialized in print. The system was comprised of an eCommerce front-end and a management system that allowed for the automatic "laying up" of artwork.
- Introduced Agile methodologies to the business and acted as a consultant in applying Scrum to one of the development teams.
- Improved the in-house CMS used to power Epson's public facing websites, providing stability on deploys.
- Introduced PHPUnit to legacy systems that were prone to the introduction of regressive bugs.
Senior Developer2011 - 2012Affiliate Window
Technologies: PHP, MySQL, jQuery, PHPUnit, Behat
- Worked with a remote team based in Berlin to integrate the Affiliate Window and Zanox back-ends after Affiliate Window was acquired.
- Created REST endpoints for the Berlin team to consume, and consumed REST endpoints exposed by the Berlin team.
- Created an SSO (single sign on) solution to allow users to seamlessly switch between the Zanox and Affiliate Window systems.
- Integrated Zanox publishers into the Affiliate Window network.
- Regularly profiled code using Zend Studio and Xdebug to identify bottlenecks in the application.
Head of Web Development2010 - 2011Quacquarelli Symonds
Technologies: PHP, MySQL, Drupal, Pressflow, Scrum, Webistrano, Varnish
- Led a team of nine PHP developers and a Scrum Master in two different development areas of the business. One area focussed on public facing websites built in Pressflow - a Drupal distribution. The second area focussed on a custom-built data collection system used to request research information from Universities.
- Managed the web infrastructure of the business, including physical hardware.
- Implemented a Varnish cache on public facing areas of the site to handle annual 10x-20x spikes in traffic due to the release of the company's "World University Rankings".
Web Developer2005 - 2010Quacquarelli Symonds
- Worked on the development of the company's web properties, topmba.com and topuniversities.com, written in PHP.
- Wrote application to collect research statistics from universities and push submitted data through a validation pipeline. This data was ultimately used in the company's annual release of the "World University Rankings".
- Researched and introduced Scrum to the development team.
- Researched and introduced Subversion to the development team; no version control system was in use previously.
- Migrated legacy systems from the Lasso language over to PHP, increasing the number of developers who were able to work on those systems.