Cleo Thumbnail
Deliveroo

Building an onboarding platform for riders and retrieving delivery time estimates 20x faster.

I started at Deliveroo during the early stages of their growth when the tech team was fewer than 50 people, by the time I left this number was closer to 400. I worked in three different offices (four if you include a rented flat in the early days) spanning a period of about four years.

During this time I was fortunate enough to work on a number of projects. When I worked in the rider business area early projects included extracting some of the first services out of the monolithic application and leading development of an onboarding platform.

Later I chose to move to the Logistics Algorithms team as I was interested in the workings of the core parts of the business, assigning orders to riders and working closely with the data scientists. My main contribution to this team was building a service to return delivery time estimates.

When you search for restaurants on Deliveroo each one shows you an estimate of how long it will take for that order to reach you. Without going into the specifics of how this works and giving away any "secret sauce" I'll just say that the new service improved the response time of this process by an order of magnitude, from 100s of milliseconds to 10s. This meant that we could show these estimates to the user much more quickly and offered a significant improvement in the user experience.

Broadly speaking this was achieved by having a lightweight web service wrapping a bunch of the real-time data stored in memory, think the number of orders for a particular restaurant for example. We'd use this to compute a bunch of things concurrently and pass this in a batch to a predictive model all within about 20s.

Deliveroo Thumbnail