Reading time: 10 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
I live in Moscow, and work at Postgres Professional. I am responsible for educational projects.
I was born and grew up in Siberia, in the coal mining region - Kuzbass, In the city of Kemerovo. There I graduated as a mining engineer. But in my senior year of university I realized that I wanted to work with computers, not in the mines. And so it turned out that way.
When did you start using PostgreSQL, and why?
I started my career in the early 1990s as an Oracle application developer. For several years I worked with Oracle Forms, PL/SQL and was happy. Over time, my career curve began to turn toward management positions. I worked for different companies, moved with my family to Moscow, and in 2014 found myself being an implementation project manager for OeBS (Oracle E-Business Suite), and even for SAP.
Instead of developing code, all my work days were spent in meetings, emailing, and phoning. One day I decided that I would do technical work as a hobby. I always liked the idea of open source and decided to choose a project to do in my free time. Since I liked databases, after a short research I chose PostgreSQL.
To begin with, I decided to read the documentation and study PostgreSQL. When I started reading it, I realized that I can benefit the Russian-speaking community already at this stage. I can not only read the documentation, but also translate it into Russian.
After some time, I finished translating the PL/pgSQL and psql chapters on version 9.3. I wrote a message about it to the Facebook group «PostgreSQL in Russia». A few minutes later (!) I got a reply from Oleg Bartunov. He was very interested in translating the documentation into Russian. I knew that Oleg is one of the leading PostgreSQL developers, and was very pleased to meet him.
After a few conversations, Oleg invited me to join the newly created Postgres Pro. I did not think long and accepted the offer. That was in early 2015.
Since then, I have been working with PostgreSQL at Postgres Pro all the time.
What are your hobbies? How do you spend your free time?
As I just told you, my hobby turned into a job. I am very lucky.
In my free time, I like to run. I like to travel. Sometimes I combine the two. I hope next year I can run a half marathon in an interesting city.
Any favorite movie, or show?
I’m a huge NBA fan. It’s better than any show!
The new season will start soon. How will Klay Thompson get back into the game? I am very sympathetic to this player. A terrible injury two years ago in the finals. I hope he will be fine!
Last book you read? Or a book you want to recommend to readers?
I am currently reading a book that I can strongly recommend. But I haven’t read it to the end yet. And the book isn’t finished yet! :-).
The author is my colleague Egor Rogov. The subject is Postgres, of course. Egor writes about the internals of the RDBMS. I’m lucky, because Egor sends me written chapters for review.
The Russian version of the book will appear closer to the New Year. I hope that next year it will be translated into English.
To get a general idea of what we’re talking about, you can read a series of articles written by Egor in English: Indexes, MVCC, WAL, Locks.
I have no doubt that this will be a great book.
Recommend Must read!
On which PostgreSQL-related projects are you currently working?
I work on educational projects in the company. But I’m not the only one. We have a wonderful team and I’ll name some of the members.
My first project after joining Postgres Pro was to translate the PostgreSQL documentation into Russian. After all, I started translating it even before I joined the company. But it’s one thing to translate a couple of chapters and quite another to translate the entire documentation. In the beginning, we tried different approaches to translation, but things got pretty slow. But then Alexander Lakhin came to the company. He is an incredible person. He translates with amazing speed and quality. Alexander not only translated the entire documentation for 9.4 to completion, he has been updating the documentation for new versions every year since. Now I am sure he is almost done with version 14.
The next project was the development of training courses. I invited my colleague from my previous job, Egor Rogov, to work at the company. I don’t have more flattering words to appreciate him. Together with Egor we have developed 6 training courses for database administrators and application developers. We have authorized about a dozen training centers, which provide our courses. For those who can’t visit a training center, we have published full course materials on our website, including video lectures. Anyone can take any course, and learn on their own.
Another important project that we launched a couple of years ago is the certification of PostgreSQL specialists. Now you can not only go through a training, but also confirm your knowledge by taking the appropriate exams.
We have recently begun translating training courses into English. For now, the introductory two-day course is available. But in the near future, materials from other courses will begin to appear in the English version of our site as well. Liudmila Mantrova, our excellent technical writer and translator, is responsible for the translation. She has already made several patches in the PostgreSQL documentation.
I should probably mention our little book, Postgres: The First Experience. It is intended for those who are just starting to work with PostgreSQL. In Russian, this book is updated every year after the next version of the server is released. In English the latest version of the book corresponds to version 12. We usually share this book at conferences that our company participates in.
The last project I want to talk about is the Airlines demo database. This is a very important project for learning. We got tired of creating a table with a name like «t» and then filling it out by manipulating generate_series and random functions to demonstrate some feature. We needed a schema with a set of tables from an understandable subject area and meaningful content. Now we use the demo database in training courses, books, articles, etc.
What is your favorite PostgreSQL extension?
As an application developer in the past I have no doubts about this - plpgsql.
Other extensions for server-side programming languages are also in my top list. I really like this ability to plug in new languages to develop subprograms on the server.
What is the feature you like most in the latest PostgreSQL version?
It so happens that during the last PostgreSQL release cycle, I wrote 5 articles about patches in the commitfest. You can find them here (in Russian). The last article was published on April 15, a week after feature freeze. These articles describe 185 features, in many cases with a demonstration.
We do this for two reasons:
- To update courses to new versions of PostgreSQL, you need to know exactly what has changed. You can read the release notes, but it is better to understand all the changes in detail.
- This is also our contribution to the Russian-speaking community. Of course, everyone can monitor the accepted patches and read -hackers list. But this requires a lot of time. We publish articles so that users have the opportunity to see the summary of changes.
Now to answer your question. Version 14 has a lot of interesting features. Noticeably more than in version 13. It’s very hard to pick just one. Ok, I’ll name this change:
Allow SQL-language functions and procedures to use SQL-standard function bodies. (Here’s our description in the March commitfest article.)
Are you reading the -hackers mailinglist?
When I am preparing reviews of patches accepted on commitfests, I have to read -hackers. But I am not reading in chronological order, but only discussions related to these patches.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
Here I will return to my educational field.
It would be nice to have a demo database as part of the server. And its description in the documentation. And all examples in the documentation should use tables from the demo database.
Maybe we need several databases from different subject areas and to demonstrate different features of the server.
By the way, our product documentation includes the Appendix Demo Database «Airlines».
Could you describe your PostgreSQL development toolbox?
When I was an Oracle developer in the 90s, my toolbox included Digital Unix, vi (real vi, not vim), sqlplus, Oracle Forms v3.
Slowly, over the next 20 years, as I transformed into a project manager, my toolbox changed into several Microsoft products: Outlook, Project, Excel, Word. That’s it!
The first thing I did at my new job at Postgres Pro was install Ubuntu on my laptop. And now I use vim + psql in addition to Firefox, Thunderbird, LibreOffice. I’m not against using a GUI, but I’m more comfortable working on the command line.
Which skills are a must have for a PostgreSQL developer/user?
I won’t say anything about the server developers. I don’t know.
As I understand it, users are application developers and PostgreSQL administrators. In my opinion the following is important for them:
- You need to know how to work with documentation. If you know the structure of the documentation, then it is clear in which sections you need to look for answers to your questions. I understand that searching on the internet (Google, Stack Overflow, etc) is probably faster. But in my opinion it is worth checking the documentation first. And then, if you can’t find an answer, look elsewhere. Studying the documentation gives you systematic knowledge. The Internet search can be faster, but the knowledge will be fragmentary. After all, if you quickly get and apply the advice you found, you may not understand how and why it works. By the way, you can find ill “advice”, which is better not to use at all.
- Don’t be afraid to experiment. When you read about a command/function/opportunity, experiment with it. See it in action in different situations.
- For those who start working with PostgreSQL, I advise you to start with the SQL language. You do not need to rush to tuning the server configuration, setup replication, and more. First, you need to learn how to write queries. It will also be useful for working with other databases.
Would you recommend PostgreSQL for business, or for side projects?
I can recommend Postgres for almost any project. It is a universal DBMS.
If you don’t know what DBMS to choose for your project, choose Postgres, you won’t make a mistake.
If you worked with Oracle, SQL Server, DB2 and are afraid of migration to Postgres - don’t be. Maybe Postgres doesn’t have all those features you’re used to, but it has enough power to implement most of your projects.
Do you think PostgreSQL has a high entry barrier?
It is difficult for me to answer this question objectively. I came to Postgres after two decades of working with Oracle. So for me there was practically no barrier.
On the other hand, our education team does its best to make this barrier as low as possible. The main thing here is not to overdo it and not to dig a hole in the place of the barrier! :-)
Anything else you like to add?
Thank you for the opportunity to tell me about myself.
Good luck and Prosperity to your project, to you personally, to PostgreSQL and to the entire wonderful community.