Curriculum vitae

Overview

Not so much a CV as a dumping ground while I try to remember what I did all those years. Very much a work in progress.


Education

MSc by Dissertation, Computer Science, University of Essex, 2021

Postgraduate research degree in Machine Learning, specifically K-means data clustering. Supervised by Dr. Renato Cordeiro de Amorim.

MSc Information Processing, University of York, 2000

Master's degree, Department of Computer Science.

  • Course modules included: Java Programming, Object-Oriented Software Engineering, Relational Database Design, Assembly Programming, Mathematics
  • Dissertation: "Unsupervised Segmentation of Tokenised Text" - a Natural Language Processing/Machine Learning project to discover natural language morphology, using Perl. Supervised by Dr. Dimitar Kazakov

MA (Hons) Linguistics & English Language, University of Edinburgh, 1999

Four year joint honours integrated master's degree, with a particular focus on historical and computational linguistics.

  • Honours dissertation on syntactic change in the history of the English Language: a Natural Language Processing project using Perl to analyse the Penn-Helsinki Corpus. Supervised by Prof. Caroline Heycock
  • Additional courses included a year in Artificial Intelligence involving programming in Prolog

Contract Work

Developer, Sony/ATV Music Publishing, 2014-2017

  • Backend development under the Sony/ATV and EMI Production Music brands
  • Primary responsibilities includied development and maintenance of the REST API to support the AngularJS front end, and the core music search functionality
  • Key skills: PHP7, Symfony MVC framework, Doctrine, Apache Solr

Consultant, Bloomberg, 2012-2014

  • Hands-on development projects within the BNEF business unit including development of new features and maintenance for BNEF.com and automation of data migration tasks
  • Key technical skills: PHP5, MySQL and C++
  • Additional skills: Oracle, JavaScript (including AngularJS and jQuery)

Developer, Comic Relief, 2011

  • Development on the enterprise-scale FROST fundraising platform, focused on the mobile interface to the Sport Relief Mile entry and donations system, and the internal administration system
  • Key skills: PHP5, Zend Framework, PHPUnit and jQuery

Employment

Technical Architect, Encore Tickets, 2010-2011

  • Architecture, prototyping and initial development of a large-scale backend event ticket sales and distribution platform to replace the company’s legacy COBOL system
  • Part of an Agile/Scrum team developing a consumer-facing e-commerce site, TheatrePeople.com
  • Key technical skills: REST, PHP5, MySQL/SQL, Zend Framework, PHPUnit, XML and XML Schema

Lead Developer/Technical Architect, Playphone, 2007-2010

Lead developer and technical architect on a team of up to seven developers in an agile/Scrum environment, with overall responsibility for the technical direction of all mobile Web and PHP-based systems.

  • Complete rearchitecture of the global consumer-facing mobile Web platform, replacing a procedural legacy system with a flexible, object-oriented component-based system
  • Improvement of development processes and practices, such as introduction of unit testing and TDD, and streamlining use of version control and deployment automation
  • Ongoing migration from a jumble of ad hoc "pure PHP" applications to a Service-Oriented Architecture (OTA mobile content delivery, MSSISDN Validation, Handset Recognition) based on Zend Framework MVC and proper object-oriented design
  • Build and maintenance of the production server cluster based on Linux, Apache, MongoDB and Zend Platform
  • Key skills: PHP5, MySQL, SOAP, team leadership, client facing, architecture, mobile content delivery
  • Additional skills: Java, MongoDB, PostgreSQL, Linux/Apache admin

Lead Developer, PropertyMall, 2004-2007

Technical lead on a small but highly-skilled team of developers, growing the team from two to five people, architecting and developing several large applications, and introducing professional software development practices such as version control and unit testing.

  • Development work on two large B2B industry portal sites
  • Complete re-architecture and lead development of the flagship Property Listings Database, which powered property search facilities for many large commercial property agents, as well as countless regional agents
  • Development of the in-house accounts/CRM system to replace a legacy Access-based system
  • Key skills: PHP5, MySQL, architecture, XML and XML Schema, SOAP and WSDL, team leadership, client facing
  • Additional skills: UDP network programming

Senior Developer, I-D Media Ltd., 2001-2004

  • Back- and front-end development on projects for clients including PricewaterhouseCoopers, Renault, T-Mobile and FT.com
  • General Linux and Apache web server administration
  • Client facing, pitch preparation and project specification
  • Key technical skills: PHP4, MySQL/SQL, front-end web development, Perl, Linux
  • Additional skills: ASP classic/VBScript, Flash/ActionScript

Developer, Totally plc, 2000-2001

  • Development and maintenance of a very large community portal site
  • Architecture and development of the marketing and distribution database for a national newspaper
  • Development of several large sites for clients, based on Totally’s content management system
  • Key technical skills: PHP versions 3 and 4, MySQL/SQL, HTML, Perl, Linux
  • Additional skills: Photoshop, IT support

Publications

As Author

  • An Extensive Empirical Comparison of K-means Initialization Algorithms, IEEE Access, IEEE, vol. 10, pp. 58752-58768, 2022
  • HTTP for Developers, php|architect magazine, October 2009
  • Working with Zend Platform, php|architect magazine, September 2008
  • PHP Tools for Mobile Web Development, php|architect magazine, July 2008

As Technical Editor

  • The PHP Playbook, Brandon Savage, Marco Tabini Associates
  • Zend Framework Web Services, Jonas Mariën, Marco Tabini Associates
  • Countless programming articles in php|architect magazine

Selected Personal Projects

  • MusicLiveCOLCHESTER: the first of a family of sites providing comprehensive local live music listings, built in Python and Django and using Neo4k and ElasticSearch
  • django-wikiwikiweb: a Python + Django Wiki app inspired by the original Wiki built by Ward Cunningham, whilst not quite being a WikiClone.
  • django-vanityurls: a small Django middleware to enable setting up vanity URLs, and other redirects, via the Django admin
  • pykmeans: the Python code used to run the experiments for my MSc in machine learning. Uses scikit-learn, Numpy and Pandas. See also the related projects pygendata, pycleandata

Miscellaneous

In my spare time I do a bit of writing, for example about music at threehundredsongs.com, and previously about beer at threehundredbeers.com. I had three articles published in php|architect magazine, where I later moonlighted as Technical Editor, and edited two programming books for Marco Tabini Associates.

I spend a lot of time at live music events and volunteer at a venue, and also at running events. I’m an incorrigible cryptic crossword nerd, and have contributed over 500 posts to fifteensquared.net.