Baby's first PGConf
A software engineer in a relational database conference
In the first week of October, I was fortunate enough to attend PGConf 2023 in New York City. It was a privilege not only to be able to watch many interesting talks and network with other engineers/DBAs, but also because I was one of the lucky ones to receive a Diversity Scholarship, which fitted perfectly at the moment since I am job hunting due to a layoff at my previous employer some months ago, just like many people in tech at the moment.
To be honest, I didn’t even know there was a whole conference about Postgres. I’ve been to several other tech conferences but most of them were related to a specific programming language, like PyCon for Python and RubyConf for Ruby. But I was excited to know more about it when I read a post on a PyLadies’ Slack channel. I’ve been working with Postgres for all my engineering life, but as a software engineer, a Postgres database is not something I think about every day. First because when I joined the company, the database was already there, and that’s probably going to happen in most jobs I ever start. Second, when using Ruby on Rails as I did at my last job, Rails has its own way of altering the database schema without any need to call psql command in the terminal or open Postico, the so-called Active Record Migrations. So for a long time, Postgres was not an elephant in the room to me (ha!), it was just like my roommate’s cat, which I know lives in the same house I do but I never see😿.
As time went by and my backend adventures became more numerous, I started to stare more and more at the terminal and call psql more often. But the thing about being a software engineer (and I know that can change from company to company, but unless you do DevOps work at your workplace this statement will fit you) is that most of our contact with a database develops through using SQL. That’s the reason why, during PGConf 2023, I really appreciated talks like Ryan Booz’s “Super-powered data transformation in PostgreSQL” which talked about ETL/ELT processes, CTEs, joins, COPY vs \copy among others. Also Claire Giordano’s talk “Map of amazing Postgres extensions you might not know about”, which mentioned some extensions I’ve worked with, like PostGIS, pg_stat_statements, and learned about a bunch of others, like pgvector (used for machine learning), pg_cron (allows to schedule jobs within a postgres db), unaccent (removes accents from text data type).
Also, as a software engineer, one thing I never had to think about is database management. So one interesting thing I learned in this conference was about the work of DBAs (DataBase Administrators). A good example of this type of work was mentioned at Chelsea Dole’s talk “It's not you, it's me: breaking up with massive tables via partitioning”. Maybe that’s because I used to work on a start-up whose db never scaled to the point of being worried about its size but I never heard anyone mentioning anything about partitioning a Postgres table. This talk was interesting for me to learn about the possibility of partitioning, the reasons why one should do it, the types of partitioning, the methods to do that, and how to observe the db state/help maintain the db in a healthy state.
It was a privilege to learn so much about a database that is one of the most popular around the world and it’s open-source! Almost 30 years after its creation at UC Berkeley, Postgres is still strongly adopted, from start-ups to bigger companies, and is still a nice-to-have knowledge for all software engineers.