Gravatar picture of Lawrence

Lawrence Jones

  • About

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

Debugging the Postgres query planner

February 17, 2019

Diving into the Postgres query planner to understand its decisions- and occasionally- its mistakes. Explore a query plan that went wrong, discovering the statistics that informed the bad decision.

Continue reading
Prev Next
Follow @lawrjones