What I’ve been up to
I’ve been building software and teams since 2005, so this is a heavily condensed summary of my career so far.
👨💻 Professional experience
Lead Technical Architect at Government Digital Service
July 2021 - November 2022
I joined GDS to help establish new teams to maintain and develop GOV.UK’s publishing platform, building an API-first strategy to modernise an extensive suite of legacy Ruby applications in preparation for GOV.UK’s classification as Critical National Infrastructure.
-
Coached leadership and product management through a domain-driven design approach to publishing team formation and sizing. I shaped the long-lived teams that own, run and build the GOV.UK publishing platform, with a focus on clear boundaries and responsibilities. This included instigating a controversial shift away from a globally-shared developer support rota.
-
Prevented a proposed rewrite of GOV.UK publishing. I helped senior leadership and the team embrace iterative improvement with smaller, scoped rewrites where necessary. I commissioned an internal accessibility audit which enabled us to address sweeping accessibility improvements. By focusing on team capabilities, we freed the team from paralysis, empowering the developers to make quick, meaningful improvements that benefitted users. This improved morale in the development teams, and reduced fear around improving legacy systems
-
Promoted a GOV.UK-wide shift to application/service ownership. I started a book club to provide space to explore different approaches, e.g. Team Topologies.
-
Introduced C4 modelling to the architecture community, modelling the publishing space and using diagrams to demonstrate the legacy complexities and foster conversation around architectural solutions. Recruited technical positions at all levels (permanent and contract), including sifting and creating fair and inclusive interview questions.
-
Identified opportunities and produced business cases to secure budget. Mentored technical leadership on the introduction of Kubernetes and approaches to ensure resilience and upskill developers as we progressed a lagging multi-year project to migrate from legacy virtual machines.
Technologies included Ruby, Rails, RSpec, MySQL, Postgres, Docker, Kubernetes
Senior Technical Architect at Ministry of Justice
July 2019 - September 2021
As a hands-on technical architect, I lead several software engineering teams, working with product owners, developers and non-technical stakeholders to define strategy, set priorities, and build technical systems.
- Instigated and delivered the migration of the in-cell prisoner content hub from on-premise servers to a secure, cloud-based Kubernetes platform, refactoring the application architecture to enable the service to scale to all public prisons while remaining secure.
- Lead the prisoner content hub development team, coaching developers on best practice, introducing the test pyramid and CI/CD. I worked closely with the product and content teams to prioritise features, fixes and technical debt.
- Introduced a regular hack day to encourage the developers to investigate new tools and approaches, and to learn new things.
- Investigated and resolved complex performance issues in a microservice environment.
- Onboarded prisoner transfer suppliers integrating with a new Rails API we built to book a secure move, establishing channels for communication, common language, documentation and resources.
- Responsible for the hosting and infrastructure for critical offender management, risk and operational reporting systems for the prison and probation service. I introduced continuous delivery to the legacy hosting team, building and deploying infrastructure with Terraform, Ansible and Packer. I set a vision for the operations team to escape their inherited technical debt and rebuild morale and delivery velocity.
- Brokered an agreement between senior technical leaders in HMPPS & Central Digital on contentious cloud infrastructure issues.
- Identified £750k annual savings in our legacy VM deployments.
- Assessed projects against the Government Digital Service Standard, coaching teams to make sustainable, pragmatic technical choices.
- Fostered communication between siloed groups in MoJ by giving talks for Central Digital, interviewing candidates for the Cloud Platform team, and sharing ideas outside of Prison & Probation.
Technologies included Ruby, Rails, RSpec, Drupal, PHP, Node, Express, AWS, Azure, Postgres, MySQL, ElasticSearch, Docker, Helm, Kubernetes, Terraform, Packer
Director & Principal Consultant at Slate Horse Ltd
January 2015 - January 2021
Interim CTO and project-based contract development consultancy with a focus on software quality, testing, and empowering developers. My clients included University of Oxford, Oxford University Hospitals NHS Trust, Nimble Approach and Press Association.
- I was heavily involved in a public-sector transformation bid worth £2.5m, which they won. I wrote bid responses, reviewed other contributors responses, and presented & responded to technical questions.
- I was the Technical Architect in a cross-functional team developing Find & Explore NPD Data Alpha & Beta for the Department for Education. I worked with stakeholders to define the technical architecture, and led a small engineering team, developing a Rails 5 application using TDD, RSpec and Postgresql. I built the CI/CD pipelines to continuously ship changes using blue/green deployments on DfE’s Azure platform.
- I planned and executed a production Rails service migration from a single Linode server to managed Postgres, Redis and Kubernetes services in Google Cloud Platform, introducing a CI/CD pipeline to move them away from manual deployments. This increased application performance & resilience, reduced manual patching/maintenance, and allowed the service to scale to additional users as it grew.
- I designed & ran a 5-day Rails bootcamp for the Bodleian Library, cross training Python developers on Ruby/Rails fundamentals, testing, & RabbitMQ. I received positive feedback, and the team felt comfortable maintaining the system they’d inherited.
Technologies included Ruby, Rails, RSpec, Angular(1.4), React, PostgreSQL, MySQL, SQL Server, ElasticSearch, Redis, Docker, Helm, Kubernetes, Terraform AWS, Azure, Google Cloud Platform, CSS, SASS,
Chief Technology Officer at Kudos Innovations Ltd
September 2014 - April 2017
I helped Kudos develop their Ruby Padrino platform from an initial prototype into a stable, scalable product, managing a team of developers.
- Led & managed a team of developers, recruiting and mentoring developers to reduce reliance on contractors
- Introduced Scrum for the development team, with mechanisms for urgent customer support requests.
- Introduced a modular SCSS-based style guide, with reusable components that reduced development and design time, and brought consistency to fonts, whitespace, and colour across the site.
- Coached and mentored the development and management teams, promoting sustainable pace and long-term quality.
- Led the development of a UI overhaul of the existing site, migrating parts of the site to Angular.
- Led the re-engineering of their internal statistical modelling to improve performance.
- Introduced pair-programming, code review and DevOps principles to grow the team.
- Contributed hands-on development, leading the creation of a high-performance data ingestion system, managed production and staging infrastructure and migrated development to Docker to enable testing of complex system interactions.
Technologies included Ruby, Padrino, Angular, MySQL, Redis, AWS, RSpec, Docker
Senior Software Engineer at University of Oxford
November 2013 - September 2014
Rapidly became a key member of a team developing open-source metadata-registry tools modelling patient data within the NHS. Introduced Scrum, TDD, functional testing, CI and Puppet.
Technologies included Groovy, Angular, Spock, PostgreSQL, AWS
Chief Technology Officer at NMi Metrology & Gaming Ltd
March 2009 - November 2013
- Responsible for the strategic development of systems & processes to support growth and operational activities, and the security and integrity of NMi UK’s computing resources and data under ISO 17025.
- Managed a team of 3 developers and promoted team development through coaching, training, TDD & pair-programming.
- Ran critical, short-term projects from inception to completion.
- Visited clients around Europe, providing gambling compliance testing services, on-site auditing and consultancy.
- Strategically developed systems, policies, procedures & training to allow the business to grow from 3 to 30 people.
- Designed and built a report delivery system on AWS to make project progress transparent and add auditability to the delivered reports.
- Introduced an OpenStack private cloud to improve upgrade testing procedures and provide development/staging environments.
- Managed and developed Ubuntu/Debian/Windows hybrid network.
Technologies included Java, Groovy, Perl, JIRA, Confluence, Git, SVN
👩👩👧👦 Community
- Organiser of Remote Hack, 2020 – Present
- Independent Mentor, 2016 – Present
- Advisory board member for CodeATT, 2020 – 2022
- Mentor for Code4000/YooMee, 2018 – 2019
- Organiser of JSOxford, 2014 – 2017
- Organiser of OxRUG, 2015 – 2018
- Mentor for Codebar Oxford, 2016 – 2018
🏃 Events I’ve run
- Remote Hack (monthly), April 2020 – Present
- Global Code Retreat (UK), Remote Hack, November 2020
- Introducing organisational change workshop, DOPM, April 2018
- We need it now!, DOPM, September 2017
- Introduction to coaching workshop, DOPM, August 2017
- Summer of Hacks, JSOxford, August 2016
- Docker Hack Wales, North Wales Tech, June 2016
- Docker Birthday hack, DevOps Oxford, March 2016
- Summer of Hacks, JSOxford, August 2015
🎙️ Talks I’ve given
- Engineer your review processes, Ministry of Justice, January 2021
- Rebase or merge? Design your process, Airquotes The Podcast Airquotes, January 2021
- Pair programming, Ministry of Justice, October 2020
- Life as a software engineer, The Developer Academy, October 2020
- You need a mentor!, Codebar, October 2017
- WebSockets in Ruby, OxRUG, March 2017
- Improve your life with this one weird trick they didn’t want you to know about, JSOxford, February 2017
- Composable filters in Ruby, OxRUG, June 2016
- Progressive Continuous Delivery, DevOps Oxford, May 2016
- Pain the Asset Pipeline, OxRUG, December 2015
- The most convoluted JavaScript testing framework?, JSOxford, May 2015
🎓 Education, a long time ago
- Postgraduate research, University of Wales, Bangor, 2005 – 2010
- B.Sc. (Hons) Computer Systems with Business Studies – 1st Class, University of Wales, Bangor, 2002 – 2005
- 3 A-Levels & 9 GCSEs, Rossett School, Harrogate, 1995-2002