Platform Engineering at Cazoo

Abu Shoaib
Cazoo Technology Blog
3 min readJul 4, 2022

--

At Cazoo, business capabilities and domains are grouped into “Worlds”. The Platform World’s mission is to equip other Worlds and their teams with a world class platform, which they can leverage to focus on building software that increases Cazoo’s competitive advantage.

Cazoo has undergone rapid growth since it started around 3 years ago, with 35 product teams operating today in multiple markets across Europe. The rapid proliferation in teams and services means that the Platform World needs to cater to a broad spectrum of requirements.

To create a world class platform, we focus on two outcomes:

  1. Reducing cognitive load and increasing developer productivity
  2. Accelerating delivery by reducing undifferentiated heavy lifting

Our strategy to achieve these is to provide our platform as a product, similar to Netflix’s Paved Road. This allows us to make our platform and its capabilities easily consumable and fit for purpose for internal customers.

In practical terms, this means providing self-service tooling for common use cases, making tools and APIs easily discoverable and well-documented, making fundamental capabilities available by default without teams needing to opt-in, and measuring metrics transparently to demonstrate progress against our outcomes.

The Platform World consists of four teams:

  • 2x Cloud Engineering teams: Focused on building and providing integrations for our core infrastructure in AWS and other SaaS platforms. They create the technology building blocks that other teams use to compose their services.
  • EDGE (Edge, DNS, and Gateway Engineering) team: Focused on ensuring requests are routed correctly and processed securely through our external perimeter — from Cloudflare (our CDN) to our API Gateways where individual teams’ services take over.
  • Developer Experience (DevX) team: Focused on providing tools and services that remove friction for teams in the SDLC and create a reliable path to production.

To give you a flavour of how this translates to the real-world, here some key initiatives that we have worked on recently:

Service Maturity

We are onboarding our product teams and their services into a new service maturity platform, which allows us to define a bespoke maturity matrix across non-functional requirements relevant to Cazoo, and scorecard individual services and teams across the matrix. This provides clear visibility and creates accountability for teams to improve their service maturity.

Retool

As part of improving operational processes in production and achieving SOx compliance, we have hosted and provided Retool as a service for teams to migrate their operational processes. This provides more granular access control and protection of sensitive production data.

Split.io

We have complex feature flagging requirements at Cazoo. To minimise fragmentation, we have provided a feature flagging library complemented by flag processing at the edge, giving teams a standardised interface for feature flagging across Cazoo, and reducing undifferentiated heavy lifting.

Opsgenie

Our on-call processes are managed via Opsgenie. We provide a set of packages for service and alert integration into Opsgenie, standardising what can easily become a fragmented process, and again reducing undifferentiated heavy lifting.

These initiatives are just a part of our broader strategy to streamline the software development life cycle at Cazoo and support improvements to operational deficiencies. Hopefully this was an insightful introduction to the Platform World at Cazoo — stay tuned for further blog posts that dive into the inner workings of some of our teams and their offerings!

--

--