Michael Christofides



Tags:   postgresql    performance    explain    design    uk   
Category:   Interviews   
Interview conducted by: Andreas Scherbaum

PostgreSQL is the World’s most advanced Open Source Relational Database. The interview series “PostgreSQL Person of the Week” presents the people who make the project what it is today. Read all interviews here.

Please tell us about yourself, and where you are from.

Hi, I’m Michael Christofides. I have lived in the UK my whole life, in Essex, Nottingham, Cambridge, London, and now, with my partner Lauren, in Guildford. My surname is Cypriot, but I’m also part German, French, and English. I consider myself European, even if my country doesn’t (sorry). Work-wise, my background is mostly in product management.

Michael Christofides and Lauren

Michael Christofides and Lauren

How do you spend your free time? What are your hobbies?

In the before times, I really enjoyed playing football, cricket, squash (almost any sport, to be honest) and going to see live music. At the moment, I especially enjoy walks in the countryside and meals with friends. I’m looking forward to traveling and skiing again, hopefully this year.

Any Social Media channels of yours we should be aware of?

Last book you read? Or a book you want to recommend to readers?

I haven’t read it for a while, but a fond favourite is The Hitchhiker’s Guide to the Galaxy. It was funny and thoughtful to read as a teenager, and has been every time since.

Any favorite movie, or show?

My favourite show is The Wire. It explores the beauty and ugliness in some wonderful characters, while also being gripping, funny, and philosophical. In my opinion, it’s a masterpiece!

What is the best advice you ever got?

To focus (only) on what’s in my own control. The more I’ve managed to focus on my own thoughts, and on doing the right thing, the more at peace I seem to be with what happens. It is tough at times for sure, though!

When did you start using PostgreSQL, and why?

I first came across PostgreSQL while working at Redgate, on tools for SQL Server, Oracle, and MySQL. It wasn’t until I moved to London, to work at a startup called GoCardless, that I got to see Postgres in production. The team there were huge fans, which was very contagious!

Do you remember which version of PostgreSQL you started with?

No — I thought it was 9.5, but looking at the release dates, it must have been (at most) 9.3 😅

I studied Mathematics at the University of Nottingham. It did include a tiny bit of programming, for a statistics module, but I quickly dropped that to focus on Pure Mathematics. I think the degree did teach me a lot about how to think though — and especially how elegant simplicity can be. On that note, I think design and mathematics have a lot in common.

The majority of my PostgreSQL-related efforts go towards pgMustard, which is an EXPLAIN visualisation tool that also provides (developer-friendly) performance tips. I sometimes blog about performance, and sometimes check posts for others before they publish them. I publish a monthly newsletter of my favourite Postgres performance articles and videos, as well as any pgMustard news. Last but not least, I also maintain a glossary for EXPLAIN.

How do you contribute to PostgreSQL?

I am trying to get a little braver at chiming in on the mailing lists when I might have something useful to add, but honestly not much yet. A couple of years ago, I got tired of reading old documentation by mistake (via search engines, Stack Overflow, etc) so I built a tiny browser extension called pg_docs_bot that automatically redirects links to the “current” version of the docs. It is open source, and freely licensed.

Any contributions to PostgreSQL which do not involve writing code?

Last year I was lucky to get the chance to speak at several online events. I stuck to the topic of EXPLAIN. I try to help out on Slack and Discord, if I spot conversations that I can help with. Shoutout to everyone that patiently helps the newer folks in the community in places like these — with a special mention to IRC which I found incredibly helpful myself. I really enjoy design, and want to get better at it, so I also sometimes offer suggestions to other graphical tools for Postgres. If you’d like me to review something, let me know! Finally, through Anthony Nowocien’s interview on this site, I learned he was looking for help to translate (from French to English) a guide for enterprises considering a migration to Postgres. It took us a while, but I was pleased to see it published (under the PostgreSQL license) late last year!

What is your favorite PostgreSQL extension?

While I think pg_stat_statements and PostGIS are far more important, my personal favourite has to be auto_explain. It is especially valuable for queries that are only intermittently slow.

What is the feature you like most in the latest PostgreSQL version?

I’m in awe of the work on bottom-up index deletion in PostgreSQL 14 — it’s such an elegant solution that will benefit so many people.

Do you think PostgreSQL will be here for many years in the future?

I certainly hope so. I think it has been built on fantastic principles, and its extensibility is a huge asset. Good support for JSON was a very smart move, and I don’t see any reason we can’t keep adapting it to better suit our needs for many years to come.

Are you reading the -hackers mailinglist? Any other list?

No — I keep an eye on commitfests for anything I might be able to help with, but would likely miss a pre-commitfest conversation that was relevant. Please feel free to bring any to my attention! I do monitor the -performance mailing list, in case I can help, but also to learn and improve pgMustard.

What other places do you hang out?

I used to hang out more on IRC, but these days it’s mostly Discord and Slack, since I use those for other communities already. I’m michristofides on all of them, please feel free to say hello.

Anything else you like to add?

Thank you to everyone who has contributed to PostgreSQL, in any way, over the years.