Monte Carlo Power Analysis

Take advantage of computing power and empirical data to use Monte Carlo simulation to perform experiment power analysis.

Read more…


How to use Charles Proxy to rewrite HTTPS traffic for web applications

Charles Proxy is an application that sits between your computer and the Internet to record HTTP(S) traffic. Most importantly for me, it has the ability to also modify a server’s HTTP response. I’ve been using Charles over the past few weeks to rewrite responses from our APIs and I’ve been slowly learning what Charles is capable of but also what it isn’t. Needless to say, there’s still a lot to learn, but the defining moment for me was when I was able to recreate a production bug, by replaying the JSON payloads to my local development server causing the same error to be raised.

Read more…


How to Experiment Rapidly Without Losing Rigour

As data scientists at Deliveroo we evaluate our work via robust experimentation, and we take a frequentist hypothesis testing approach. The standard method places a lot of importance on deciding upfront how large an impact we believe any experiment might have. If the estimated impact is very different to the actual impact, we might waste a lot of time running an experiment where we could have obtained a result sooner. This means that we can’t iterate and innovate as quickly as we would like. Our preferred solution to this problem is sequential experiment designs.

Read more…


Testing with Third Party Services in Go

Taking advantage of Golang’s duck typed interfaces and net/http/httptest to test third party dependencies in web applications.

Read more…


Building a Payments Lambda with Terraform

While integrating with a new payment provider, we needed to sync merchant ids via SFTP. We built an AWS Lambda function with Terraform to do this. I’ll walk through our Terraform configuration and the hurdles we overcame around accessing the S3 bucket and retrieving sensitive credentials.

Read more…


Optimising a simple ActiveRecord query

Last week a seemingly simple ActiveRecord query was causing problems on production, by being incredibly slow. Together with my colleague Marty I debugged the issue and as a result we decreased the query time from about 80 seconds to about 100 milliseconds.

Read more…


How to migrate your API and still be friends with your fellow client developers

One of the best things about working in Deliveroo Engineering is that we have the opportunity to work on a great ever-changing product, which means we are constantly evolving, improving and facing new challenges. One of the main problems we have right now, which is a great problem to have, is the fact that we have grown so much that our monolithic application can’t hold everything in just one place anymore.

Read more…


What does an Engineering Manager do at Deliveroo?

Do many software engineers know what an Engineering Manager (EM) actually does? As I moved through several companies through my career I saw this role in so many different colors and forms. Every time I was wondering - what is this job actually? I am not going to come with an exhaustive definition as I doubt it exists… However I’ve recently moved from Software Engineering role to an Engineering Manager, so hopefully my fresh memories and this post will help anyone who’s interested to find out more about what it’s like to be an EM at Deliveroo.

Read more…


Application Deployment at Deliveroo

Our services are rapidly growing in number and we need a scalable way of managing the mayhem. Over the course of a year, our site was served as a single monolith and is now composed of over 50 services.

Read more…

Page 6 of 9