A while back, this implementation of a cross-platform sleep for GitHub Actions Runners caught my eye, and I wanted to see what it would take to re-implement sleep from the ground up, while trying to be as cross-platform as possible.
Since I was small, I’d lived my life through screens, one way or another. For the last quarter-century or so, I had been piloting the machine of flesh and sinew to keep my mind going, rarely engaging with the machine itself. This was a mistake.
A common pattern I’ve seen over the years have been folks in engineering leadership positions that are not super comfortable with extracting and interpreting data from stores, be it databases, CSV files in an object store, or even just a spreadsheet. We’re going to cover SQL & DuckDB, then some useful statistical tools: summary stats, distributions, confidence intervals and Bayesian…
I’ve been running databases-as-a-service for a long time, and there are always new things to keep abreast of - new technologies, different ways of solving problems, not to mention all the research coming out of universities. In 2025, consider spending a week with each of these database technologies.
It’s been over 14 years since the original 7 Languages in 7 Weeks was first published, giving a hands on tour of Ruby, Clojure, Haskell, Io, Scala, Erlang and Prolog. Ruby achieved critical mass, to some degree so did Scala, with the others being popular within their specific niches. This post shows 7 languages worth exploring in 2025.
I’ve been having a bunch of conversations with my team about our career ladder, and what it means to be “senior” in a software engineering context. It’s a little different in every company, but here is my view.
Anecdotally, one of the more maligned features of the Heroku platform are the 24-hour limits on compute units, known as “dynos” . This is actually a good thing, but very misunderstood.
There are two programming principles that I hold dear to my heart: the principle of least surprise and provide sensible defaults . I’ve recently been working within the GraphQL ecosystem, and the number of violations of both here has frustrated me. This will be a little bit ranty.
I’ve been managing a fully remote, fully distributed team, covering timezones from UTC-8 through UTC+10, for the last couple of years. Through that time, I’ve learned a lot on organising work, interpersonal relationships, and ultimately how to overcome a lack of promximity to my reports.
At $WORK , we have a case where we have implemented an event trigger to prevent customers from dropping an extension. As this extension is part of contrib and normally installed by users, we can’t prevent them from dropping it normally. However, event triggers can only be created by superusers, so a pg_dump of the database creates a dump that can’t be restored by a non-superuser. To…
I’ve been working on a particular problem - how to offer logical replication for a very large number of Postgres databases, where I don’t have the ability (or capacity) to liaise with the users of the databases one-to-one. In order to mitigate some of the limitations , I wanted to implement a flexible extension to help guard against two of the larger pitfalls - DDL and large objects.
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.
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,…
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.