Game Day: Stress-testing our response systems and processes
Improving the way we respond to larger, more complex incidents.
Rory Bain
Intermittent downtime from repeated crashes
This is a technical write-up of an incident on Friday 18th November 2022 where we experienced 13 minutes of downtime from intermittent crashes.
Lawrence Jones
Making code-generation in Go more powerful with generics
Go 1.18 added generics to the language a few months ago. Here’s how we’ve combined generics with code generation to make our code safer and easier to read and write.
Isaac Seymour
Building a great developer experience at a startup
We’ve invested in our developer experience to help our team ship great a product at pace.
Lisa Karlin Curtis
Building Workflows, Part 1 — Core concepts and the Workflow Builder
Part one of a deep-dive into building our workflow engine, covering core workflow concepts and how they are used to power the Workflow Builder.
Lawrence Jones
Building Workflows, Part 2 – the executor and evaluation
Part two of the series lookin at the workflow executor, and concluding with an evaluation of the project in terms of developer time, extensibility, and quality of outcome.
Lawrence Jones
Updating our data stack
How we’ve updated our data stack since it was first built in January.
Jack Colsey
Making Go errors play nice with Sentry
Configuring Go error reporting to work effectively with Sentry can be challenging. In this post, we share how we improved our setup by deduplicating stacktraces for clearer, more efficient error handling.
Lawrence Jones
A modern data stack for startups
Making data accessible to everyone in a company is key to unlocking its full potential. We've built a modern data stack using powerful, user-friendly tools that democratize data access. In this post, we'll break down the tools we use, how we've configured them, and the reasons behind our choices—ensuring seamless data flow and empowering every team to make data-driven decisions.
Lawrence Jones
Stay in the loop: subscribe to our RSS feed.