I'm a software engineer that works in the wild west of the web. I specialize at building great products and great teams.
I tend to pick up new technology in my spare time like Scala, TypeScript or even a bit of Ansible / DevOps.
I'm an advocat of Agile development and usually set my teams up in a Scrum environment or Kanban if it suites the task better.
I'm currently CTO at Assertis where I lead a merry band of men (and women) in our quest to make rail travel and tickets a more bareable experience. My areas of expertise are software architecture, software development, microservices, continuous integration, Agile (mostly Scrum), TDD and leadership.
I have various open source projects on GitHub. I'm crazy enough to have built a journey planner in PHP using the Connection Scan Algorithm, Transfer Patterns and a few other bits of graph theory. I've released quite a few open source Node.js projects, including a massively multiplayer version of game of life using websites and a tool to help find developers.
I spoke at the 2012 London PHP Conference on the unconference track about integrating Lean product development and Agile software development.
My real passion is working with a great team to deliver challenging products. I love reading, particularly about programming, learning, leadership and motivation.
- PHP - Silex / anything
- Databases - MySQL, MariaDB, Galera, ElasticSearch
- Dev Ops - Ansible, Vagrant
- Agile - Scrum / Kanban
- Java - Android and J2SE
- Sysadmin - Ubuntu, Apache2, nginx, HAProxy
- Front end - HTML5, CSS, Templating
- Scala, Python
- Making coffee
Chief Technology Officer
Created a highly effective Agile team in a high risk, heavily regulated industry competing against multinational corporations.
Re-architected legacy systems to a Service Oriented Architecture that enabled rapid development of new features and products.
Implemented a modern software development environment by setting up Continuous Integration, Continuous Deployment, automated Selenium testing and virtualized development environments using Vagrant.
Migrated from a managed hosting environment to a fully automated (Ansible) AWS environment.
On Track Retail
Chief Technology Officer
On secondment from Assertis to launch a joint venture with a FTSE 250 company.
Created an entirely new team of 25 developers and delivered to a very ambitious, immovable deadline.
Architected a highly available ticket retailing engine using Scala microservices, RabbitMQ and a Galera DB cluster.
Designed a robust set of RESTful APIs and JSON protocols. Integrated with a large number of arcane, poorly designed and dreadfully documented rail systems.
Design of key architectural components and moving the team to a more functional programming approach using Underscore.js.
Mentored developers on best use of RequireJS, Backbone.js and unit testing with dependency injection.
Improved the build tools by moving to node.js and Grunt with support for Jasmine and JSHint.
Contributing to the redevelopment of the software platform using PHP, Symfony2 and CoffeeScript.
Mentoring developers on object oriented design, Agile software development and unit testing.
Working with the product owner to define the product roadmap.
Development of a large scale train ticket issuing system (TIS) that integrated with financial and rail systems using PHP,
Implementation of development procedures including version control, unit testing and continuous integration.
Responsible for the management and implementation of all technical projects within the company.
Quality assurance and progression of developers coding standards.
Project planning, management and documentation including wireframes, site structures, entity relationship diagrams, project timelines.
Managing customers, organizing hosting, domain names and emails.
You Want More?
I really think I've said enough. It's like this is a vainity website or something. If you do want more info, get in touch or read through my CV or LinkedIn profile.