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.
Hi, I’m Jean-Christophe. I live in the south of France, near Toulouse (the place where many Airbus aircraft are build). As far as I can remember, I have always been interested in computer science and programming. I moved a lot when I was a child but I settled in the Toulouse area when I started university. I am the father of 3 children, which is my first full time job, my second being a PostgreSQL database consultant in a PostgreSQL and Cloud dedicated company (we all are remote workers): LOXODATA.
How do you spend your free time? What are your hobbies?
I like to play music (piano, guitar). I also like biking, skiing (snow), surfing (ocean) when possible. Toulouse is very well located for those activities : 1 hour from the mountains, 3 hours from the Atlantic ocean and 1 hour from Mediterranean sea.
But the main part of my free time is dedicated to my family.
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 quite a lot of SciFi novels and related science books. Recently I read a book written by Liu Cixin (The Three-Body Problem) that I liked a lot. I also read a good pedagogical guide on tannins (in French) from Marc-André Selosse which might sound like quite a French way of life focused topic, but it was quite practical, with lots of information on chemistry and nature!
How would your ideal weekend look like?
Well there are two options for an ideal weekend:
Minimal weekend on the French wild west coast (Atlantic), with nothing else to do than enjoying the landscape, the ocean, the quietness (nobody’s around). Surfing. Sleeping in a hammock.
The same in the mountains (French Pyrénées), hiking but not too hard.
What’s still on your bucket list?
Too many things. Maybe, at the top, spend more time with my close friends and my family.
What is the best advice you ever got?
“Don’t reply to ‘angry’ emails, pick-up your phone or, even better, go and see the person. Talk to her/him.”
Another piece of advice that I’m working on is “listen to yourself, more”.
When did you start using PostgreSQL, and why?
I started using PostgreSQL in 1997. I was at university, working on a student project, and wanted to explore the database world with an engine that handles data integrity correctly.
Later, when I started to work, I chose to use PostgreSQL as the default RDBMS for my development projects. In my developer past, one of my most critical uses of PostgreSQL was a complete flood alerting system. This critical system was collecting lots of environmental metrics and stored them into PostgreSQL. Performance and stability was the keystone of such a system which aimed to be a life saver for a lot of people.
Do you remember which version of PostgreSQL you started with?
As far as I remember, it was something like Postgres95, then PostgreSQL 6.x. One might see me as a dinosaur in some kind of way!
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I started studying electrical engineering and industrial computing in the first years of university. As I was really interested in computer science (rather than analog electronics and electricity-related tech), I decided to focus on computer science for 3 more years. Then I started a PhD, which I never finished, focusing on multimedia QoS on high-speed networks. Most of what I studied from the first year to the last helps me every day in my current work: knowing how computers really work from the bare metal up helps me when I need to squash some performance issues. Developing applications, scripts and build environments is quite a direct application of the knowledge I acquired at university.
What other databases are you using? Which one is your favorite?
I had to work first with MySQL/MariaDB, then Oracle Database then Microsoft SQLServer. Do I have to tell which is my favourite (you know the one with Slonik as a mascot ;-) )
On which PostgreSQL-related projects are you currently working?
All my work is focused and related to PostgreSQL. I work in a company which helps our clients use and optimize PostgreSQL use. We provide advice on applications, performance enhancement, architectural design, and support and training.
How do you contribute to PostgreSQL?
I once wrote a tiny patch but it’s only for the record. My main contribution is not about code, rather bringing PostgreSQL people together: a number of years ago I created (with a few other people) PostgreSQLFr, the French-speaking PostgreSQL community. I also speak in local conferences and meetups in France. In the past I also helped to translate into French the fine PostgreSQL documentation. When I became the father of 2, then 3 children, I reduced my involvement, but I still try to talk in public conferences when possible.
What is your favorite PostgreSQL extension?
No surprise, since the beginning of PostgreSQL Person of the Week, the same extension is promoted : pg_stat_statements, which is a mandatory extension if you want to do serious PostgreSQL.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
It’s too reliable, meaning less work for companies like my employer! Seriously, maybe more observable and historicized performance data would be welcome. This can be done by external tools like pgWatch2 from Cybertec, but an in-core configurable period historicization of performance data would be interesting. Maybe a good way to start is to create an extension for this?
What is the feature you like most in the latest PostgreSQL version?
Each release of PostgreSQL comes with exciting features. From my point of view, all features dealing with performance improvement are welcome. PostgreSQL 13 has btree index deduplication, PostgreSQL 14 will soon come with a huge number of performance improvements like snapshot scalability improvement allowing a larger number of connections to be handled, better performance on COPY, LZ4 compression on TOAST, bottom-up index deletion to limit index bloat.
If you want to improve performance, you also have to be able to measure and monitor. PostgreSQL has a lot of monitoring tables. PostgreSQL 14 comes with a new table which makes it possible to monitor backend memory usage and the frequency of context switches.
Could you describe your PostgreSQL development toolbox?
I’m not really focused on a specific tool. As an IDE, I recently tried VSCodium, the open source version of Microsoft VS Code, which I find quite interesting and powerful. I use it to crawl around in the PostgreSQL source code tree. I often use neovim to edit code or scripts on remote machines. I also like tmux and tmate a lot.
I also use DBeaver which is a great tool to connect/query databases (any kind provided they have a JDBC driver) when dealing with database migration (to PostgreSQL naturally).
My preferred tool remains psql, the PostgreSQL command line interface, which is the most powerful tool you will find dealing with PostgreSQL.
Which skills are a must have for a PostgreSQL developer/user?
You have to be curious about how it works under the hood. There’s nothing magical in computing and sometimes you have to know how problems are tackled by digging into the code to get the best result. No need to be an expert in database engine development. The PostgreSQL source code is well commented and very clear.
Do you use any git best practices, which makes working with PostgreSQL easier?
git is my everyday friend, life saver, bug squasher. I cannot imagine using another (D)VCS. There is no other best advice than to start using it.
Which PostgreSQL conferences do you visit? Do you submit talks?
PGConf.EU is the conference I like a lot. I can meet, see, and hear all the people of the community. I miss this conference and the people a lot.
Do you think Postgres has a high entry barrier?
Well, it’s difficult to reply to this question. It depends a lot on your technical background and history and what kind of task you want to achieve with PostgreSQL.
PostgreSQL is easy to install and configure for general-purpose use. Then things get more complicated when you wish to focus on more advanced system architectures: replication, synchronous/asynchronous, promoting, switching, etc. Those problems are not PostgreSQL-specific and can be quite difficult to handle per se. PostgreSQL does not add any complexity layer to those problems. It’s quite easy to comply with the designed architecture plan and to make sure everything works fine.
It’s the same thing for performance tuning. Once you know how things work, PostgreSQL makes it easy to observe issues and this helps you a lot in your problem analysis.
Likewise concerning the source code. If you know how to write code, and how to build an application, PostgreSQL’s code is clear and really well commented. But if you want to contribute to code, you have to discuss with other contributors first what you want to achieve and how you intend to implement it. Just like, well, if you want to extend a house, better ask the inhabitants what they want before starting to build new walls. This seems pretty natural, doesn’t it?
So there’s no high entry barrier in PostgreSQL. The entry barrier is located in “your job know-how” rather than PostgreSQL itself.
One last word (but not the least) would be about the community. The PostgreSQL community is an open and welcoming community. Really open. You can ask questions, discuss different things no matter your technical skills, or any personal specificity. You can rest assured that the community will take care of you with its code of conduct. Be sure you will quickly make friends into the community if you join us.
Do you think PostgreSQL will be here for many years in the future?
I strongly agree with Bruce Momjian: PostgreSQL will live forever. This is no mantra, this is a truth. Just read his slides.
Would you recommend Postgres for business, or for side projects?
I would recommend PostgreSQL for both. This is a great database engine that can cope with lots of data management use cases and workloads.
Are you reading the -hackers mailinglist? Any other list?
I read the -hackers mailing list, though not all threads. I try to keep up to date with feature proposals, architectural evolutions and try to understand issues when they arise.
What other places do you hang out?
I’m on Telegram but do not participate a lot. I used to be on IRC on both #postgresql and #postgresqfr. I must admit I have a lot to do in my daily professional support and less time to support the community, but sometimes I’m able to help.