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, your hobbies and where you are from.
I’m Lætitia from France, near Lyon. If you can’t say my name because it’s too difficult, it’s ok. You may use ‘Joy’ if it’s easier for you. I like savate boxing, running and learning. I love listening to both rock and classical music, as long as it sounds “positive”.
Any Social Media channels of yours we should be aware of?
When did you start using PostgreSQL, and why?
I started using Postgres in 2007, when I worked on a “large” (at the time) geographical database for IGN (National Institute of Geographic and Forest Information in France). I had to develop an algorithm to make Postgres able to search city names that sounded like the name provided. It’s particularly tricky in French, a language who loves adding mute letters in city names (and any other words too!).
Do you remember which version of PostgreSQL you started with?
We were working with Postgres 8.1. There was no streaming replication at the time but we were able to keep a warm standby up-to-date with log shipping. We had a BI database that was open for reading during the day. Of course, as hot standby didn’t exist at the time, it needed to be rebuilt each night. We also had another project installed on a Heartbeat cluster and it was pretty efficient for high availability, even if it wasn’t so good with data loss (we had some interesting time with split brain situations).
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I studied in an engineering school in France, INSA Lyon, and I guess that institute would be called a ”university” in another country. I chose to specialized in IT and never regret it. The most useful skill I learnt at university is being able to adapt and learn in any situation, but I also got the foundations in math (Galois theory and group theory, relational algebra) and databases (data modeling up to the 5th normal form, basic SQL, basic Oracle instance management). I also learnt several languages of several paradigms: logic languages, functional languages, object oriented languages, procedural languages… I even learnt real-time programming! With that diversity, I found out that learning a new programming language is not different from learning a foreign language, except that the grammar is simpler and the vocabulary is limited, but the machine won’t try to guess what you mean if you make a mistake.
What other databases are you using? Which one is your favorite?
I learnt how to be a DBA on Postgres databases, but I quickly had to learn Oracle, SQL Server and even some DB2 (AS400, z/OS and UDB). I decided in January 2017 to focus my career exclusively in Postgres, because it’s such a delight working with it!
On which PostgreSQL-related projects are you currently working?
I wrote a few patches for the Postgres project and I make students test PostgreSQL tools like pgBackRest by asking them to try to use them just by reading the doc. They’re really creative at misunderstanding documentation or finding bugs!
How do you contribute to PostgreSQL?
I wrote a few documentation patches for the PostgreSQL project. I also wrote a code patch to allow PostgreSQL to natively support hyperbolic functions. I’m working on two other patches. I’m not a developer and publishing my code is really difficult.
Any contributions to PostgreSQL which do not involve writing code?
I’m part of the Postgres Women initiative. The main goal is to bring more women into the database world or into Postgres world. I’m a member of Postgres funds and Postgres advocacy. I’ve been elected at Postgres Europe board. I’m co-organizer for Postgres Lyon User Group Meetup. I was a member of Postgres Code of Conduct Committee for one year. I was mentor for Google Code-In Contest for Postgres back in 2018 and I also was a mentor for the Google Season of Docs, still for Postgres.
What is your favorite PostgreSQL extension?
As a consultant who does only short-term mission and is not allowed to change anything on the system I’m auditing, I can’t say I have a “favorite extension”. Of course, I advise my customers to use pg_stat_statements to monitor their performance and, when they have bloat issues, I recommend using pg_repack or pg_squeeze, but I think we really need to look at what the application wants to achieve to find the best way to do it, with or without extension. I love “funny extensions” like pg_carbonara to make Postgres give you the real carbonara recipe or pg_crash which will kill processes until postgres crashes to test your high availability architecture.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
I think the most annoying thing is that data need to be upgraded when performing a major upgrade. Without that extra step, I think I would more easily convince my customers they need to upgrade their cluster. Of course, if that change was easy, it would already be done!
What is the feature you like most in the latest PostgreSQL version?
I’m always impressed by performance improvement in each new major version of Postgres. You might think that we’ll reach a point where improvement will become undoable, but after 25 years of development, new (and old) brains still find new ways to make it better!
Could you describe your PostgreSQL development toolbox?
I like command line tools. So, I use vim (along with a great .vimrc) and I compile simply with gcc. I use tmux to share my terminal screen. When I work with SQL queries, I split my screen in two. I open an SQL file with vim and I have psql on another pane, so that I can describe tables, and test simple queries. But noone works on a single thing at a time, do they ? That’s why, most of the time, my screen is split in 4 panes.
Which skills are a must have for a PostgreSQL developer/user?
I think there’s no mandatory skill to become a Postgres developer/user. You can learn whatever you need when you’ll need it. What you will need is some personal capacities like the will to learn, some patience and determination.
Do you use any git best practices, which makes working with PostgreSQL easier?
I’m not good at all with git, but luckily, I don’t have commit permissions on the PostgreSQL project, so there’s no way I can create a disaster there!
Which PostgreSQL conferences do you visit? Do you submit talks?
I go to a lot of conferences. I submit a lot too. Giving a conf talks is to me the best way to learn new things. Once you’ve been selected, you can’t escape. You need to learn everything you can to be able to deliver a good conf talk.
Do you think Postgres has a high entry barrier?
Postgres works better with command lines. For a lot of people, it means changing their habits and that’s difficult even though Humans beings are really great at adapting. But don’t forget the community is there to help!
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
A lot of people began by reviewing code. I found out that it didn’t work for me. Then, I had a great advice from Dimitri Fontaine: “Make Postgres more SQL-compliant”. If you look at Markus Winand’s website you’ll find a lot of features that are not necessarily difficult to develop and that are still missing in Postgres.
Do you think PostgreSQL will be here for many years in the future?
Of course, I think PostgreSQL has a brilliant future (but is my opinion objective?). The thing I’m sure of is it can’t be bought. It will stay a real open-source community.
Would you recommend Postgres for business, or for side projects?
If you’re serious about your data, you should use PostgreSQL. If your data are expandable, do whatever you like!
Are you reading the -hackers mailinglist? Any other list?
What other places do you hang out?
Which other Open Source projects are you involved or interested in?
I don’t contribute to other open source projects. Time is not an infinite resource and you need to choose your battles carefully.