Reading time: 9 minutes
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.
Grown up in a midsized wine-town in Germany, I started working in (Windows) System Administration during school. In doing so, I had come in touch with Programming and Databases. Still at University, I started my own business in data driven marketing and ran it for almost ten years. Today, another ten years later, I’m living in Bern, Switzerland, working for the Swiss Academy of Sciences. Over the time, I became deeply involved in the PostgreSQL community. Further, I’m supporting privacy, open-source, open-data and civil society concerns as I’m overall a political person.
So, over twenty years I made the full journey from using PostgreSQL as a tool for a task, becoming really convinced of the product, getting involved in the community to contributing back to it.
How do you spend your free time? What are your hobbies?
As I don’t make my living from PostgreSQL (despite using it heavily in my job), much of my Postgres activities happen in my free time.
Apart from that, I love to drive and restore old cars, and enjoy exploring remote areas with my vintage camper van. Besides this special kind of travel, my partner and I like to travel in general and enjoy good food and drinks. Sometimes I also try my hand at bartending.
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 rather read a lot - news, blogs, scientific papers and technical books. But hardly any fiction or literature.
Any favorite movie, or show?
The same goes for TV - I like to watch news, magazines, reports and discussions, but rarely watch movies or follow series. That said, I do occasionally zap through the program and look at some ‘trash’ to relax.
What does your ideal weekend look like?
Saturday usually starts with the necessities like shopping and housekeeping. The afternoon is reserved for some couching with a glass of wine and cheese to prepare for a fine dinner. Sunday I like to put on the mechanics suit or take a veteran car for a ride.
When did you start using PostgreSQL, and why?
Coming from MS-Access to MS SQL Server, I was introduced to the concept of Linux and Open Source by a colleague in the early 2000s. Not having to pay for the licence and having access to the code at the same time sounded too tempting. I started with a Norwegian server-oriented distribution with sanely selected packages and security orientated defaults. This happened to include PostgreSQL as their database engine. First, I managed to connect the frontends I used at that time, later I dumped these as they limited too much what could be expressed in raw SQL.
Do you remember which version of PostgreSQL you started with?
I actually had to do some research for this question. To my own amazement, it must have been 7.3 with brand-new dependency tracking and I remember proving it to be a ‘professional database’ by the recently introduced feature called “WAL”. But I did the majority of learning with 8.0 and 8.1 (2005). Remember the introduction of “bitmap index scans”, “standard conforming strings” and the elimination of “implicit casts from/to text”?
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I did start my studies at University in mathematics, turned to computer sciences (which was closely integrated at that time) and after the foundations, had some advanced courses in AI (pre ML and ANN). Later I switched to a remote-university and added some law and economics to the curriculum. Despite this, I never managed to graduate, due to a different focus in life. I did however learn lots of fundamental concepts, and abstract thinking. That is the great value of a technology-neutral study - we did learn programming paradigms, not programming languages - concurrency control methods, not database engines. Nothing that immediately qualifies for a job, but things you need later on, once you dive deeper.
What other databases are you using? Which one is your favorite?
Currently, I’m mainly using PostgreSQL, with a little SQLite occasionally. During my career, I was confronted with lots of other database systems, some popular ones and lots of exotic ones. Some were migration projects but most of the time, the task was to extract specific data from them. Often without any schema reference, I had to reverse engineer how applications store their information. By this I learned a lot about data modelling (good and bad) and various SQL dialects. This led me to look more closely at SQL standardization and learn to appreciate it.
On which PostgreSQL-related projects are you currently working?
For some years I’ve been part of the small team maintaining Postgres.app, an easily deployable distribution for macOS that allows developers to quickly run a local instance, batteries included (in this case: PostGIS and various other extensions). Keeping that up to date with the many changes Apple’s OS introduces every year and lots of evolving dependencies is “real fun”.
How do you contribute to PostgreSQL?
Although I have been able to land an occasional patch, my contributions to PostgreSQL are still minor. When I find bugs in related code like extensions or the PostGIS dependencies, I usually try to fix them and provide them upstream. With OSS, you have a lot of freedom, but you also have to take some responsibility for yourself. Many small contributions are what make this model superior, IMHO.
Any contributions to PostgreSQL which do not involve writing code?
I try to help with advocacy and community building.
In 2015, we founded the Swiss PostgreSQL Users Group to bring the local community together and maintain the exchange of knowledge. Within the SwissPUG I currently serve as a treasurer.
2017 I joined the team organizing the annual Swiss PGDay conference with typically 60-90 participants and great local and international speakers.
In my work on Postgres.app I help with answering support requests and documentation. As often their / these users are not very experienced, it is a great source to learn about the issues and impressions of newcomers. This helps when it comes to lowering the entry barrier.
When time permits, I volunteer to help in other conferences, too - eg. in the Program Committee. From time to time, I give talks at meetups or at conferences.
What is your favorite PostgreSQL extension?
There are many. Instead of naming one of the obvious ones here, I would rather like to highlight the excellent APIs that allow writing such powerful extensions at all. The extendibility of PostgreSQL is really one of its major strengths.
What I find somewhat unfortunate is that there are some very useful extensions and tools that are hardly known. As a result, some of them are poorly maintained by their authors and slowly updated for new PostgreSQL versions. The PGXN is actually a good initiative, but it also deserves more attention.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
Being unable to drop columns of a view, or alter their type, is a common annoyance.
What is the feature you like most in the latest PostgreSQL version?
The work that has been done towards a better integration of ICU collations are among my favourites. JSON_TABLE and the other JSON functions are a big win, too.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
There are standardized features that are simply missing in PostgreSQL. Beside many little (e.g. virtual generated columns) there are the two big blocks “Row Pattern Recognition” and “(Bi-)Temporal Tables” - I would love to see that gap closed.
Further, I’m quite interested in ideas to extend the functionality of Foreign Key Constraints, like adding predicates or the support of one-to-many relations. A patch that I’ve been monitoring for quite some time is the one to implement “Index Skip Scans”. And the work regarding automatic / incremental / asynchronous updates of Materialized Views is on my watch list.
Which skills are a must have for a PostgreSQL developer/user?
As a user, you need to familiarise yourself with how the Postgres ecosystem and community works. Mailing lists, IRC, various commercial support offerings, a huge toolset with multiple options to the same problem. But the community is very welcoming, and the documentation is great, even if sometimes overwhelming.
For development, my impression as someone who is just getting into it, is that you have to have both staying power and the ability to react quickly. Feedback can come at a fast pace, while the whole process of landing a non-trivial patch often takes a long period of time, filled with deep and helpful discussions. It helps if you are passionate about details, just as the well-designed and readable source code is.
Which PostgreSQL conferences do you visit? Do you submit talks?
I have visited every PGConf.EU since 2010 in Stuttgart. This journey in autumn is always a highlight in my calendar, as it takes me to places I’d likely not visit otherwise. I usually append a few days with my partner for holidays.
Of course, I’m also regularly present at the Swiss PGDay. While I try to visit other local events, the time I’m able to spend on this is limited.
Visiting conferences is not only about the talks, but equally about the people. I’ve got to know so many nice people there that it feels like being part of an “Elephant Family”. While having fun and beer, there is always the possibility to have serious technical discussions till late in the evening at the same time.
Do you think PostgreSQL has a high entry barrier?
As someone with a long history of using the product, I can’t really judge. But considering the feedback I get, there certainly are some stumbling blocks that could be improved. With Postgres.app we try to design the onboarding process as simple and native as possible for users of macOS without hiding too much of the underlying functionality.
I feel that new users would benefit from a guide to the various resources already available. Googling for error messages often leads to outdated or out-of-context advice without providing the necessary background.
Are you reading the -hackers mailinglist? Any other list?
On -hackers, I only follow or participate in individual threads, search and read in the archives. The -hackers list is so overwhelming that you’d need an extra life just to keep up with it. To my surprise, other members of the community seem to actually have that ;)
Being subscribed to -announce is important to be kept up to date, Planet PostgreSQL is a convenient entry point to various blogs. Since the PWN are no longer sent, I read Postgres Weekly and skim manually through the GIT commits.
What other places do you hang out?
Mainly, I can be reached via plain old email - I like its asynchronous nature. And I’m happy to meet others in person, like at conferences or meetups.
Anything else you like to add?
“Happiness comes from solving problems” (Mark Manson - I haven’t read his book but find the quote quite appropriate).