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.
- Thesis: K-means Initialisation Algorithms: An Extensive Comparative Study
- Co-authored research paper An Extensive Empirical Comparison of K-means Initialization Algorithms published in IEEE Access, IEEE, vol. 10, pp. 58752-58768, 2022
- Three open-source libraries (pykmeans, pygendata, pycleandata) developed in Python to enable the research, using scikit-learn, Pandas and NumPy extensively. All libraries are released under the permissive MIT license
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.

