Track record

    18+ years of turning messy problems into working software

    From writing the code myself to leading teams that ship to thousands of customers — here's where that experience came from.

    Roles

    Where the experience was built

    Each role below is the short version — the pattern is always the same: find what's actually broken, then fix it in a way people can keep running.

    DevSecOps Principal Lead and Coach

    June 2022 - Feb 2025

    BT Business · Manchester

    • Built a reusable way for engineers to deploy their own Java and Node.js applications, with security, reliability and monitoring built in from the start rather than bolted on afterwards.
    • Created ready-made templates so new applications came with automated testing and deployment already wired up, cutting weeks off every new project.
    • Built the small building blocks used to set up every new cloud account safely and consistently.
    • Delivered and hosted new customer-facing websites so customers could sort things out themselves rather than phoning in.
    • Coached engineers and managers one-to-one, helping teams adopt the delivery practices proven to work best by DORA's State of DevOps research.
    NodeJavaPythonSpring BootNextJSAWS SAMAWS EKSAWS ECSDockerArgoCDTerraformPulumi

    Cloud Services Lead

    Dec 2018 - May 2022

    Plusnet · Sheffield

    • Led the build of a private cloud platform that gave the business the same speed and self-service ease as the big cloud providers, at a fraction of the cost.
    • Put comprehensive monitoring in place across networks, storage and infrastructure, so problems were spotted before customers noticed them.
    • Moved the systems that run sales, customer relationships and support onto the new platform, cutting running costs and getting new ideas live faster.
    • Championed sensible risk management and training, and set up a forum that introduced a new container platform with a much simpler deployment process.
    • Built a timesheet tracking application end to end, making it easier to account for project time and less of a chore for engineers.
    NodeTypeScriptRuby on RailsPHPSpring BootAWSDocker SwarmTerraformJenkinsBitBucket

    Lead Cloud Engineer

    May 2016 - Nov 2018

    Plusnet · Sheffield

    • Transformed the internal engineering cloud platform, making it more secure, breaking it into smaller independent services, and automating the build process.
    • Introduced self-service access, cutting the time it took to set up a new environment from 3 hours to 5 minutes.
    • Grew the number of test environments from 19 to 100 so more teams could work without waiting for each other.
    • Led the build of a pre-production environment purpose-built for testing failures, non-functional issues and migration dry runs before they hit customers.
    NodeJavaScriptTypeScriptRuby on RailsPHPDocker SwarmTerraformAnsibleJenkinsPuppet

    Lead Software Engineer

    Jan 2013 - Apr 2016

    Plusnet · Sheffield

    • Overhauled the business release process, moving from a monthly out-of-hours event to a routine in-hours release every two weeks.
    • Led a change to how every engineering team managed and versioned their code, bringing consistency across the business.
    • Improved the release tooling, making development environments more stable and removing common blockers to shipping.
    • Delivered Plusnet YouView TV, growing the offer from two services to three, and led the rollout of BT Sport.
    • Managed two UK-based teams (12 engineers) and coordinated with 10 offshore teams (8 engineers) as part of a major programme to rewrite Plusnet's legacy order-processing system.
    JavaJavaScriptGroovyPHPSpring BootJ2EEJSPTomcatJBossJenkins

    Senior Software Developer

    Dec 2009 - Dec 2012

    Hitachi Capital · Leeds

    • Stabilised a set of large, tangled Java web applications and rebuilt them as a clean web API that could be used both internally and by outside partners.
    • Introduced the company's first automated testing and continuous integration as part of that rebuild.
    • Delivered new features requested by external clients on a steady two-week cycle, backed by automated tests.
    • Added a consistent way for applications and users to log in securely, with role-based permissions to control who could do what.
    • Built a notification system to keep partner organisations automatically up to date.
    JavaGroovyJavaScriptSpring BootJ2EEJSPTomcatJBossGitJenkins

    Software Consultant

    July 2007 - Dec 2009

    Artistry Solutions · Sheffield

    • Built Otaten.com, a website and online booking system for event equipment hire, hosted on Digital Ocean with automated deployment via CircleCI.
    • Built RooneyChase.com, a website and online booking system for a salon, hosted on Amazon AWS.
    • Delivered RODI end to end and installed it on site — a system for recording and transcribing video and audio.
    • Built Business Brain for ZUUK, a desktop application for secure, instantly editable documents with a full audit trail.
    .NETJ2EEEclipseJBossOracleMeteorAWSS3CloudfrontDigital Ocean

    Education

    The academic grounding behind it

    University of Sheffield

    PhD, Computer Science — Verification and Testing Group

    Thesis: A process-driven quality assessment model for electronic healthcare records

    University of Sheffield

    BSc, Computer Science and Mathematics

    Dissertation: XML-based application for archaeologists

    Toolkit

    The technology that gets used most often

    AWSDockerKubernetesTerraformJavaNode.jsPythonTypeScriptReactSpring BootNextJSCI/CDJenkinsGitLabPrometheusGrafanaArgoCD