Keith Fiske

Tags:   postgresql    extensions    partitioning    conferences    crunchy   
Category:   Interviews   
Interviewed 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.

I’m originally from Pennsylvania but moved to Maryland around 2000 and have lived here ever since. I’ve been a Senior Database Engineer with CrunchyData for almost 4 years now.

Keith Fiske

Keith Fiske

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

I’m an avid video and board game player and enjoy not just playing games at home but traveling to events around the country involving them (meetups, conferences, etc).
I got a motorcycle a few years ago and enjoy taking trips around the area with local riding groups.
In the last few years I’ve also grown quite a collection of one of my favorite toys growing up: Lego.I’m more a fan of building the sets than making my own creations. And now that I have the means to buy some of the bigger sets I could never have as a kid, it’s something I have to be very careful I don’t spend too much money on when I see something that really triggers that nostalgia.

Any Social Media channels of yours we should be aware of?

Last book you read? Or a book you want to recommend to readers?

Currently reading some of the newer stories in Neil Gaiman’s Sandman Universe. And lately I’ve been reading anything new that comes out from Peter F. Hamilton. Highly recommend him to any science fiction fans.

Latest movie you saw? Current tv shows you are watching?

Latest movie I saw was Tenet

Currently watching The Expanse, Mandelorian and My Hero Academia

I honestly don’t watch nearly as much tv as I used to either. My current primary form of entertainment is actually Being able to interact with people, especially being stuck at home so much more lately, is a lot more enjoyable than just sitting there passively watching things.

How would your ideal weekend look like?

I don’t really have one particular ideal. I’d be just as happy going for a bike ride (motorcycle or bicycle) as I would staying home playing video games or having some friends over for board games.

What’s still on your bucket list?

Mostly just traveling to places around the world just to be able to say I’ve been there. Even more motivated to do that now that I’ve been stuck at home for nearly a year without being able to travel.

When did you start using PostgreSQL, and why?

At a previous job we needed to find a new ticketing system to use. I’d been playing around with MySQL a lot with Wordpress and some other web applications, but at the time I was interested in trying something new. We’d settled on OTRS and I saw it supported PostgreSQL so I figured I’d give it a try.

Do you remember which version of PostgreSQL you started with?

It was either 8.2 or 8.3.

Yes, but it was stretched out over quite a long period of time due to work and other commitments. I ended up with an Associates in Computer Science. I can say that it did help me quite a bit since I was able to pick some courses that directly related to the work I was doing at the time and I still recall some of those fundamentals being relevant today.

What other databases are you using? Which one is your favorite?

I don’t use any other databases besides PostgreSQL too extensively. I do use Redis as a caching server in Nextcloud, but that’s about it.

pg_partman has been my biggest project that I’ve worked on and still maintain. I’ve also been working on a monitoring platform called pgMonitor . I center its development around PostgreSQL monitoring, but there’s nothing stopping it from being used to monitor anything since it’s using already existing monitoring utilities (Prometheus & Grafana). I’ve also been helping to develop some high availability solutions for PostgreSQL using Patroni & Ansible.
I also work on many other small projects around PostgreSQL and that is what I enjoy doing the most. Some others are, pg_bloat_check , PGExtractor & pg_jobmon . I’ve got many other ideas for small tools if only I had the time to work on them.

Any contributions to PostgreSQL which do not involve writing code?

I enjoy doing training and classes to teach people how to use PostgreSQL. I also regularly attend and speak at conferences and local meetups.

What is your favorite PostgreSQL extension?

pg_partman of course.

Outside of my own, pg_stat_statements and pgstattuple from contrib. Outside of contrib, I’ve never gotten to use it yet myself, but PostGIS has always really impressed me.

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

No global indexes. It’s beyond my current ability to be able to contribute any fixes for it, and I’ve heard it is not an easy problem to solve.

What feature/mechanism would you like to see in PostgreSQL? And why?

The pluggable storage mechanisms that are currently in the works are probably what I’m looking forward to seeing the most right now. The JSON datatype really opened up PostgreSQL’s usability in the NoSQL world. I think the pluggable storage will do some really amazing things for its current scalability concerns.

Could you describe your PostgreSQL development toolbox?

I’m a very simple person on this topic. Just vim (without any really fancy plugins) or any plain text editor as long as it has syntax highlighting. Since I do a lot of plpgsql work, the pgTAP testing suite is probably one of my most used tools when working on extensions.

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

PGCon and PostgresOpen are the two I regularly attend that are part of the regular PG circuit. I also submit regularly to SCaLE (Southern California Linux Expo) and All Things Open. Locally I attend the Baltimore & DC PG Meetups as well as CALUG (Columbia Area Linux Users Group). If I have any talk ideas, I definitely submit them wherever I can.

Do you think Postgres has a high entry barrier?

I do. But I think that’s the case with any project that is primarily maintained by engineers and doesn’t have any sort of dedicated team whose primary goal is trying to solve that entry barrier issue. That’s not to say we don’t have people in the community that are trying to do that, because we most certainly do. But a team of volunteers is a lot different than a team who’s sole, paid profession is documentation, ease-of-use, and marketing.
Once you can get past that initial barrier, though, I think it is far more user friendly for people that just need a reliable database to get their work done.

What is your advice for people who want to start PostgreSQL developing - as in, contributing to the project. Where and how should they start?

I would say one of the best ways to get started is to attend a meetup group or conference that happens to be in your area. While I did take some initiative to try and learn it myself when the opportunity presented itself at my job, I would say attending the PG East conference in NYC many years ago is what really got me pulled into the community and development. Not only did I get to meet people I’d seen in passing on mailing lists trying to get support, it’s how I got my first job as a dedicated DBA!

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

Most definitely.

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


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

I try to keep an eye on the novice, -general and administrative mailing lists myself since I’m not deep into working on the PG backend. I do definitely take advantage of the access to the core team that the hackers mailing list provides. I think that access is one of PostgreSQL’s strengths.

What other places do you hang out?

IRC & Slack .

Which other Open Source projects are you involved or interested in?

I’m a heavy user of Nextcloud and have been using it since it used to be Owncloud. It’s by far one of the most useful web applications I’ve ever come across for managing data syncing, sharing and backups.