Senior Contract Project Lead2014 - 2014Home Office/HMPO
Technologies: Apache, Linux, Symfony, PHP
- Led the technical team responsible for a lost or stolen passports project.
- Wrote extensive server-side code for passport-holders and reporting and workflow of lost passport handling.
- Brought the reporting of passports into the digital age as part of the GOV.UK platform, including extensive statistics generation.
- Assisted WebOps/DevOps engineers with system architecture.
- Built a testing environment for the team (Jenkins, PHPUnit, Behat, etc).
Contract PHP Developer2013 - 2013The Book Depository (part of Amazon)
Technologies: PHPUnit, Amazon SQS, Symfony, Zend Framework, PHP
- Developed a PHP-based system for Symfony2/CLI-based SQS-driven tasks for web scraping data from complex public sites across hundreds of pages.
- Created a ZF1-based PHP API for a new search system, interfacing between the current site search and a back-end Sphinx search engine.
- Designed and implemented a new coupon-code system to allow for longer codes, with tens of millions to be pre-generated.
- Wrote extensive PHPUnit test coverage for all new code.
- Presented on modern best practices of use of libraries and technologies, such as Composer.
Contract PHP Developer2012 - 2012Transform, GDS & Office of the Public Guardian
Technologies: Linux, Zend Framework, PHP
- One of a pair of developers responsible for a 6-week prototype site, putting a 40+ page paper-based form online as a proof of concept to ease the production for the creation of a Lasting Power of Attorney.
- Worked with the government digital server (responsible for http://www.gov.uk/). I added support to their systems for the use of PHP to their development stack (in the existing Puppet manifests).
- Utilized Selenium (IDE/browser-addon) to demo and test the main web form.
Lead DevOps/PHP Developer2012 - 2012Praxis Networks
Technologies: Puppet, Linux, Zend Framework, VirtualBox, PHP
- Designed prototype systems and websites to put Wifi & 3G-enabled web servers onto London buses.
- Connected with XML/Soap API to allow wifi users to connect to external 3G connectivity.
- Designed the technical architecture to allow for a number of background processes to be run and files to be properly placed for multiple live (bus-mounted) servers to pull the server configuration, website, and data.
- Interviewed, hired, and led a tech team of two PHP developer contractors.
- Wrote Puppet manifests to bring up all new machines (core website, development VMs and remote webservers - that usually live on a London double-decker bus), and recommended and installed various other tools and systems to be used.
- Designed systems to allow for potentially hundreds of buses to be connected into the system for frequent updates of current travel information or news and, later, video.
Platform Engineer/Lead Developer2011 - 2011PeerIndex.net
Technologies: Scaling, Zend Framework, Amazon SQS, Beanstalkd, AWS EC2, MongoDB, PHP
- Retrieved data from all over the social web by API access and web-scraping to build individual social networks and calculate their measure of authority within peer-groups and beyond.
- Responsible for scaling background processes with queues (both AWS/SQS and BeanstalkD), running millions of jobs through the queues every day and getting the best from an Amazon Web Services/MongoDB environment.
Lead Developer and Sysadmin2009 - 2011Bin Weevils Limited
Technologies: Linux, Optimization, Scaling, Memcached, Chef, Apache, MySQL, PHP
- Responsible for scaling and optimization. Bin Weevils is a flash-based game/social-network/MMORPG for 7- to 13-year-olds in conjunction with the Nickelodeon UK TV channel.
- Scaled from ~4000 users online to 10,000+ concurrent users. In summer of 2010, the site was being advertised on multiple TV channels, requiring a great deal of system optimization to be able to survive sudden rushes of new users.
- Utilized Memcached for both cache and transient storage or rate-limiting of player actions.
- Responsible for the entire back-end API (including the servers) for large tranches of new functionality. From the servers that I controlled, there was in excess of 200 million hits per month (99.9% PHP, over 20 Million hits/day), from a pair of PHP application servers and with 20+TB data delivered across the entire site per month, including fully dynamic PHP responses to Flash, CDN sourced Flash/images & streaming video.
Lead PHP Developer2007 - 2009Dating Website
Technologies: XMPP, Smarty, Apache, MySQL, PHP 5, Zend Framework
- Worked from home 19+ days a month for over 2 years working on a dating website.
- Rewrote the back-end administration system in Zend Framework with AJAX support to allow for easy site administration (profile approval) and site statistics (turnover, members online, etc).
- Averaged 73+ million hits per month in the 12 months to May 2009, 51M hits to Apache/PHP, 22M to a new, dedicated image server.
- Scaled the site from 75,000 users to 300,000 in 2 years and 75 concurrent users online to 400+ while simultaneously reducing server loads using such techniques as caching of data to memory (APC) & Memcached.
- Implemented a queue-based system for further scaling (Beanstalkd, initially for image upload resizing).
- Wrote all new front-end functionality in Zend Framework (with JS/jQuery).
- Wrote an email queue system to send ~200,000 emails a week without causing system issues.
Senior PHP Developer/Technical Architect2006 - 2007American Mobile Ventures
Technologies: MySQL, Linux, PHP
- Implemented a development environment to scale from an initial two developers to a total of nine.
- Installed and maintained multiple local and remote web servers and MySQL servers with replication to multiple slaves.
- Planned a new version of the SMS sending/receipts engine to be able to scale to orders of magnitude greater throughput on multiple servers as part of a cluster.
PHP Developer2004 - 2006Technotheurgic, Ltd. T/A Intunet
Technologies: Smarty, Linux, MySQL, PHP
- Used and developed extensively with common toolkits for site frameworks and email templates.
- Created PEAR and Smarty-based PHP website applications including multi-lingual sites.
- Installed bug-tracking and version control systems. Administrated local development environments & live, remote web-servers.
Senior PHP Developer/System Administrator2003 - 2004Datasouth UK, Ltd.
Technologies: Djbdns, Subversion (SVN), thttpd, Apache, DNS, MySQL, PHP, Linux
- Supported the production team on advanced PHP use (PHP/Development/Linux local 'Guru').
- Maintained and upgraded multiple internal and external RHEL servers.
- Installed a dedicated image server for BTOpenworld HTML-based email images which reached a peak of over 170 connections per second and 3.3 million hits/day in February 2004.
- Created an email tracking system which generated unique URLs for links and a 'web-bug' image to count readers and click-throughs.
- Wrote a simple link count/redirection system (used by BT Openworld in various email and paper mailings before & after their transition to Yahoo Mail).
- Designed and developed an HTML/MIME personalized bulk email sending system to integrate with the email tracking system to send in excess of 270,000 emails on behalf of BTClick.com.
- Installed a CVS-based development environment and maintenance and extended the in-house content administration system.
- Implemented server control and information systems to support a DNS system with a web-based control panel.
Web/PHP Developer1999 - 2002Falcon Internet Marketing
Technologies: Perl, Linux, PHP, HTML
- Wrote simple HTML-based sites.
- Generated larger, many-page websites from data and templates.
- Created early PHP- and MySQL-backed websites for interactivity and database-driven systems (using PHP 3 and MySQL 3.54+).