Multi-faceted software and infrastructure developer. I’ve built large scale websites, trained graduate software developers, worked in platform teams on resilient, secure infrastructure, coached people adopting agile practices and migrated legacy systems to the public cloud.
I care about building teams that work well together, delivering excellent products, using the best technologies to get the job done and automating all the things. I apply practices that help me achieve those things including TDD, CI/CD and agile.
- Remote working: tools and tips
- Dynamically loading classes from modules in Python
- PGP Keys with a Yubikey and GPGTools
- The environmental case for eating less meat
- GNU Parallel or How to list millions of S3 objects
- Analysing Oyster data dumps with Clojure
- Inclusivity and devops
- Puppet: 'could not find class' and metadata.json
- Scratching an itch: why I like programming
- Why TDD isn't dead
- Framework scalability
- Mocking files and file storage for unit testing Django models
- A little less magic
- A scalable architecture for Django applications using Docker
- Running a Game Day
- See one, do one, teach one
- Six lessons from working in platform teams
- Software development best practices for Puppet users
Infrastructure specialist working closely with developers to stand up infrastructure, improve build and deployment systems and help clients figure out how to build platforms and structure their teams. Involved in multiple projects including:
- working with a large academic journal publisher, rewriting their primary site and migrating it to AWS
- building a big data platform
- maintaining a complex microservices architecture employing multiple cloud providers and lots of public key cryptography for the UK government
- acting as BA, agile coach and technical advisor building an internal PaaS for multiple teams
Spent 4 months (two terms) as a trainer for ThoughtWorks’ graduate training programme, including one term as Lead Trainer.
Responsible for development of a lightweight custom PHP service fronted by Varnish to serve high volume traffic. Introduced PHPUnit-based unit testing including running tests and static analysis tools using a Jenkins project and created a monitoring dashboard system using Dashing.
Built with a CakePHP back-end and a custom PHP front-end coupled with Memcached to serve the millions of visitors that the world's number one cycling website receives at peak times.
The UK's number one cycling website built on a custom PHP platform. I implemented an A/B testing framework using Redis and introduced Vagrant-based virtual machines backed by a Puppet configuration used in production.