We’re building the best way for your whole organisation to respond, review and learn from incidents. This is where we talk about how and why.
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 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 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
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
Updating our data stack
How we’ve updated our data stack since it was first built in January.
Jack Cook
Making Go errors play nice with Sentry
Getting Go errors to work well with Sentry is hard. This post explains how we got them playing nicely by deduping stacktraces.
Lawrence Jones
A modern data stack for startups
Data should be a commodity, and accessible to everyone in a company. We've picked a data stack for tools that make this possible- here's what we use, how it's configured, and why we picked it.
Lawrence Jones
Using context.Context to mock API clients
We've found a pattern to mock external client libraries while keeping code simple, reducing the number of injection spots and ensuring all the code down a callstack uses the same mock client.
Lawrence Jones
Stay in the loop: subscribe to our RSS feed.