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’m Dave Page, also known as pgSnake on IRC, Twitter and so on. I grew up and continue to live near Oxford in the UK. I’ve been working on PostgreSQL for over 20 years, contributing (or hindering, depending on your point of view!) in many different areas of the project. I currently serve on the project’s Core and Sysadmin teams, and on the board of directors for PostgreSQL Europe and the PostgreSQL Community Association of Canada.
How do you spend your free time? What are your hobbies?
Mostly with my family doing, well, family stuff like playing with the grandkids, board games such as Scrabble and the Logo Game, watching TV, odd bits of DIY and so on. I play bass guitar - at present in a Tenacious D tribute band, though we’ve not been able to play together for over a year. I also (along with my oldest friend) run the stage crews for an annual music festival in Wales, which takes a bit of organisation throughout the year in preparation for the event.
Any Social Media channels of yours we should be aware of?
I try to keep Facebook for friends only - my general rule of thumb is people that I work closely with or have had a drink with. On other platforms my profile is more open:
Last book you read? Or a book you want to recommend to readers?
The last book I read was War for the Empire, by Raymond L. Weil who sadly passed away last year. For anyone interested in tech, I’d highly recommend reading Steve Jobs: The Exclusive Biography by Walter Isaacson which is a fascinating insight into Jobs and Apple.
EDB’s CEO Ed Boyajian recommended reading Endurance: Shackleton’s Incredible Voyage by Alfred Lansing last year, which I also thoroughly enjoyed despite it not being the sort of thing I’d normally read.
Any favorite movie, or show?
My favourite movie is probably Sneakers starring a whole bunch of big names with Robert Redford in the lead role. Aside from that, I’m a big sci-fi fan.
I spend far too much time watching TV series - favourites include Game of Thrones, Star Trek, Parks and Recreation and more. I’m currently binging Peaky Blinders.
What does your ideal weekend look like?
Friday night (yeah, that does count as the weekend) is date night with my fiance Claire, so a nice dinner out usually.
A rehearsal session with the band, blast around some country lanes on my motorbike in the afternoon, then an evening at the pub with Claire and our friends on Saturday. Sunday would be much more relaxed; a good roast dinner with all the family, then a lazy evening watching a good movie.
What’s still on your bucket list?
Many things! Trips to Australia, Hawaii, and Longyearbyen, learning to scuba dive and diving a reef or wreck, buying the bass rig and Harley I’ve always wanted.
What is the best advice you ever got?
Don’t eat the yellow snow.
When did you start using PostgreSQL, and why?
Around 1997. I was working as Head of IT at a social housing provider in the UK and we wanted to allow tenants to access their rent accounts and log property maintenance calls online, but the database behind our internal management system required a very expensive per-user licence - they didn’t have licencing options for website users back then. I hunted around for an alternate database to use behind the website (which would sync with the proprietary one) and looked at various different options before settling on PostgreSQL.
Do you remember which version of PostgreSQL you started with?
Yes! We eventually started work on the tenant information system using PostgreSQL 6.3.2.
Have you studied at a university? If yes, was it related to computers? Did your study help you with your current job?
I studied Electronic Engineering at Oxford Brookes University originally, and later gained an MSc in Information Technology from the University of Liverpool.
What other databases are you using? Which one is your favorite?
SQLite is awesome as an embedded database, and obviously I use EDB Postgres Advanced Server. I couldn’t possibly comment on which is my favourite; for PostgreSQL and EPAS, that would be like choosing your favourite kid!
On which PostgreSQL-related projects are you currently working?
My main focus at the moment is pgAdmin and a whole lot of legal work that falls in part on my plate.
How do you contribute to PostgreSQL?
Over the years in many ways, though there are some areas of the project that I used to be involved in but am no longer. In general at the moment:
- pgAdmin project management and development
- Behind-the-scenes work in the Core Team, PostgreSQL Community Association of Canada (the NPO that owns all the project assets such as domain names and trademarks), and PostgreSQL Europe.
- The website.
- The infrastructure (servers and applications) that the project runs on.
Any contributions to PostgreSQL which do not involve writing code?
Policy writing and liaising with lawyers mainly :-(. I also help organise various conferences and the PostgreSQL Developer meetings.
What is your favorite PostgreSQL extension?
Oooh, good question! Favourite overall is probably edb_wait_states, but that’s a non-free EDB extension to support wait state analysis in Postgres Enterprise Manager. It is awesome though. The one I use most is actually part of PostgreSQL, and that’s the pl/python3 procedural language. I’ve been experimenting with that a lot recently to add machine learning capabilities to databases using TensorFlow, and have been blogging about that. Having the ability to build stored procedures and functions in languages such as Python is incredibly powerful.
What is the most annoying PostgreSQL thing you can think of? And any chance to fix it?
Having a single transaction log for the entire database cluster. I’d love to have the ability to do point in time recovery or block replication on a single database in a cluster. Unfortunately it’s not likely to ever happen; there is just too much data that’s shared between all the databases in a cluster - think shared catalogs etc. just for a start.
What is the feature you like most in the latest PostgreSQL version?
PostgreSQL 13 was a release that had lots of great improvements, but no big headline new features as such - that’s a consequence of the “scratch your own itch” roadmap that’s inevitable with an open source project which is highly community-based. I’m always very impressed with the ongoing performance optimizations, particularly around parallelism and partitioning. FDWs have long been a keen interest of mine as well, and we continue to see improvements in that area.
Adding to that, what feature/mechanism would you like to see in PostgreSQL? And why?
Support for Microsoft Schannel and Apple Secure Transport. Building OpenSSL is a pain in the backside. I’m responsible for the PostgreSQL installers for Windows and macOS, and we often have to have out-of-cycle update releases because we have to ship OpenSSL in the packages.
Could you describe your PostgreSQL development toolbox?
On the rare occasions where I hack on PostgreSQL itself, I mainly just use vim and the Apple Xcode command line tools. For pgAdmin which is where I spend most of my time, I use PyCharm.
Which skills are a must have for a PostgreSQL developer/user?
The term “developer” can cover a wide range of skill sets in the PostgreSQL community. There’s such a wide variety of extensions, tools and interfaces that no matter what language or framework skills you have you can probably get involved in something that interests you. Obviously for either a developer or a user, an understanding of relational databases is useful.
Do you use any git best practices, which makes working with PostgreSQL easier?
Patches. I find the Github pull request mechanism to be cumbersome and unintuitive for anything more than simple things like documentation tweaks. I guess that’s because either way I need to pull any changes down to a local repository to test, and that’s just easier with a patch that I can “git apply” to a source tree.
Which PostgreSQL conferences do you visit? Do you submit talks?
I help organise PostgreSQL Conference Europe and am normally too busy to want to present a talk, other than the closing session which I traditionally present with Magnus Hagander. I usually present at EDB’s conferences, such as Postgres Vision and Postgres Build, as well as Postgres London which I usually co-host with Simon Riggs. I also attend PGCon in Ottawa and FOSDEM, but most of my time at those is taken up with in-person meetings and booth duty.
Do you think PostgreSQL has a high entry barrier?
It’s an “enterprise class” database, so it’s not for the inexperienced (like, say, Microsoft Access). That said, I don’t think it’s any worse than Oracle or SQL Server or DB2 etc.
Of course, that doesn’t mean that we shouldn’t continue to strive to make it easier; that’s why we made some changes to the download pages on the website last year for example, to simplify getting started for new users. We’re continuing to try to make improvements along those lines all the time.
What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?
Contributing to PostgreSQL can be daunting at first. The project has extremely high standards, and the database server code is very complex; new contributors often make the mistake of trying to dive right in and develop a big new feature, and fail pretty quickly. It’s much easier to start with some of the less obvious simple stuff; reviewing patches, improving documentation, fixing smaller bugs and adding small features etc. Build up your experience and move onto the more complex work over time.
Other people may prefer to contribute in other ways, such as working on tools, interfaces, and extensions, or contributing to the website, advocacy efforts, or conference organisation.
There really are ways that people of all skill levels and backgrounds can contribute.
Do you think PostgreSQL will be here for many years in the future?
PostgreSQL has around 30 years of history at this point, and I only see it getting stronger and more popular. I can see it still being in common use when I retire!
Would you recommend PostgreSQL for business, or for side projects?
Yes. In my work at EDB and on the project, I’ve yet to see a case where PostgreSQL genuinely couldn’t do the job. It may not do it in the same way as other databases, but there’s always a way; that’s a natural result of a solid core database that’s highly extensible and has a rich ecosystem of tools and extensions.
The one area in which I wouldn’t recommend using PostgreSQL is embedded databases. It’s almost certainly overkill in such situations - use SQLite instead.
Are you reading the -hackers mailinglist? Any other list?
What other places do you hang out?
I’m usually logged into IRC, but only listening to internal project channels. I find instant messaging to be too distracting to keep an eye on public channels on a daily basis.
Which other Open Source projects are you involved or interested in?
I’ve been playing with TensorFlow a lot recently; that’s very cool. I don’t really have much time for non-PostgreSQL project work though.
Anything else you like to add?
Nope. Answering all those questions was exhausting. I’m going for a coffee.