Pavlo Golub

Tags:   postgresql    ukraine    slovakia    austria    community    development    cybertec    friends    pg_timetable    pgxmock    patroni    windows    postgres-europe    vscode   
Category:   Interviews   
Interviewed 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.

Hello. My name is Pavlo Golub. I’m originally from Ukraine, but now I live in Slovakia. I’m a developer and consultant at Cybertec PostgreSQL International.

Pavlo Golub

Pavlo Golub

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

One of my hobbies was actually formerly my professional area and this is handball. I quit the professional sport due to trauma. And now, here’s the most interesting part: When I moved to Slovakia, I connected with the handball team I met before in international tournaments. They proposed that I become a player of the first Slovak handball league team. So technically now I’m a professional athlete. :) The championship is on pause right now due to known reasons. Hiking, traveling, beering and steaking are my other favorite hobbies.

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

I don’t mind if Bill or Zuck want to put a chip in my head… even better, I wish they would do so! I’m so sick and tired of making my own decision in this hard life. To let them find me, I present myself in almost every social network you can imagine, except tik tok. I just cannot get what to do there. 😉

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

Guilty! I used to read a lot when I was… young. :) I’m talking about non-technical literature, of course. Nowadays I’m truly a nerd, mostly I read tech blogs and papers. However, you would be surprised, the last book I (re-)read is “The Little Prince” by Antoine de Saint-Exupéry. The trick is, I’m learning the Slovak language and this is the first book I found in Slovak. And it’s great, I must say. Simple enough to understand or guess words, and familiar enough to not get lost in the foreign language text — and funny enough not to just throw it away.

Any favorite movie, or show?

Oh Jesus! Here we are. First of all, I’m not watching movies at home anymore. Because I never have two whole hours of free time. I’m binge watching TV series instead! 🤪 They are short and it’s easy to switch contexts. Usually, I can watch several series at once, and here you should ask: “Where do you get free time if you don’t have it?". Fair enough. I tend to think it’s TV magic. I try to watch them in the original language if I can, then switch to subtitles and the latest option is a dubbed product.

Let’s try to group some.

  • The best cartoon series are: “BoJack Horseman” and “Rick and Morty”.
  • The best SyFy: “The Expanse” and “Battlestar Galactica”.
  • The best British: “Black books”, “Misfits” and “Yes, Prime Minister”.
  • The best IT: “The IT Crowd”, “Silicon Valley” and “Black Mirror”.
  • The best social: “Scrubs”, “The Office” and “Community”.

And many many more, like “Cougar Town” and “Firefly”, “Game of Thrones” and “Masters of Sex”, “Californication” and “The Young Pope”… If I would list ‘em all that would be probably a list of 50+ items.

How would your ideal weekend look like?

I have several scenarios for my ideal weekend.

One of them is spending time with my #PostgresFriends at conferences, e.g. Fosdem or PGCon.

Another one is to do some sport activity. Hiking or biking, handball tournaments… everything like that suits me well.

The third one I love a lot is a long car trip with my family. Driving through fields, mountains, rivers, and forests is one of the most romantic things to me. I’m Ukrainian after all. Driving 800km one way to establish a one-day meetup is a usual thing here. :)

What is the best advice you ever got?

Do not give any advice. Meaning, do not try to save (or help) someone if you are not explicitly asked for help. There is a saying: “Stop teaching me how to live, just help financially”.

Yes, I graduated from the State Pedagogical University in Kropyvnytskyi. Ukraine. As you can guess from that, I’m a teacher by education, more precisely, a teacher of math and computer science. A funny situation happened during pgDay Austria. Speaker badges had information about education in form of these fancy acronyms, e.g. PhD. Well, my official acronym is MEd that stands for Master of Education. Several people asked me — exactly what area of medicine did I work in?

When did you start using PostgreSQL, and why? Do you remember which version of PostgreSQL you started with?

I started at the university. I remember we were learning MySQL and at that time MyISAM was the default engine. MyISAM, as you probably know, doesn’t support transactions. I was so shocked that most services over the internet use a non-transactional SQL server that I started to look for something to fill that gap. That’s how I first encountered PostgreSQL and it was 7.2, the last version without schemas. Right after university, I started my job as a technical support operator and at that time we worked with all 7.x versions. When I switched to a developer position that was version 7.4. I’ve worked with every PostgreSQL release since then. I think 7.3 was the most important though. Not technically maybe, but from the innovation point of view, at least for me.

What other databases are you using? Which one is your favorite?

We do a lot of migrations as a company. Mostly from Oracle. So, yes, I use Oracle, and I hate it! I worked with MySQL, Firebird, SQLite, and MS Access as well.

The most famous public project I work on would be patroni. I worked on its Windows port. Several customers wanted Patroni for Windows and later installation packages and GUI applications to set up patroni clusters. pg_timetable would be another one. Think of it as a cron on steroids. The initial idea came to my chief and friend Hans-Jürgen Schönig and he implemented a prototype in plain C years ago. But the quality of the code was shitty, so he asked me to make things right! 🙂 Just joking. A lot has changed over time, and we need a new scheduler for one of the projects, but with enhanced features. After we revisited all the functionality, I reimplemented this in Golang. But I credit the initial idea to Hans-Jürgen. pgxmock is a fresh one. This is a mock library for the golang pgx driver, which is used to work with PostgreSQL. It’s a rework of a well-known sqlmock Golang library.

How do you contribute to PostgreSQL?

I had a couple of patches to the libpq client library long ago, but I don’t think my contribution to the PostgreSQL code is valuable. Instead, most of the time I have worked on client libraries and tools for PostgreSQL, e.g. pg_timetable, PostgresDAC, PgMDD, patroni port for Windows, pgxmock, etc.

Any contributions to PostgreSQL which do not involve writing code?

I am a co-founder of the PostgreSQL Ukraine user group. But the most important project for me is a PostgreSQL translation into Ukrainian. We made it as a summer project with 4 high school students as translators (three of them are also my children 😉). I did the technical review and my wife did the language review (she is a professional linguist). During work on the translation, we introduced a completely new form of cooperation, with the support of our friends from the CrowdIn company. Everything was done online including translation, review, source updating, etc. You may join our online translation team.

What is your favorite PostgreSQL extension?

My favorite PostgreSQL extension is not written yet. But it’s planned and is waiting for development. 🙂 I’m talking about pg_timetable, but implemented as an extension. However, I’m also fond of auto_explain , dblink , file_fdw , pg_stat_statements , and pg_trgm .

What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?

It does not annoy me really rather I consider this as a limitation. I would like to see Postgres using threads instead of processes. On the other hand, I understand that the architecture was chosen for a good reason. So no, it’s not an annoying issue. Think of this rather as scientific interest. Another feature I would like to see in the future is the direct/async I/O. Andres Freund and Thomas Munro (maybe others I’m not aware of) did a lot in this area already.

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

I cannot emphasize any particular feature from PostgreSQL 13, but I do think the release itself has a lot of improvements. I understand this reply sounds very “short”. It sounds like I don’t like v13, but I don’t want to say anything nasty. That’s not true! 😁 I just don’t want to copy-paste the whole changelog. But if you will continue to torture me, I will shout out “de-duplication of B-tree indexes”.

Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?

I would like to see different pluggable storage engines. I hope this feature will be implemented in the near future. Having pluggable SQL parsers would be cool too, but I do not believe it’s even possible. :) Why do I want that? I believe if we can replace MySQL in WordPress installations we will rule the world! 🙂

Could you describe your PostgreSQL development toolbox?

For a long time, Delphi IDE was my main tool, apart from pgAdmin III and psql. Later when I began to use more languages simultaneously (C, Go, Python…) I found that having a separate IDE for each of them is quite annoying and cumbersome. So I ended up with VS Code. That was a hard experience. I didn’t like it from the very first moment– it was slow and monstrous. But later, after a year of active development, VS Code really improved. During the period of not having set up VS Code, I used Sublime Text intensively. I still like it a lot. It’s more of a text editor, while VS Code is a powerful IDE from the very beginning.

If we are talking about OS then probably I’ll shock many of you. Here is my coming out: I use Windows 10 and it’s awesome. Previously I had a virtual machine with Ubuntu for some of the projects, but after the release of WSL 2, I dropped VM. I’m switching between OSes right from my IDE. I can have one terminal with Powershell and another one with bash side by side. It’s so amazing.

Which skills are a must have for a PostgreSQL developer/user?

If you want to become a developer you need a lot of patience. You cannot just branch-push-merge. Be ready for long discussions on the mailing list. On the other hand, that іs why our code quality is just outstanding.

Which PostgreSQL conferences do you visit? Do you submit talks?

It’s easier to remember what conferences in Europe I’ve missed so far. They are PGConf.DE and pgDay Paris . Both were planned for 2020 but COVID-19 had its own plans. And yes, I try to submit talks every time. I believe in diversity. No matter how good speakers are, you will be just bored to see the same people on the stage. It’s not standup comedy after all. There are two conferences where I am an organizer: pgDay Austria and pgDay Ukraine.

Do you think Postgres has a high entry barrier?

Nowadays everything more complex than Tik-Tok videos has a high entry barrier. You at least must know how to read. Don’t think I’m an old man complaining. It’s a new reality. Every kind of craft is changing so quickly, you need to spend a lot of time reading and learning if you want to achieve something. In the context of computer technologies, I prefer to think of the entry barrier as complications during a switch from one technology to another. In this case, no, Postgres’ entry barrier isn’t higher than that of other RDBMS’.

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

I hope. Unless there is no database written in javascript, this world is safe. 😁

Would you recommend Postgres for business, or for side projects?

Absolutely. The best recommendation is Oracle’s price list. They did more for advocating PostgreSQL adoption than any of us!

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

I did. Recently, however, I switched to periodical archive viewing. I had an idea to create a special service to produce custom RSS feeds from the -hackers archive based on terms, authors, threads, etc. So later you can use that RSS in the preferred news reader, e.g. Feedly. But still, nothing was done. So if anybody wants to try, please, do it. 🤗

Which would be harder for you to give up: coffee or beer?

You can take your coffee. Just let me drink some beer with the famous Devrim steak. That’s all I ask! :)

Anything else you like to add?

Don’t be blind to human suffering. Stay safe! I hope to see you all in the nearest future at one of the many live events and conferences! ❤