All Stories

Mod and Remainder are not the Same

Get ready, here comes some fringe pedantry that could very well be the difference in an interview, or the thing that saves you from hours of chasing a production bug!...

Transactional Data Operations in PostgreSQL Using Common Table Expressions

PostgreSQL has a ton of amazing features, often overlooked by developers who prefer to use abstractions to work with SQL and their database. This is a big topic and obviously...

Simple Monthly Reports in PostgreSQL Using generate_series

I have a reporting backend for my book/video business that has one chart which I stare at every day: the daily sales:

Setting Up a Fast, Comprehensive Search Routine With PostgreSQL

One of the joys of working with PostgreSQL is the ability to run full-text searches right out of the box. But how do you set this up? Better yet: when...

Working Smarter, Not Harder, Part 1

I’m sitting here at this very moment in our new, just-moved-in-and-insanely-messy apartment in Kaka ‘Ako, with 90 minutes to write this post, according to my calendar on Outlook. My youngest...

A Pure PostgreSQL Document Database API

One of the great things about PostgreSQL is its support for JSON document storage. I’ve written about it quite a few times, and here I am writing about it once...

The Logical Disaster of Null

I’m sure answers are jumping to mind, but hear me out, please. The use of Null in a purely logical landscape is problematic. It’s been called The Billion Dollar Mistake...

Calling Your Own Shots

In 2001 the company I worked for (and partially owned) went belly up with the rest of the internet consulting agencies out there. We had just enough work for myself...

Interview On .NET Rocks About A Curious Moon

At NDC London I had the chance to sit with Carl and Richard of .NET Rocks! and record a show about my latest book A Curious Moon.

The Modern Dev Team

The other day I was chatting with some friends in Slack, watching them discuss Kafka “stuff” and things that are good and bad about Kubernetes (which I think you’re supposed...