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.
I’m Swiss, living in the German speaking part of Switzerland, together with my wife and our two kids. I turned 40 this year, which just makes me realize that it’s now half my life that I’m somehow involved in the PostgreSQL project.
How do you spend your free time? What are your hobbies?
Away from screens, I really like to exercise and move my body. I practice Capoeira and Kung Fu, but also enjoy Contact Improvisation. With the Corona lockdown, I started running, as these other activities were not allowed.
Given the nearby mountains, I’m also into rock climbing. However, contrary to the Swiss cliché, I’m not into winter sports at all. Partly because anything below the freezing point is well outside of my recommended operating temperature.
Any Social Media channels of yours we should be aware of?
If anything, then Twitter, but I’m not all that active on Social Media in general.
Last book you read? Or a book you want to recommend to readers?
Given the company name 2ndQuadrant seems to be vanishing eventually, I figured it’s about time to read up on its origin. Thus I recently started with The Seven Habits of Highly Effective People. I’m holding a 30th anniversary edition in my hands, so I guess that’s not exactly a new title for most of you.
Any favorite movie, or show?
I don’t own a TV (and think that’s a good thing). So the answer to this question would be something like: The A-Team. And embarrassingly enough, I could still whistle the theme song right away… Hannibal was my favorite character. And I, too, love it, when a plan comes together.
How would your ideal weekend look like?
Dancing Contact Impro. Or rock climbing. Or both.
What’s still on your bucket list?
Rather than just software, I want to learn more about electronics, the hardware required to run the code (that I know how to write). I eventually want to design my own PCB for some useful little gadget.
What is the best advice you ever got?
Not that I personally got that advice, but “Stay hungry, stay foolish” resonates a lot with me. Even though I get really grumpy when physically hungry, but…
When did you start using PostgreSQL, and why?
I picked up PostgreSQL during my first job, when I wrote a community website (using a Perl framework) and figured that a relational database sounds like just the right thing to hold the data. A tight budget coupled with a bit of open-source idealism left me with the choice between MySQL and Postgres. And I didn’t ever regret the choice I made.
As naive (or foolish) as I was back then, I envisioned a redundant multi-master setup and was surprised no readily available solution existed. That’s when I stumbled over the Postgres-R paper and started to dig into it. I thought it can’t be that hard. Now look at me, some 20 years later: I’m basically still working on multi-master replication for Postgres. (Not that I regret anything, quite the opposite: I still think it should be easy, at least for users.)
Do you remember which version of PostgreSQL you started with?
I don’t recall exactly, but it must have been 7.0-ish. The Postgres-R project made me study 6.4 sources as well, though.
Have you studied at a university?
No, which I sometimes regret. Then again, I clearly am an autodidact learner and free (foolish?) thinker, so that I would likely not have finished, anyway.
What other databases are you using? Which one is your favorite?
As part of the monotone project, I learned to appreciate SQLite. Clearly my favorite for something embedded, with only a single user at a time. If you need anything beyond that, stick with PostgreSQL.
On which PostgreSQL-related projects are you currently working?
BDR, the multi-master replication solution by 2ndQuadrant, now EDB.
How do you contribute to PostgreSQL? Any contributions to PostgreSQL which do not involve writing code?
I didn’t contribute a lot of code at all, actually. None of the Postgres-R patches ever made it into the community code base (they became the basis of the TransLattice Elastic Database, though). However, with that I introduced or at least helped advocate concepts or ideas you’re taking for granted today, which didn’t exist back then. For example background worker processes and the corresponding need for message passing via shared memory. Or the entire idea of logical replication itself, in a way.
What is your favorite PostgreSQL extension?
pgTAP. I think unit testing is way underrated in the database world.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
I think that’s endless discussions on mailing lists. The problem is I don’t generally know how to differentiate the important from the pointless discussions, so no, I don’t see any chance to fix this.
Could you describe your PostgreSQL development toolbox?
I’m an Emacs and Debian user, switching between GCC and Clang as C compilers. Valgrind occasionally comes in very handy. And then KVM for virtualization and Docker for containers.
Answering from a slightly different angle: I love to use lots of screen real estate (at least two large displays, preferably three) and highly appreciate the height adjustable desk I installed for my home office (1.8m wide, usually fully crammed, speeds up my IT equipment to 38 mm/s).
Which skills are a must have for a PostgreSQL developer/user?
The ability to read the fine manual.
Do you use any git best practices, which makes working with PostgreSQL easier?
I lost way too much work to crippled merge or rebase attempts or such. So I recommend to branch early and commit often. Branches in git are about as cheap as sub-transactions in Postgres.
Which PostgreSQL conferences do you visit? Do you submit talks?
I used to attend or even speak at various conferences, but in recent years I attended only the annual Swiss PGDay.
Do you think Postgres has a high entry barrier?
Depends on what you compare against. Excel clearly has a lower barrier to entry (which for the sake of humanity should actually be higher). For an RDBMS, I think it’s fairly simple to install and use. But that applies to most things you already know well.
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
As long as you scratch your own itch, you’re fine. You’ll find plenty of resources online and get help from the community, if you ask for it. Dare to read the source code, there are lots of comments and explanations. Then experiment with it.
Do you think PostgreSQL will be here for many years in the future?
Would you recommend Postgres for business, or for side projects?
For very serious business exclusively. Make sure to wear a suit and tie to read those docs. As this ain’t no toy.
Are you reading the -hackers mailing list? Any other list?
I used to read every single mail when Postgres-R still was a hobby and I didn’t have kids, yet. Nowadays, I barely read a thread per month.
Which other Open Source projects are you involved or interested in?
I’m also a Debian Developer, but find it hard to keep up. I am further interested in new languages providing stricter safety guarantees like Rust or even allow for formal verification, as for example Idris does. (And no, I’m not advocating a rewrite of Postgres in any of the two.)