Logical Replication Guardrails


I’ve been working with logical replication in PostgreSQL recently, and I wanted to share a few thoughts on how to implement some guardrails to make things easier on operators.

A Love Letter to Giant Robots


Ah, giant robots. I grew up thinking they are the coolest things ever, and I still do. My first exposure to them was probably through 1994’s BattleTech animated series, where Adam Steiner piloted an AXM-2N Axman, in its frankly ridiculous neon green and purple paint job. And from there, well. I was hooked. Lets explore a little about some history, some of my favourite giant robot media, and even a small work-related thing.



The Shunn manuscript format is a set of guidelines for writers to follow when submitting manuscripts to publishers. It was created by author William Shunn and is widely used in the publishing industry. Here is a brief demonstration of a tool I wrote to facilitate generating manuscripts in this format.

Movement for Engineers


Until we get get to be chromed-up cyborgs, we’re stuck with our meat bodies, and like many things, they need regular maintenance. Here is a brief introduction to keeping your body moving as someone who spends a lot of time sitting down.

So, You Want To Build A DBaaS Part 2: Technical Bits


In my first post in this pseudo-series, we covered more of the theory and organisational practices around building and operating a database-as-a-service platform. In this post, I’ll cover some of the more technical aspects of this that I think are worth considering, drawn from my own experience.

So, You Want To Build A DBaaS


So you’ve made the decision to build a Database-as-a-Service product (or something similar). As a result, you are making state and coordination your problem. Here are some things I’ve learned to keep in mind as you embark on this project, in no particular order (other than the first). This is a long one, so a table of contents is provided to skip around to the points that interest you.

Corporate Legibility for Software Engineers


Corporate legibility is the art of making tasks, and their outcomes, easier to understand for those not directly involved. I’ll help you understand why this is an important thing to be aware of and how to use it to help your career.

Control Loops and Rice Cookers


Rice cookers are fascinating machines. I’ve owned one for years, as rice is a significant part of my regular diet, and it completely removes the stress of preparing rice. They also operate on a simple principle that can help us operate cloud infrastructure – the control loop.

Tools for a Culture of Writing


One of the hardest things we do, as humans, is try and communicate what is going on in our minds to each other. With significant room for misunderstanding, biases, assumptions and cultural differences, communicating with other engineers (or to stakeholders) appears fraught. However, there are tools we can leverage to make ourselves understood, and to smooth the passage of information to makes sure it gets to the right people at the right time.

Point and Call


It’s 2AM. You’re paged to respond to a failing set of components that you are the Subject Matter Expert (SME) for. Sleepy, you load up the playbook for when the SplineReticulatorBlocked alert has gone off, and start executing. The Incident Commander (IC) is vaguely aware of what you are doing, and checks in now and then.

Unreasonably Effective Patterns


Much of my current job is maintaining and enhancing control planes for Heroku’s managed data services. This post explores three patterns used to reduce operational burden and increase system safety and resiliency: state machines (and associated state-transition tables), transducers and re-entrant and idempotent operations.

Everything I Know About Operations, I Learned From NHS 111


Ever heard someone say “It’s only software/money/<trivial thing>, not life or death”, in the context of incidents at your company? Although mostly true, I want to talk about a time in my career when sometimes, just sometimes, it was the latter, and how it shaped my approach to operating and owning services.

Riding the Risk Railway


When building and operating a user-facing system, especially one that is open to the public, it is important to consider the riskiness of a user, which can also be characterised as trustworthiness. These will typically be negatively correlated, with low trust indicating high risk and vice versa, but this is not always the case.

Software Sprezzatura


Sprezzatura is “a certain nonchalance, so as to conceal all art and make whatever one does or says appear to be without effort and almost without any thought about it”, coined by Castiglione in 1528’s The Book of the Courtier.

Table Stakes


This is a short post on what I see are table stakes for any new user-facing service, security-wise. Mostly focused on user-focused, rather than intra-service, considerations.

Thoughts on User Safety: 2


Following up from last time, let’s explore the internal and insider fronts when moving beyond security towards safety for our users.

Thoughts on User Safety


We need to move beyond mere security and towards safety for our customers and our users. This is how we can do that.

Service Objects in Rails


Let’s kick off 2016 with a whistle-stop tour of one of my favourite OO approaches, Service Objects, in the context of Rails.