Gravatar picture of Lawrence

Lawrence Jones

  • About

Building workflows: technical deep-dive and evaluation

September 14, 2022

Two part series about how we built incident.io workflows.

Part one explains core concepts used across the feature, and look at how code structure makes development easy. Followed by a deep-dive into the Workflow Builder (the configuration UI) showing how the concepts are exposed in APIs, and used to power the frontend.

Part two describes the workflow executor, showing how it listens for workflow triggers and if the conditions match, executes them. Finally, we reflect on whether we succeeded in our efforts to "slow down, to speed up!" in an evaluation of the project.

Continue reading

Want to found a start-up? Work at one first!

August 30, 2022

Research shows start-ups with experienced founders are more likely to succeed, and build more valuable companies too. But if you want to found a company, how do you get that experience?

My experience says the fast-track is joining an existing start-up and riding that wave, taking the opportunities that come with growth. This post explains what you can expect to learn, and why it's so valuable if you ever want to start your own thing.

Continue reading

Adding latency: one step, two step, oops

August 20, 2022

When it comes to complex systems, you can only go so far with synthetic experiments before you need to try something for real, and test in production.

There's no substitute for it, and you're likely making the wrong decision if you avoid it. But I can say from experience it's not without risks, and this post shares an example of where we got as much as possible from that prework and testing, even if it was a bit of a bumpy ride.

Continue reading

Growing into Platform Engineering

June 11, 2022

This talk shares my experience leading an SRE team, scaling from three people running all of the company’s infrastructure to a product-centric Platform Engineering team building tools for 200 other engineers.

I’ll explain the challenges we faced at each stage – problems that are common across engineering orgs – and the pragmatic steps we took to solve them, helping us get value before going all-in on an Internal Developer Platform.

Continue reading

My most impactful code

March 19, 2022

Asked for my most impactful code contribution, I discuss a small change that had short and long-lasting impact, far beyond what I originally intended.

Continue reading

Hacking sum types with Go generics

March 13, 2022

Go doesn't have sum types, but generics get us one step closer to a useful polyfill. If you've ever wanted exhaustive case statements, this post is for you.

Continue reading

Fixing flaky dbt tests with a sync cutoff

February 9, 2022

Using a sync cutoff when building our dbt models helped fix our flaky tests, making our CI much more reliable and exposing latent bugs.

Continue reading

A modern data stack for startups

January 25, 2022

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.

Continue reading

API development with type-safety across the entire stack

January 22, 2022

Tie together backend and frontend using type-safe API clients, allowing the TypeScript and Go compilers to prevent typos and developer errors.

Continue reading

What developers find surprising about Postgres transactions

November 29, 2021

When in a Postgres transaction, the data you read can change underneath you. Did you realise this? Many don't, for good reasons.

Continue reading
← Older posts Newer posts →