Peter Smith

Reading time: 9 minutes

Tags:   postgresql (170)   australia (2)   fast (1)   fujitsu (5)   postgres (12)   logical replication (4)  
Category:   Interviews   
Interview conducted 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.

My name is Peter Smith. Originally from New Zealand, I now live and work from home on the NSW Central Coast, just north of Sydney Australia. My employer is Fujitsu Australia Software Technology (FAST), and for the last couple of years I have been a member of Fujitsu’s PostgreSQL open-source team.

Peter Smith

Peter Smith

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

I spend some of my free time creating little computer coding problems/puzzles. To date I have authored about 100 of them. Other people have translated them into many different programming languages, and they have been “solved” more than 120,000 times. You can find my puzzles here. I also enjoy doing crosswords, especially cryptic ones.

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 have eclectic tastes and read a lot of novels. Whenever I discover an author that I particularly like, I end up collecting every book written by them, so there are shelves double-stacked full of Michael Crighton, David Gemmel, Stephen King, Lee Child, John Grisham, Vince Flynn, Robert Harris etc. My favourite book(s) are Patrick O’Brian’s Aubrey/Maturin Royal Navy historical drama series set mostly at sea during the Napoleonic Wars (e.g. think Master & Commander movie). I can’t recommend it highly enough - but be warned there are 20+ books so it is a year-long commitment to read them all (OTOH I have done that twice now and am already looking forward to the third time).

Any favourite movie, or show?

I don’t have favourites. I will happily watch any movie or television program (almost any genre except horror). I particularly like historical documentaries and period dramas. Hint: Learn to love subtitles; some of the best movies are the obscure foreign ones. Recently I binged the entire “UFO SHADO” sci-fi series set in futuristic 1980. The last time I saw this it was in black-and-white on the family’s 12-inch television, and 1980 really was in the future!

What does your ideal weekend look like?

My ideal weekend would be the middle of summer. The current La Niña would be a distant soggy memory, so the days would be hot and dry; family or relatives would be visiting for a BBQ lunch outside, and the lawn would not need mowing.

What’s still on your bucket list?

Two years ago, my wife and I were booked for a once-in-a-lifetime cruise of the Mediterranean with plans to visit London, Paris, etc. Then Covid-19 came, and everything got cancelled. I’d like to attempt a similar trip one day.

What is the best advice you ever got?

“Look after the pennies and the pounds will take care of themselves”. Probably I have received better advice, but it is this one that has stuck with me, and I keep coming back to it. By mangling this proverb and applying it to software, my interpretation is that it means to always be on guard against small inefficiencies, otherwise if ignored they will slowly accumulate until they grow big enough to bite you. For the same reason, whenever I see even trivial problems (e.g., typos in PG documentation or code comments) I like to try to fix them, because I feel that even insignificant annoyances, when there are enough of them, can give a (subliminal?) bad impression.

When did you start using PostgreSQL, and why?

In 2016 I temporarily joined a team working on the WebAdmin GUI administration tool for Fujitsu Enterprise Postgres. In that role I helped to make performance improvements for the interface.

Do you remember which version of PostgreSQL you started with?

No. But Google tells me it was probably 9.6.

I received a BSc (Hons) in Computer Science from Canterbury University in New Zealand. That was in the 80’s and looking back (as I write this answer) I noticed that my final project was using geographical mapping data fetched from INGRES (an ancestor of PostgreSQL). My study led me into the software industry in the first place, but it is all ancient history now and has no relevance for my current job.

I work mostly on projects related to PostgreSQL “logical replication”. Lately, I have been posting patch review comments to psql-hackers threads like: “Handle infinite recursion”, “Parallel apply”, “DDL replication”.

How do you contribute to PostgreSQL?

I contributed to PG15 by writing code or documentation for new features, but I have been most active recently posting review comments for patches written by my colleagues and other community members. Often when reviewing, I will stumble upon nearby bugs or typos and whenever that happens, I try to post a small patch to fix them immediately (see my “best advice” answer). I have also written some blog articles.

Any contributions to PostgreSQL which do not involve writing code?

Reviews, documentation updates, and blogs. See above.

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

Because I often find myself reviewing patches which include documentation modifications, I wish there was an easier way to preview the rendered HTML without having to apply the patch to regenerate the documentation myself just to see it. For example, if the cfbot could generate browsable PG DOCS that would be great. Probably there already exists some better way that I am unaware of – please teach me!

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

My favourite PG15 feature was the introduction of logical replication publication row filters. That is a biased answer because I had some association with it, but I do genuinely think that it has potential to be a very handy feature for some users.

Could you describe your PostgreSQL development toolbox?

On my Windows laptop I use:

  • Visual Studio Code – for browsing/searching source code
  • Beyond Compare – for diffing patch versions for reviews
  • CentOS VM – for development and reviews
    • git, vi, gdb
    • meld – for diffing source code for reviews

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

Having a good knowledge of C is essential. Apart from that just having a basic knowledge of SQL, good communication skills, and an inquisitive mind should be enough to get started as a PostgreSQL developer.

Do you use any git best practices, which makes working with PostgreSQL easier?

I don’t know the term for someone who is the opposite of a git “power-user”, but that is me. But I have found a small subset of git commands that have worked well for me thus far, so I just stick with those and hope for the best:

git checkout master
git pull
git rebase master misc
git log –oneline
git reset –hard HEAD~1
git format-patch -N -v1 -1
git status, git diff

Sometimes I also use “git blame” on GitHub to find the history of some code changes.

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

In 2019 I attended the PGDay Down Under (PGDU) in Sydney.

Do you think PostgreSQL has a high entry barrier?

Not at all. There are a plethora of tutorials and websites available everywhere to get you started. But sometimes it feels daunting to have so much information and not know quite which way to turn next. Probably that is a good problem to have – anyway, the best way to eat an elephant is to just start somewhere and take one bite at a time. If you get stuck there are plenty of mailing lists with people who can 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?

Start by reading the wiki to become familiar with the conventions. Next, I suggest just lurking on the -hackers list for a month to get a feel for what is happening. During that time, you are likely to see some patches where you might think “I could have done that”, or “that sounds interesting”, so use those posts as your inspiration. PostgreSQL is too big to have your fingers in every pie, so identify some niche that you are most interested in and concentrate on that. Start out with small contributions. When (not if) some of your posts are dismissed or your patches are rejected, don’t take that personally - just learn the reason why, and move on. Post review comments whenever you can. Patch authors are nearly always keen to get feedback from as many people as possible.

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

Yes. Even if the PostgreSQL core functionality eventually reaches some plateau, I think the ability for users to “extend” Postgres means it will continue to be here for a long time.

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

PostgreSQL has been my first real experience participating in an open-source project and in my brief time here, I have been constantly amazed at the amount of rigorous quality control measures in place, from all the review scrutiny that patches must undergo before they can ever make it into the official code, to the subsequent build-farm testing. That, combined with the rapid responses to reported bugs, and the guru-level of expertise on display in the posts to psql-hackers gives me lots of confidence about the high quality of PostgreSQL for any purpose. YMMV.

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

One of my roles is to watch the lists to identify any posts that might be relevant to my colleagues, so although I only communicate on -hackers, I am also subscribed to -bugs, -committers, and -docs.

Anything else you like to add?

Thanks, Andreas, for the interview invitation – after reading some other interviews on this site I find myself in very illustrious company. Thanks also to all my colleagues, community members and committers for helping me get some of my patches pushed, and to Fujitsu for giving me the opportunity to participate in this OSS adventure.