Auto Trader Engineering Blog

  • The Case For CSS-in-JS

    CSS-in-JS is the practice of utilising the power of JavaScript to dynamically generate and better organise your application’s CSS. The concept has gained traction over the years due to the popularity of UI frameworks / libraries such as React, Angular and Vue. This post attempts to convince you that CSS-in-JS is an approach worth investigating in the struggle to keep your codebase’s CSS in check.

    Read more…

  • View from across the data lake: Developing the mileage indicator using our self-service Data Platform

    The mileage indicator is a new feature on our product page which shows how the mileage of an advertised vehicle compares to the average mileage of similar vehicles that we’ve seen on Auto Trader. It uses machine learning (ML) to predict what the mileage of a vehicle should be given its age. The ML model is trained on data from the millions of recently seen vehicles that we record in our S3-backed data lake.

    I’d like to share the story of how the mileage indicator was built, from prototype to production, and finally to fully automated retraining and continuous deployment of the model. It is a microcosm of how we work at Auto Trader: centring our business around our data and using its insights to drive product design.

    Read more…

  • Building a more accessible web form

    The contact forms on our website are a critical way for consumers to make contact with our advertisers. We have quite a few of them, from general “contact us” forms to enquiry forms about a specific car. In this article, we will focus on the used car contact form. This form has a huge amount of interaction. It allows users of the website to send a message to the seller of the vehicle they are looking at, which is a critical part of the process. Unfortunately, from an accessibility point of view, it wasn’t working as well as it could for everyone. We set ourselves a goal to create the best, most accessible form we could.

    Read more…

  • Migrating to Kotlin—what to look out for

    Since Google announced the support for Kotlin as a first-class language at I/O in 2017, here at Auto Trader we’ve been gradually moving our Android app codebase over to Kotlin from Java. There are some tools to help developers achieve this (such as the automatic Java to Kotlin conversion tool), but there are a number of pitfalls to be aware of when it comes to the converter and the interoperability between the languages. In this post we share some insight from our experience.

    Read more…

  • A Road Trip through Data Delivery

    Thinking about the delivery of digital products, we typically picture customer-facing applications with a shiny user interface. Apps built by teams made up of product owners, designers, developers, testers, etc. But what about data and the engineering teams who provide the Data Platform and trusted metrics that enrich the customer-facing applications? The purpose of this blog is to share my experiences as a Delivery Lead working with data teams and why they require delivery focus.

    Read more…

  • Using Machine Learning to estimate how attractive adverts are to car buyers

    Here at Auto Trader we are always striving to improve the experience for both our buyers and sellers. In this blog we describe how we have used machine learning to estimate how attractive different adverts are to car buyers, in order to improve how we select which adverts to display in our search results. We elaborate on how we followed the Discovery -> Production process discussed previously to deliver the project, and the lessons we learnt along the way!

    Read more…

  • Running Experiments At Auto Trader

    For a number of years, we A/B tested new www.autotrader.co.uk features on a separate production environment. This allowed us to validate that new features had the desired effect, and didn’t negatively impact any of our key indicators with a reduced slice of our users. But, it required three deployments of our largest web application and was slow and clunky to set up. We have since introduced a new A/B test platform which allows us to be more agile and respond to change more quickly. We use the data collated from these tests to drive our next generation features for the site. Read on to find out how we used to test features and why we made this change.

    Read more…

  • How we secured our payment pages using a Content Security Policy

    In the Private & Home Trader Advertising squad we take payments for advertisements through our in-journey payment pages. Previously our payments were handled by a re-direct to a third party payment provider. When we decided to bring the payment pages into our journey, using Stripe elements (Stripe components embedded within our pages), it was vital that we secured our payment pages to eliminate any risk from malicious scripts or injection attacks. Here is how we did it.

    Read more…

  • How we use Architectural Decision Records (ADRs) on Data Engineering

    When I joined our data engineers over a year ago they had already adopted Architectural Decision Records (ADRs) to document architectural decisions made whilst building Auto Trader’s Data Platform. ADRs are listed in ThoughtWorks’ Technology Radar as a technique to adopt; our data engineers were the first team I’ve worked on to use them. They have allowed us to capture the context and consequences of the decisions we make; in a way that provides transparency and allows the whole team, and wider organisation, to contribute.

    Read more…

  • Cultural Learnings of Data Academy for Make Benefit Glorious Company of Auto Trader: or how we're promoting data literacy.

    At Auto Trader, we are attempting to democratise our data.

    We put together a team of data engineers, signed up to AWS, built a Data Platform, replaced all the components at least once because they weren’t up to scratch and, having done all that, finally realised we needed some people to use it.

    Luckily, as we were progressing, we engaged with our potential users, who provided plenty of interesting problems for us to work on. Unfortunately, we will never have enough time to generate the code to answer all of the questions those developers, analysts, scientists, business and sales folk have, so we’ll need them to self-serve.

    Read more…

  • How buyers are affected by an AI-driven product: Price Indicator

    Artificial intelligence (AI), is the ability of machines to learn from data. Often, this data is derived from human interactions. In this blog, we will explore how Auto Trader has used AI and Machine Learning (ML) to directly influence the buyer’s and seller’s experience.

    Read more…

  • Keeping the engine running efficiently event—March 7th

    Building on our previous Open Evening of tech talks, we want to showcase what is keeping the Auto Trader engine running efficiently. Our speakers come from various operational disciplines and are all keen to give us an insight into what they are working on.

    Read more…

  • All The Small Things

    Operations Engineers at Auto Trader play a critical role responding to service impacting issues and quickly restoring service. Our web applications run on Linux and Windows servers and are hosted on VMware, private and public clouds. We are responsible for monitoring these applications and responding to system generated alerts and incidents whilst performing routine trend analysis. In previous years the Operations Engineer discipline followed a daily task timetable which included lots of manual jobs. This is very inefficient and can be impacted by human error. Over the past year, the Operations Engineers have been learning about various programming languages and leveraging the benefits of third party APIs to help with reducing the amount of repetitive, tedious tasks. This has been with a goal of making our processes more efficient, which has freed up time to allow us to carry out more proactive work and increase our knowledge of new technologies.

    Read more…

  • Data Universe event videos

    It’s been a few weeks now since our last public tech talks event—a big thank you to all who came. Thanks also for all the feedback we received on the evening. We plan to use this to help shape our next event. For anyone who missed the event, please find the videos of all the talks below. Watch this space for details of our next event in the new year.

    Read more…

  • Lessons from the data lake, part 1: Architectural decisions

    It’s eighteen months since the inception of the Auto Trader Data Platform, a cloud-based storage lake and computing solution designed to unlock the power of Auto Trader’s huge and growing data set of vehicle transactions in the UK. It’s time to ask, what have we learnt, what have we changed, and did we deliver what we intended?

    Read more…

  • Delve into our data universe event—November 21st

    Building on our previous Open Evening of tech talks, we want to delve further into our data universe. What good is having all this data if our people can’t easily access and glean insight from it? Our speakers come from the disciplines of Data Analysis, Data Science and Data Engineering. What brings us all together is our Data Platform. Find out about the rewards and challenges of delivering on Auto Trader’s self-serve data mission.

    Read more…

  • Projection Search: Review of Persistence Technologies

    Having previously established what we mean by a projection search, it’s time to have a think about how we might build it. Let’s start by reviewing the current landscape of Java persistence technologies, comparing and contrasting these, with an eye on suitability for our search. We’re not going to cover all of these, but we are going to cover a representative sample.

    Read more…

  • Greater Manchester College Hack 2018

    The Greater Manchester College Hack is open to anyone at college in the area who wishes to develop their digital skills by participating in challenges set by local tech companies. Auto Trader sponsored the Hack in June this year by providing a challenge, prizes and mentors. This is our experience.

    Read more…

  • How we used Databricks notebooks, MLeap and Kubernetes to productionize Spark ML faster

    Machine learning (ML) models are nothing new to us. We’ve used them to power products such as our used car valuations and Price Indicators. The processes involved in training and serving these models are complex, involving code written by both data scientists and developers in a variety of languages including Python, Java and R. Serving predictions from these models in real time typically involves a custom application to extract the coefficients from the saved model, and apply them to an input request.

    Read more…

  • Projection Search: Introduction

    What do we mean by Projection Search? Almost all web applications need to provide their user with a search, providing a summarised view of their data. An email inbox is a good example of this. Within AutoTrader, we need the ability to list a user’s vehicles and adverts.

    Usually, this type of search returns a matching list of resource summaries, each summary being a subset of the actual resource, with some mechanism - such as a link - for finding the resource.

    Our recurring design headache is to decide which fields are included in the summary object.

    Read more…