Articles

Learn from our experience developing the Deliveroo product.

Where are they now?

How Deliveroo does Hack days and then takes projects to production

Read more…


Testing Go services using interfaces

Time to share some strategies for creating testable Go services using interfaces and generated mocks.

Read more…


Shipping Quickly with a Large Team

We will walk through some proven techniques that we used to ship greenfield software quickly with a large team.

Read more…


Go down the rabbit hole

Debugging a proxy that functions perfectly over the public internet, but fails when inside our Amazon VPC. Or how a friendly man in the middle sent me down a rabbit hole.

Read more…


Moving from Ruby to Rust

How we migrated our Tier 1 service from ruby to rust and didn’t break production.

Read more…


Improving Stream Data Quality With Protobuf Schema Validation

The requirements for fast and reliable data pipelines are growing quickly at Deliveroo as the business continues to grow and innovate. We have delivered an event streaming platform which gives strong guarantees on data quality, using Apache Kafka® and Protocol Buffers.

Read more…


How to debug memory usage of a JVM-based application

What do you do when your JVM-based application gets OOM killed or exhibits wild memory usage pattern? In this blog post, I will explore some tools and concepts we can use to start debugging this problem.

Read more…


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…

Page 5 of 9