Reading time: 8 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.
My name is Aleš Zelený, I live in the Czech Republic in a small village close to Prague. My current job position is PostgreSQL DBA & DevOps in the Betsys company - sports betting information system provider. I’m a member of the Czech and Slovak PostgreSQL Users Group, CSPUG.
How do you spend your free time? What are your hobbies?
I am preparing our Irish Red Setter for hunting test exams, so we spend a lot of time on trails. Hiking the countryside is an activity I like a lot. For technical hobbies, I used to be a radio amateur, and this winter I’d like to spend some time hacking a control system for my photovoltaic power station.
Any Social Media channels of yours we should be aware of?
I’m not very active on social media, having a LinkedIn account and due to the war against Ukraine, my daughter introduced me to Twitter to have some more instant news feeds. And I have a Mastodon account.
Last book you read? Or a book you want to recommend to readers?
The last book I read was World Order by Henry Kissinger. From my point of view, I’d recommend this book. Reading the book helped me to find a better way to understand the consequences of some historical events since the Peace of Westphalia until recent history.
Any favorite movie, or show?
It’s quite some time ago since I have seen it for the first time, but I still enjoy a lot the Ameli du Montmartre.
What does your ideal weekend look like?
I really enjoy Saturday mornings, so that I can sleep till 9 a.m. :-) Since our daughter has a foal, we like spending some time with him or gardening. Sundays usually belong to dog training.
What’s still on your bucket list?
As for my other interests, I can’t resist taking photos, so I would love to visit Patagonia one day. For more, I am currently learning Spanish, so that I could practise my new skills.
What is the best advice you ever got?
The best piece of advice I have been ever given was from my parents, but the one I often recall was mentioned by one of my colleagues: the difference between a junior and a senior is that a senior does not assume.
When did you start using PostgreSQL, and why?
I started with PostgreSQL in 2013 by attending the Prague PostgreSQL developers conference. At this time I worked as Oracle DB and one of our company vendors gave me a free ticket to the conference. From that moment, I have started discovering the strengths as well as weaknesses of PostgreSQL. I was really impressed and even though I’ve worked before with Interbase, and Firebird SQL later, PostgreSQL was the winner for me. At this time I worked for a bank and we have decided to start with PostgreSQL for side projects to build a basis for an alternative platform to Oracle databases and to start the adoption process, gathering experience and knowledge while not taking a risk to affect any of the critical applications.
Do you remember which version of PostgreSQL you started with?
Yes, I remember this one very well - it was PostgreSQL 9.2.
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I’ve studied radio-electronic devices, and later math at Charles University, and despite leaving it unfinished I do believe it helps me with my work.
What other databases are you using? Which one is your favorite?
These days I’m using PostgreSQL for my weather station based on Kenneth Jahn Lavrsen WS 2350 project. It runs on an ancient PC and nowadays I’m refactoring it for Raspberry PI. It serves me as a private data source with a very basic HTML interface. Previously, I really enjoyed Interbase, later open-sourced, and transformed to FireBirdSQL. Those days I worked at the Municipal Library of Prague and InterBase/FirebirdSQL servers as a core data backend for the complete library IT system. The following major database engine in my professional life was the Oracle Enterprise edition database server and I enjoyed being an Oracle DBA on various platforms for 17 long years, from IBM z/OS, through HPUX, AIX to Linux. Later I had a chance to work with the Sybase Adaptive Enterprise server for two years.
On which PostgreSQL-related projects are you currently working?
Not having an active project now, the dormant one is a parser of the PostgreSQL schema dump intended to provide a facility to easily track schema changes in git.
How do you contribute to PostgreSQL?
Mostly bug reporting and test cases for the bugs experienced in PostgreSQL. As for the related utilities pgBadger and pg_partman, sometimes with provided fixes.
Any contributions to PostgreSQL which do not involve writing code?
I’m involved in fundraising for the Prague PostgreSQL developers conference. I’m usually in charge of communication with our conference sponsors. As part of the conference, we provide one day of training sessions - I usually perform a DBA-related training session - the PostgreSQL setup and basics of administration or a monitoring session.
What is your favorite PostgreSQL extension?
It is a very difficult question for me, except for the must-have pg_stat_statements, I really like pg_partman and pg_stat_kcache extensions.
What is the most annoying PostgreSQL thing you can think of?
REPLICA triggers on logical replication subscriber databases are not able to send notifications using pg_notify() function. It looks to be an issue difficult to fix, but it leads to unclear application design just to deal with this limitation.
What is the feature you like most in the latest PostgreSQL version?
For PostgreSQL 14, b-tree indexes deduplication and logical replication through the root partition were the most impressive features for me, while in PostgreSQL 15 MERGE and logical replication column(s) and row filtering are the top features that impress me most.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
From my point of view “Logical Replication Slots fail-over” is the most missing feature. There are some solutions around, such as the one implemented by Patroni, but having a solution in the core would be an accomplished dream. Why this specific wish? So far, I feel this limits streaming replication usability as a high-availability solution (forcing users to leverage on OS-based clusters on top of shared/mirrored file systems between nodes).
Could you describe your PostgreSQL development toolbox?
I haven’t been able to learn how to use any of the modern tools yet, so I’m still using vim for editing files, psql with pspg pager on top of it. It’s sometimes convenient to use FlameExplain for long SQL execution plan graphical visualization. While working with git, on top of the command line basic interface, meld works best for me to compare file differences, git-gui and gitk are also part of my toolkit.
Which skills are a must have for a PostgreSQL developer/user?
SQL language, relational algebra, and transaction behavior based on transaction isolation levels are the key skills for a database application(s) developer.
Do you use any git best practices, which makes working with PostgreSQL easier?
Honestly, I’m not aware of any unusual or special git practices, I tend to follow the main-stream workflow.
Which PostgreSQL conferences do you visit? Do you submit talks?
As I’ve already mentioned, the Prague PostgreSQL developers conference is my regular event, usually together with a submitted talk. Whenever possible, I also attend the PGConf.EU conferences.
Do you think PostgreSQL has a high entry barrier?
When I first started with PostgreSQL my point of view was simply “how to configure an Oracle feature in Postgres”, so it was time-consuming and it led to a lecture focused on explaining PostgreSQL basic architecture for an Oracle DBA to make the mindset migration easier for them. The way I see it today, presenting binary packages and guides available on the Internet seems easy enough. The drawback I can see is a temptation for starting projects to leverage on the public schema and default search_path.
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
Start with the mailing lists to get familiar with the community communication style and read blogs/articles related to the PostgreSQL architecture.
Do you think PostgreSQL will be here for many years in the future?
I hope PostgreSQL will be there for quite some time. Thanks to its openness I feel it adopts changes in a speed that allows keeping the engine reliable while also offering the most wanted features.
Would you recommend PostgreSQL for business, or for side projects?
As I’ve already mentioned, to start with a side project to get experience and self-confidence. This might be followed by business-critical databases. That approach worked for me and hopefully might work for someone else as well. From the system reliability, stability and performance I feel PostgreSQL is an excellent option.
Are you reading the -hackers mailinglist? Any other list?
I’m trying to monitor the -general mailing list and the bug lists.