AndyHunt.me

CV and personal site of Andy Hunt

Jump to

  1. Employment history
  2. Other professional positions
  3. Personal interest and development
  4. Education
  5. Skills

Employment history

Tech Lead, Government Digital Service, Remote [April 2022 - Present]

In April 2022 I took on the role of Technical Lead for GOV.UK PaaS.

Alongside my continued support of other engineers, I worked with many other people in writing an executive summary and supporting annexes, to be supplied to GDS' senior leadership so that they can make a decision on the future of the platform. In this, my role was to provide technical grounding and my own insights as a long-serving team member. For example:

  • I worked with the Product Owner to help them understand what work tenants would need to do to migrate away, as well as to discuss how the platform may fit in to the future strategy of the Government Digital Service.
  • I worked with economists in developing an economic model of the benefits brought by the platform.
  • I worked with Delivery Managers to formulate a rough timeline in the event that the CEO chose to retire the platform.
  • I worked with other engineers to evaluate the possibility of migrating the technology underlying the platform.

In June 2022, alongside the Product Owner, I presented and defended the team's research and executive summary to GDS' senior leadership.

Shortly after the decision was made to decomission the platform, my work changed and I joined the CloudFoundry Foundation as the chairperson of the Technical Oversight Commitee. I became a lot more involved in the management of GOV.UK PaaS and the team than the day-to-day engineering. The following paragraphs describe a sample of the types activities I undertook.

In the immediate aftermath of the decision, I worked very closely with the Product Owner, Delivery Managers, and Technical Architect to begin to form a real plan for decomissioning the platform. Among a lot of activities, I variously supported, wrote, and delivered external messaging; engaged in research into what the decision meant for our tenants and what they were doing next etc (an ongoing activity to mitigate the risk of tenants doing nothing); and presented workshops on CloudFoundry for tenants to assess the feasibility of running it themselves.

To enable civil servant team members to leave the team for other opportunities should they wish, I worked to recruit experienced contractors onto the team to provide backfill for the exiting members. Once the contractors joined the team, I worked to instill in them the culture of the team, and make sure they felt confident and autonomous enough to make decisions without my input.

As engineers left the team, and before contractors could be given access to production, the out of hours support rota headcount dropped to 4. I worked with senior managers and other leaders on my team, in support of the engineers left on the rota, to try to improve their working conditions, and assess whether we could suspend out of hours support whilst it was unsustainable. We also assessed what could be done to make it more sustainable.

Because the team's engineering capacity was reduced, I made tough decisions about where the engineering effort should be focussed. These decisions were made more difficult by operating in an ambiguous environment: the decomissioning date of the platform itself; what support our tenants would need in aid of their migration; and when tenants would need any support, to surface a few points.

When questions over a potential extension to the decomissioning timeline were raised, I contributed to writing another executive summary about what options were available to GDS' senior leadership. I followed that up with estimates of the costs of running the platform in a number of the scenarios outlined in the summary.

Throughout all of this, I was regularly supporting the other engineers by providing guidance, technical steers, context, and decision-making. I also continued to take my shifts on first-line support for the product.

Senior Site Reliability Engineer, Government Digital Service, Remote [September 2021 - April 2022]

In September 2021, I was promoted to Senior Site Reliability Engineer on the GOV.UK PaaS team at Government Digital Service. The technical work I did became 100% paired, with a focus on teaching and the growth of others. I enjoyed it immensely.

I continued to work with those in leadership roles to assess the landscape surrounding CloudFoundry and the position of the GOV.UK PaaS offering. I joined many user research sessions with numerous government departments to understand how our potential actions would affect them, and subsequently provided my insights from supporting those departments over the last 2.5 years during analysis.

Site Reliability Engineer, Government Digital Service, London & Remote [January 2019 - September 2021]

In January 2019, I joined Government Digital Service as a Site Reliability Engineer on the GOV.UK PaaS team.

The GOV.UK PaaS team builds, deploys, and runs a CloudFoundry-based application hosting platform for public sector and arms-length government bodies.

We work in the open and I've been incredibly proud of the work I've done, and the things the team have achieved.

In this role, I have been responsible for working with others to build, deploy, monitor and operate components of multiple CloudFoundry deployments across multiple AWS regions. This has involved understanding how to do those things for upstream components (i.e. those from the CloudFoundry Foundation), as well as the components that we build and maintain ourselves. I have used Terraform, Bosh, and Concourse to deploy infrastructure, and Prometheus and Grafana to monitor it.

I have also been responsible for providing direct technical support to tenants in different parts of government, and supporting the platform on in- and out-of-hours rotas. Supporting tenants directly is something I have particularly enjoyed, because it gives me regular insight into the impact my work has, and into the needs we’ve yet to meet.

On some themes of work, such as secrets management, I have taken a leadership role. This has involved working with User Researchers to plan and deliver research sessions, understanding their outcomes, and using them to decide on what work will need to be done to meet the discovered needs. I have prioritised the tasks involved in the work against one another, as well as assisting Product Owners in understanding how the work fits into the bigger strategic picture and how it can be prioritised against other work. Technically, it has involved understanding how any technology choices made would affect the team and the way it develops the product, the risks associated with the choice, and how it would be used by tenants.

In the team, I spent a lot of time helping to onboard new engineers, and bring them up to speed. Whenever the opportunity to pair with people (of any discipline) presented itself, I took it. I often used pairing for knowledge sharing; e.g. working with new team members on a problem to give them context on the systems as we go, or to understand how my work plays into another job role. Other times I have paired with others to solve a problem one of us has been having.

I also put a lot of self-directed effort in to looking at how we could improve our processes and the health of the platform, which bore fruit within the team and directly contributed to the success the team has had.

In late 2020, I began looking more seriously at the ecosystem in which CloudFoundry exists, and I developed a sense that there was a risk of the technology becoming unsupported. I raised my concerns with Product Owners and Delivery Managers, and helped them to understand what risk that posed to the existence of GOV.UK PaaS. As a result, the team began a discovery process to find out what would come next for the platform.

Software Engineer, C Spencer Ltd, Hull [December 2017 - October 2018]

In late 2017 I was invited to rejoin the team at C Spencer Ltd on a part-time basis, concurrent with my studies. During this time, I was revamping and rebuilding legacy (13+ years old) system administrative functionality to meet the team's modern architectural patterns and UI standards.

During my time there, the business hit financial difficulties and was unable to offer me a full-time role once my degree was complete. At the time, I was in talks with management about transitioning to a devops-type role when I came on full-time.

Developer, Strawberry, Hull [September 2014 - September 2017]

In 2014, I was invited to re-join the team from BSC Solutions, who had been purchased by Strawberry and brought in-house.

Strawberry presented a totally different environment for me to work in. Having come from a series of in-house software development teams, I had to adjust to working with a mixed group of marketing, design and development people, as well as directly with clients. Here, I learned a lot about effective project management and client communications, as well as how to go about building and expanding an MVP, and managing client expectations.

In terms of software development, this role had a wide variety of jobs. These ranged from building simple brochure websites, to integrating POS systems with Shopify, to building bespoke software for businesses like Siemens and the Church of England.

Strawberry’s management recognised its development practices and tools were somewhat outdated; a major part of my role was to work with others to improve this. The changes implemented included process changes like more regular and thoughtful planning, as well as technical changes like continuous integration, unit testing, and automation. We enjoyed much success in these endeavours, and saw the team's throughput and quality rise as a result.

I learned most in the realm of operations and automation. I worked with Ansible and Vagrant to create automatically provisioning development environments for other team members, using the same configuration used in production and staging environments. I also introduced Terraform for managing cloud resources in AWS. This was done in an attempt to simplify, and make consistent, the understanding and maintenance of the cloud resources for the dozens of distinct projects the business had. I enjoyed my efforts in this space in particular, and came to decide I would like to pursue a change in career to focus on it.

Developer, C Spencer Ltd, Hull [November 2013 – September 2014]

I acclimated quickly to world of PHP development, after a stint in the world of .NET. Once ready, I joined the teams developing the company's core, bespoke business tool, working on components such as document control, reporting and email. Whilst working on these components, I gained valuable experience with legacy code, and techniques for maintaining it.

On top of handling legacy code, I worked with the team to bring modern techniques like dependency injection to the code base, This was ultimately achieved with a method that required zero changes to legacy code which didn’t use it. I also worked to repair the failing tests in the test suite and get the continuous integration environment running them as part of the build.

On an interpersonal level, I frequently paired with my colleagues on implementing new features, to good effect.

Developer, Legend Club Management, York [June 2013 – November 2013]

At Legend Club Management, I was part of a 7-person scrum team creating and maintaining high quality .NET and Javascript based (mobile) web applications for the management of commercial sports courses and sporting events. The system integrated with a variety of existing applications, such as front of house software and electronic barrier controls.

On these projects, I used test-driven development (in both C# and Javascript) to maintain consistently highly testable, high quality code. The code itself was based on ASP.NET MVC and Web API on the server-side, and the client-side employed KnockoutJS for UI control and client-side validation

I was involved in all aspects of development, but I took most interest in quality assurance from both a customer's standpoint (usability, performance) and from a code quality standpoint. In particular, the development of reusable Javascript components for common workflow tasks like searching and selecting.

Junior Developer, BSC Solutions, Cottingham [2011-2013, concurrent with studies]

Working as part of a 5-person team, I was involved in the design, development, implementation and maintenance of all components of a multi-tenant e-commerce platform. Whilst I worked on all aspects of the product, I took particular interest in the design and development of core database access, and data searching and filtering. A particularly successful experience was developing and launching a component for a third-party order fulfilment system which integrated the system with Ebay and Amazon.

During my time, other projects included developing and launching a set of SOAP web services. I also worked on the building and maintaining of new and existing websites for clients on behalf of a sister agency Strawberry, who I would later work for.

Personal interest and development

Throughout this period I have spent a good portion of my free time studying and developing software for my own interest. This has led to me gaining experience in a variety of areas. In recent years, I've made a conscious effort to find a better work/life balance, and make better use of learning and development time at work.

Between 2012 and 2015, each summer I volunteered at the nationwide Young Rewired State event, a hack week for under 18s. I loved going, and it's something I'm immensely proud to have been a part of. In 2014, I took over the centre lead responsibilities at the Newcastle centre, which I managed alongside work. In 2015, I ran a centre in Hull. Unfortunately, there hasn’t been a festival in the UK since then. If it returns to the UK, I will very likely get involved again,

In the last couple of years, I've taken up being bad at e-sports and painting miniatures.

Other professional positions

Chairperson, Technical Oversight Committee, CloudFoundry Foundation [June 2022 - July 2023]

In June 2022, I was elected to the Technical Oversight Committee of the CloudFoundry Foundation. I was subsequently elected to the position of chairperson.

Governing Board, CloudFoundry Foundation [June 2022 - July 2023]

As Chairperson of the Technical Oversight Commitee, I am also a member of the CloudFoundry Foundation governing board.

Education

BSc Hons Software Engineering, Durham University, 2010-2013, 2:1

MSc Computer Science (Distributed Systems and Security), Hull University, 2017-2018, 1st

Skills

Infrastructure

  • Infrastructure as code: Terraform, Ansible, CloudFormation, BOSH.
  • Cloud providers: AWS - every major service (VPC, EC2, S3, RDS, CloudFront etc etc)
  • CI/CD: TeamCity, Bamboo, GitHub Actions, Concourse
  • Experience of deploying and managing containerised workloads
  • Monitoring with Prometheus, alerting with Alert Manager, and visualising with Grafana
  • CloudFoundry operator and user
  • Currently studying for the Certified Kubernetes Administrator exam

Programming

  • Application development in Go, C#, PHP, Javascript, F#; can comprehend and debug most other languages
  • Scripting in Bash, Powershell, Ruby, PHP
  • Strong knowledge of software engineering and design practices

Systems administration

  • Building and deploying Linux and Windows VM images (in and out of cloud environments)
  • Building and deploying container images
  • Investigating and debugging Linux systems, in and out of incident situations.
  • Configuring and debugging networking in cloud environments
  • Usage, configuration, and deployment of TLS

Leadership and interpersonal

  • Nurturing psychological safety by sharing my own failures, making sure others know it's OK to fail and be wrong etc
  • Experience running blameless retrospectives
  • Patient, tailored approach to teaching/mentoring/coaching
  • Calm under pressure (e.g. during incidents)

References

References available on request