PostgreSQL is my default relational database, and it’s behind six of the systems I’ve delivered on contract. It’s the one I’d recommend to most businesses unless there’s a specific reason not to: it’s free, it’s exceptionally reliable, and it does far more than most projects ever ask of it.
How I use it
Most performance problems I’m asked to look at are not database problems in the sense people expect. They’re a missing index, a query pattern that issues one statement per row, or a schema that made sense for the first version of the product and hasn’t been revisited since. Those are usually cheap to fix once someone actually reads the query plan.
I keep schema changes in version-controlled migrations that run as part of
deployment, so the database moves with the application rather than by hand at
the wrong moment. And I’ll use the parts of Postgres people forget it has —
JSONB, full-text search, window functions, materialised views — before adding
another piece of infrastructure to the system.
That last point is usually the one that saves you time. A problem solved inside the database you already run is a problem that doesn’t add a service for someone to operate, pay for and keep patched.
PostgreSQL work I’ve delivered
- Omnipresent — Postgres with asyncio and FastAPI on AWS.
- HOA Mailers — Postgres on AWS RDS, behind a GraphQL API.
- ElseWhen — Postgres behind Python services on Google Cloud.
Hire a freelance PostgreSQL developer
Contact me about your database work, whether that’s designing one from scratch, fixing one that’s become slow, or migrating away from something else.