JSON in PostgreSQL

PostgreSQL’s JSONB type is fast, indexable, and incredibly flexible for semi-structured data. But it’s not a silver bullet, sometimes a traditional normalized table is still the better choice.Since I have PostgreSQL running on my laptop, I’ll show you real examples you can copy-paste and run yourself, complete with actual psql screenshots. When to use JSONB…

Read More

Frankenstein tables

The horror of bloated schemas and premature partitioningAlso known as monster tables, out-of-control tables, or God tables (the ones that try to hold everything because it’s easier and joins are for the weak). I prefer frankenstein tables. These beasts start innocently enough, a few extra columns here, some quick fixes there, but before you know…

Read More

Database indexes

What are database Indexes? Imagine you’re looking for a specific recipe in a massive cookbook with thousands of pages. Without an index at the back, you’d have to flip through every single page until you find it, that could take forever! A database index works the same way, but for data in a computer database.…

Read More

Database crimes

The 40-year-old database crime every bank (and most companies) still commit in 2025 I’ve worked with banking systems for 35 years. Every single one of them, without exception, still stores contact details like it’s 1985: 1 field for Phone1 field for Mobile1 field for Fax (yes, really)1 field for E-mail Result? Receptionists have 27 Post-it…

Read More

Install 5 major databases on Windows

The complete step-by-step guide to install MySQL, mariadb, sql server, postgresql, and sqlite on windows After 35 years installing databases in investment banking (where a failed install could cost serious money, I wrote the guide I always wished existed. This 77 page PDF shows you, with exact screenshots, how to download, install, configure, and test…

Read More