Over the past 18 months, Cazoo has gone from being a fledgling ecommerce startup with an ambition to transform the way people buy 2nd hand cars, to today being a multinational automotive retailer, listed on the New York Stock Exchange, valued at $8bn.
So how did they do it? Bob Gregory, Chief Architect at Cazoo sat down with Steve Lydford, Regional Director at Codurance and Matt Blecher, Principal Craftsperson at Codurance to discuss how Cazoo became the UK’s fastest ever unicorn. Delving into the technical, organisational and architectural decisions that were made when building the Cazoo platform, the rationale behind them, and some of the outcomes that have sustained and accelerated the business as it grows at unparalleled scale.
The business is the latest scaleup created by Entrepreneur of the Year Alex Chesterman, founder of previous success stories Zoopla and LoveFilm. Alex had ambitions from the start to disrupt traditional low-trust 2nd hand car sales and make the buying process as easy and enjoyable as any other online ecommerce purchase.
Cazoo has now sold more than 40,000 vehicles, they not only offer used car sales but also buy customers cars for resale, offer finance and are expanding into the EU. The business is complex covering ecommerce, logistics and last mile delivery, vehicle refurbishment and preparation for sale, finance solutions and backend operations.
To support this massive growth, Cazoo’s headcount has also significantly increased to 3000 staff with technology now at 300+ people working across almost 50 teams (this is expected to double to 600 by 2022). Bob Gregory’s remit is defining and ensuring successful implementation of the architecture, practices and technology decisions that guide the ongoing and sustainable growth of the business.
Cazoo opted for a Serverless architecture, and rather than asking why build with Serverless Bob asks “why not have serverless as default?” It is too much effort to build from scratch; if the engineering team is to maintain velocity with the business, it would be far more effective for Cazoo engineers to invest in building and maintaining the proprietary platform rather than provisioning machines (engineers like building things in Serverless as it's quite straightforward).
AWS allows engineers to fix problems quickly, it's safe to experiment, it's cheap and it scales. With out of the box Serverless, there is no need to patch so it reduces dependency on a large Ops team.
“ We are better than Amazon at selling cars so that is where we should invest our time”
How do people buy into Cazoo’s technology vision?
The key to this is simplicity; simple guidelines are provided to the engineering teams but outside of these, there is a lot of autonomy to empower engineers and allow them the freedom to experiment. Some of Cazoo’s guiding principles include:
- Encourage best practices - Pair Programming, XP, TDD, DevOps
- Deploy multiple times per day, plan work using practices like Event Storming, Collaborate
- If you want to build something new, use Typescript, Deploy to AWS Lambdas
By giving autonomy to teams, a shared consensus is created and people have the space to figure things out with the guard rails to ensure what they are building is coherent with everything else.
Hiring and retaining talent
Cazoo hires, supports and retains engineering talent. It’s easy to join the organisation; as long as you know an object-oriented language, you will pick up the basic principles. It has also helped with hiring by having 1 language on the back and frontend.
It is also vital to invest in skills. Cazoo is introducing a bootcamp where new joiners start on a specific date in a group and attend a week-long bootcamp covering the technologies and practices required for the job. As the business is growing so quickly, the bootcamp also allows new joiners to make friends and feel more settled.
Speed is a constant, which can make it harder to maintain quality. This is countered by the fact that the senior leadership team at Cazoo understands the value of engineering best practices like XP, TDD, pair programming, continuous deployment and the like so these values are baked into the culture across the organization.
The organization also utilises observability when building prototypes and then ship in small increments on a daily basis. They use observability to ask questions about the system in production and to provide data that informs how the business is operating and future decisions.
Cazoo is a complex multifaceted business with many moving parts. Therefore feedback loops are vital. Buying a used car is not a typical ecommerce journey as the product being purchased is unique (there is only 1 of the specific vehicle being advertised available). The order cycle is very complex so feedback loops are critical whenever there is a change during the buying process (eg. if a buyers address changes, this can have an impact on the finance agreement, the new proof of address is then required and so on).
Cazoo has acquired many other businesses (8 so far with more likely to be announced) that come with legacy software and processes - there is a challenge with integrating all of this legacy tech into the Cazoo platform; it is therefore, quicker and less time consuming to simply end the life of the legacy tech and migrate it into Cazoo’s AWS platform.
RFC Process and Architecture 360
Cazoo’s Request for Comments (RFC) process has been running for the past 18 months. Used in Bob’s previous roles at Huddle and Made, this approach allows engineers to get and receive feedback with new ideas.
All RFC have to be written down and must include what you want to achieve, what are the intended consequences, what help you will need to make it happen and demonstrate your thought process.
They are useful for new starters in the team as they can look through RFCs and see what others are thinking about. It has been even more useful since the Covid 19 pandemic forced teams to work remotely as it's a great way to get ideas out there and gain early feedback.
RFCs by their nature force you into slow thinking, allowing time to develop thoughts and submit them to paper.
However, Cazoo has found that RFCs are not good for making decisions, so part of the RFC is to define the decision making process - if you are personally willing to accept the consequences of the change you are suggesting, you can make the change. Having documented RFCs allows others to look through the history and see how the decision was made.
What are the main challenges?
One of the major challenges that Bob and his teams have encountered as a very fast growing scaleup is that everyone is new. Without close attention, this can cause dysfunction or churn. It has helped highlight the importance of organisational design and why great people management is critical to growing people's skills and retaining talent. As Bob says:
“You need strong technology and people leadership.”
As a company that has autonomous teams building different things, it can cause silos. To ensure they can work effectively across the organization, Bob is looking to reduce the number of teams and create more collaboration across teams.
However, he also recognised that Cazoo has done a lot right and that any dysfunctions felt are a consequence of this level of unprecedented growth. As Bob says:
“We built this thing, we’re selling cars, we’re trading on the stock market so we did a lot of things right!”
What paid off?
The group discussed what the key success factors have been. Bob outlined this included insisting everyone use Typescript for consistency and ease, Serverless has been great, event driven architecture and AWS Eventbridge has worked out well to enable autonomy and loose coupling plus to help scale,
It also helps to have best practices in place to build better products and to ship faster. TDD has helped Cazoo scale and maintain quality when building at speed.
Having principal engineers to implement Bob’s vision and work directly with the team has ensured systems are well designed and best practices are adopted.
What is on the horizon?
As the business scales, Bob will be looking at cost more carefully and looking into how to assign their AWS accounts to individual workloads eg. logistics, finance etc. This will help manage costs more efficiently.
Cazoo is also launching into the the EU this year and they are now rolling out commercial vehicle sales following the acquisition of Vans365 which will no doubt drive more requirements, features and challenges for the engineering teams to solve.
As the business continues to grow and evolve, it feels Cazoo’s tech teams are in great shape to take advantage of anything that comes along now or in the future.