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, I’m Flavio Gurgel. I was born in Brazil, since 2014 I live in France, in the greater Paris area known as Île de France. I’m a Lead Infrastructure Engineer for leboncoin, a classified ads company group in France.
If you see a 2.03 m tall guy (or around 6´ 7 if you prefer imperial) at a conference, that’s me, come by and say hi!
How do you spend your free time? What are your hobbies?
Free time is usually invested in family and kids activities and I’m lately into amateur music production. So, I can put family and hobby together by recording and mixing my kids playing instruments and singing. I also like the DIY culture and fixing household equipment, especially electrical and electronic stuff.
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 read the French translations of both Italian Shoes and its sequel After the Fire by the Swedish writer Henning Mankell. They were the first books of Mankell I read, the latter is his last one published posthumously. I really enjoyed the reading, which was offered as a gift by my father-in-law. If you like fiction novels with a touch of crime and Swedish lifestyle, I recommend reading them both, in order. It’s possible to read only After the Fire if you want but you’re gonna miss a good part of the atmosphere.
Any favorite movie, or show?
20 years ago I watched Pulp Fiction for the first time and no other movie has made up my mind ever since.
I enjoy almost all of Taratino’s movies but this is special, not because of all the violence that is displayed there, but how close to reality it can get without hiding and being hypocritical. I can say that the movies I enjoy the most are those that are closer to the society we’re in.
What’s still on your bucket list?
Achieve a healthy weight. I’m working on it right now.
Write and submit code for Postgres.
What is the best advice you ever got?
Take some seconds to think before answering harsh questions, acting in difficult situations or dealing with someone in a bad mood or violent behaviour. In the majority of cases we can take control of the situation and the issue will settle by itself.
When did you start using PostgreSQL, and why?
My first contact was in 1999 when migrating a system from Microsoft Access. I was astonished by the richness of features and stability of the engine, also by the client-server design that I was not aware of when using shared-file engines like Access did at the time, that got corrupted with network glitches.
Do you remember which version of PostgreSQL you started with?
Things that put such a milestone in your life are unforgettable - it was 6.3
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I attended an Electrical Engineering 5 year program at the State University of Parana, in the southern city of Curitiba, in Brazil. Got my degree in 2000.
Even if not being directly related to databases, we use to study how computers work internally on an electronic level, and that’s something that makes a lot of difference when you work with high performance databases.
There, I learnt to program in Assembler for some microprocessors and microcontrollers, Pascal and some principles of C.
Possessing an Engineer degree is enough for most jobs in Information Technology, I think. Even if I know people from other disciplines as far from computers as Psychologists that became (very good) at informatics and data processing, I think that yes, a college or university degree in Engineering is useful.
What other databases are you using? Which one is your favorite?
At the company we handle quite a lot of Elasticsearch and some MySQL servers.
Postgres is, by far, the most used, it’s my favorite of course, and that’s the deciding factor when I change jobs. No Postgres, no Flavio.
How do you contribute to PostgreSQL?
It’s been a while I wrote pg_check_indexes before pg_amcheck existed.
You can find some pull requests here and there in Postgres libraries for other projects like Puppet.
Any contributions to PostgreSQL which do not involve writing code?
I am quite active on the Brazilian community’s Telegram channel (link in another answer), we’re more than 3000 people there, lots of beginners and seasoned users as well. I try to answer as many questions as I can and to advocate for Postgres.
I use to attend the PG-GTIE (French Inter-companies Workgroup) and we have some nice projects going on there, mostly by sharing technical advice and doing advocacy, for large companies as well as the community as a whole.
What is your favorite PostgreSQL extension?
I cannot live without pg_stat_statements, I think it’s mandatory for server optimisation.
Before that we had logs and pgBadger.
Today we have tools like pgwatch2 that we can share among developers and DBAs. We can see in realtime what’s going on in my queries by using pg_stat_statements as its data source.
There are other tools that rely on pg_stat_statements as well.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
The lack of listeners available when the server is not running. That means that we cannot send commands to the cluster by using the wire protocol, and we rely on the operating system’s shell to do stuff like pg_basebackup (or create a new physical replica), pg_rewind, stop/start the server, enter the single user mode, etc.
That means that when we automate deployment, which is currently more than 90% of my daily technical tasks, we have to switch between ssh, or another way to talk to the operating system, and a PostgreSQL client library, local or remote, as well as all the burden like sudoers rules, network routes and extra firewall entries.
It would be very nice to only use a PostgreSQL connection for all its related tasks, and it would reduce automation complexity by half, at least, as well as give more power to DBAs who are not into using the operating systems. We could even ignore the OS where PostgreSQL is running on.
I’m aware that it’s too correlated to the server design and it would halt all other development if we want to change that in a single major version.
I think that some kind of reverse-proxy running as the same user as Postgres could do the job without changing the entire server architecture, something like a PgBouncer on steroids.
I have an itch to scratch now, free software advocates will understand me.
What is the feature you like most in the latest PostgreSQL version?
PostgreSQL 14 has just come out and I already love it since beta versions…
I think this is not a developer oriented feature release but we have a ton of performance oriented work down there, and the features are just amazing.
To note one and only one feature is hard, so I take a chance on the observability views, like the new pg_stat_progress_copy. This is something people have asked for years and will, surely, help to answer the old question from someone higher than you in the hierarchy: when will it be finished?
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
If we can have some kind of listener like I said above, it would be my dream come true.
Could you describe your PostgreSQL development toolbox?
Things where I work today are automated with Terraform and Ansible. Code version control is done with git with a Gerrit frontend, continuous integration with Zuul and Concourse.
My favorite IDE these days is Visual Studio Code. It’s a good open source project from Microsoft in my opinion. The ecosystem around it is tremendous and you have support for almost all file-types you can find. It has excellent support for Terraform and Ansible (Jinja 2 integration is best in class I think) as well as scripting languages we use everywhere like bash, Python, Perl and SQL of course. It works on several operating systems so you can work in almost the same workflow as your colleagues without problems. My personal workstation is Fedora, by the way.
Which skills are a must have for a PostgreSQL developer/user?
I think that understanding how Postgres works internally is the key. When you understand the impact that queries, sessions, reads and writes have on the engine, the operating system and the hardware down there, you’ll be able to get the most out of it.
And, on the opposite side, if you make bad assumptions on how it is supposed to work, then you can find yourself in trouble, lose a lot of time and even make bad questions when trying to deal with the community in the mailing lists or IRC.
Which PostgreSQL conferences do you visit? Do you submit talks?
I’m always around at PgDays Paris, France and Europe. I used to go in person to PgConf Brasil (and was even involved in its organisation before) but hadn’t a chance recently, I hope to change that in the next one. Sometimes I speak at those conferences when I have something interesting to share.
Meetups are great but they’re not around recently, I hope they’re back soon..
Do you think PostgreSQL has a high entry barrier?
I think it depends on what you’re trying to achieve.
Postgres administration can be quite hard for a beginner because you need to know about the Operating System and network, as well as all the security features and ACLs of Postgres. For relational databases and SQL students, I think that the barrier is quite low because of the standard conforming and rich documentation we have. Once you have access to the database, things go flawlessly.
Do you think PostgreSQL will be here for many years in the future?
I’m sure it will. It’s amongst the oldest open source projects that are still alive and thriving, the Postgres community is solid and growing, and the quality of code is best in class. As Bruce Momjiam said once in one of his excellent talks - even if it has only one last user with a need, an open source project goes on.
Would you recommend PostgreSQL for business, or for side projects?
For everything. It’s open source and free (in both senses) so it’s easy to download and use it for a small project. The engine uses computing power only when required so it won’t bother while you’re working on your development computer and just install it. These days it’s easier to start thanks to Docker images.
On the other hand, it’s rock solid and I’ve been using it professionally for large companies in mission critical systems since 2009. I had the opportunity to manage databases in as many areas as automotive, banks, public sector, healthcare, real estate and marketplaces, without talking about the clients I had when working as a consultant. I’ve used Postgres in real and virtual machines as well as in the cloud, with numerous configurations and scenarios with heavy monolithic loads as well as distributed systems.
PostgreSQL is a high quality and very stable software, with professional support if you want. Therefore use it.
What is greatest about PostgreSQL is the ratio of returning paths. Reports of companies that moved to Postgres are numerous but the other way around is rare. It’s the single most interesting reason to advocate for PostgreSQL.
Are you reading the -hackers mailinglist? Any other list?
Yes I do read the -hackers list to stay aware of the current development. I also read (and sometimes answer) :
What other places do you hang out?
Portuguese speakers may find me at this Telegram channel.
Which other Open Source projects are you involved or interested in?
As a database guy, I think that knowing the internals of operating systems is key. So I’m always reading about the Linux kernel news, file systems, and virtualization, but I’m not coding for any of these.
Anything else you like to add?
Thanks a lot for the opportunity to answer these questions, it’s a pleasure to sum something if I can. I hope that the people reading me here find it useful and that it can be of interest for moving more people to PostgreSQL, or just for knowing me better. Get in touch, hope to see you and chat soon in a conference.