Alister Bulman, Software Developer in West London, United Kingdom
Alister Bulman

Software Developer in West London, United Kingdom

Member since March 26, 2015
Alister has been programming professionally since 1987, and with PHP since the year 2000. Having previous experience with languages as disparate as Z80a/6502/8086 assembly, C & C++, Perl, and Ruby, he has a particular passion for high-scale systems and queues.
Alister is now available for hire

Portfolio

Experience

  • MySQL, 15 years
  • PHP, 15 years
  • LAMP, 15 years
  • Linux, 15 years
  • PHPUnit, 8 years
  • Memcached, 5 years
  • Symfony 2, 3 years

Location

West London, United Kingdom

Availability

Part-time

Preferred Environment

Linux, Symfony & SublimeText 3

The most amazing...

...system I've developed was the back-end of a game for kids. There were over 10,000 concurrent players in the run-up to Christmas 2010.

Employment

  • Senior Contract Project Lead

    2014 - 2014
    Home Office/HMPO
    • 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).
    Technologies: PHP, Symfony, Linux, Apache
  • Contract PHP Developer

    2013 - 2013
    The Book Depository (part of Amazon)
    • 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.
    Technologies: PHP, Zend Framework, Symfony components, SQS, PHPUnit
  • Contract PHP Developer

    2012 - 2012
    Transform, GDS & Office of the Public Guardian
    • 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.
    Technologies: PHP, Zend Framework, Linux
  • Lead DevOps/PHP Developer

    2012 - 2012
    Praxis Networks
    • 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.
    Technologies: PHP, VirtualBox, Zend Framework, Linux, Puppet
  • Platform Engineer/Lead Developer

    2011 - 2011
    PeerIndex.net
    • 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.
    Technologies: PHP, MongoDB, AWS/EC2, BeanstalkD, AWS/SQS, Zend Framework, Scaling
  • Lead Developer and Sysadmin

    2009 - 2011
    Bin Weevils Limited
    • 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.
    Technologies: PHP, MySQL, Apache, Chef, Memcached, scaling, optimization, Linux
  • Lead PHP Developer

    2007 - 2009
    Dating Website
    • 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.
    Technologies: Zend Framework, PHP5, MySQL Apache, Smarty templating, Linux XMPP/Jabber
  • Senior PHP Developer/Technical Architect

    2006 - 2007
    American Mobile Ventures
    • 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.
    Technologies: PHP, Linux. MySQL
  • PHP Developer

    2004 - 2006
    Technotheurgic, Ltd. T/A Intunet
    • 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.
    Technologies: PHP, MySQL, Linux, Smarty
  • Senior PHP Developer/System Administrator

    2003 - 2004
    Datasouth UK, Ltd.
    • 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.
    Technologies: Linux, PHP, MySQL, DNS, Apache, thttpd, SVN, DJB-DNS
  • Web/PHP Developer

    1999 - 2002
    Falcon Internet Marketing
    • 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+).
    Technologies: HTML, PHP, Linux, Perl

Experience

  • PHP Scaling, Tech Blog (Development)
    http://PHPScaling.com/

    Some of the advanced techniques I've used in the past to be able to process hundreds of millions of pieces of data, and run tens of thousands of concurrent players on just a couple of mid-range web-servers.

    Optimization of database, code and architecture to get things done on the LAMP stack.

  • Bin Weevils (Development)

    A kids' online virtual world where you can create your very own virtual pet, play free online games, chat with friends, grow your own garden, and watch great cartoons.

    Throughout all of 2010, I was the lead PHP developer and sysadmin, adding new functionality, and cleaning up the codebase while allowing ever more users to be playing. During the autumn, the site was also advertised on numerous TV Channels, producing some huge spikes of incoming users. By the end of the year, I had automated the system deployment (with Chef) to allow most new servers to be deployed and be running in as little as 20 minutes.

    A significant part of the ability to scale the system was use of Memcached as a temporary store, as well as cache, avoiding potentially millions of database requests.

    By Christmas 2010, there were regularly over 10,000 concurrent players.

  • Job Queues and Beanstalkd Presentation (Other amazing things)
    http://alister.github.io/presentations/Beanstalkd/

    On May 6th 2010, I presented at PHP London on the topic of “Job Queues and Beanstalkd” with these slides: "Beanstalkd: An Introduction."

    The rest of http://alister.github.io/ is the lesser technical adventures, that are slightly less suitable to go onto PHPScaling.com - but often still valuable knowledge in the scaling of LAMP-stack applications.

  • Toptal Mentor
    Alister is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Alister shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.

Skills

  • Languages

    PHP, SQL, Ruby, JavaScript, Bash
  • Frameworks

    PHPUnit, Symfony 2, Symfony, Zend Framework, AngularJS
  • Tools

    Beanstalk, Amazon SQS, Git, Apache, Behat, Composer, Oh My Zsh, Zsh, Cucumber, Chef, Ansible
  • Paradigms

    Unit Testing, Kanban, Agile Software Development, DevOps, Test-driven Development (TDD), REST
  • Platforms

    LAMP, Linux, Amazon Web Services (AWS), Docker, AWS EC2
  • Storage

    Memcached, MongoDB, NoSQL, MySQL, Redis
  • Other

    Caching, Scalability
  • Libraries/APIs

    Doctrine, Puppet.js

Education

  • Higher National (certificate) degree in HNC Computer Studies
    1991 - 1992
    Bournemouth University - Bournemouth

To view more profiles

Join Toptal
I really like this profile
Share it with others