Gravatar picture of Lawrence

Lawrence Jones

  • About

Moving on from GoCardless

August 1, 2021

Starting next week, I'll be joining the incident.io team after logging off for the last time at GoCardless. Mostly for myself, here's some reflections on the last five years.

Continue reading

On working too hard: finding balance, and lessons learned from others

July 4, 2021

Working hard is a great way to accelerate learning, but it can come at a cost. This post shares my experience and lessons taken from great role models I've found along the way.

Continue reading

Embed a Javascript website inside a binary with Go 1.16

February 16, 2021

The upcoming Golang embed directive can help distribute applications that depend on non-Go code assets. See how you can embed an entire Javascript website into your Go program, simplifying distribution to single binary.

Continue reading

Deploying software at GoCardless: our Getting-Started tutorial

January 12, 2021

Building a modern infrastructure stack is difficult, with a bewildering number of choices to be made. Some technologies complement each other, while others have very different philosophies: it’s easy to get lost.

To help those facing similar challenges, we’re open-sourcing our “Getting Started” tutorial, which is what we ask all GoCardless developers to follow during their onboarding.

Continue reading

How we compress Pub/Sub messages and more, saving a load of money

December 29, 2020

Compression is a trick that can be used to solve a load of problems. Outside of well known use cases, there are a variety of opportunities to improve efficiency or save money by leveraging compression.

This post covers one such opportunity, where a tiny change allowed us to save >$30k per year in infrastructure cost, along with a few other big-savers from judicious application of compression.

Continue reading

Connected data: Using BigQuery to analyse user behaviour in response to webhooks

November 8, 2020

Your company probably has a lot of data. When you expose all of these different sources under a tool that makes complex analysis as fast as thought, you'll create a load of opportunities to make data-driven decisions.

By sharing an example where 2hrs of analysis helped prioritse 2-4 weeks of engineering work, I'm going to try convincing you that the value of a connected dataset is far more than the sum of its parts.

Continue reading

An incident response starter-pack: how do you handle production outages?

October 27, 2020

Tips-and-tricks to better handle incidents, learned over years of dealing with production issues. Included are opinions on strategy, process, tools and how to handle the all-important human element.

Read this if you're new to incident response and want a starter-pack of advice, or to contrast your own perspective with another.

Continue reading

Why you need a service registry

September 28, 2020

As a team's infrastructure estate grows, it becomes increasingly beneficial to create a global registry of all people, services, and components. Once you do, you can integrate with tools like terraform, Chef, and Kubernetes to help provision your infrastructure according to a single authoritative source.

This post explains how GoCardless built their registry, and some of the uses we’ve put it to.

Continue reading

Avoid time-of-measurement bias with Prometheus

July 10, 2019

Most Prometheus metrics recording durations are subject to a time-of-measurement bias, causing misleading graphs that can derail investigations. See how an open-source Tracer can help solve this problem.

Continue reading

Building a PostgreSQL load tester

April 7, 2019

This post covers the implementation of pgreplay-go, a tool to realistically simulate captured Postgres traffic. I'll explain why existing tools didn't fit and explain some challenges in the implementation, focusing on what I learned personally from the process.

Continue reading
← Older posts Newer posts →