I’d be careful of anyone who says they’re a “postgres expert”; I respond the way I respond to self-proclaimed C++ experts: “oh yeah? tell me more”
Most are novices that have no idea how far the rabbit hole goes. I’ve been using postgres for about 25 years and every time I go to implement something with it I learn something new. I’m intermediate at best, and I’ve done things like rewrite the postgres wire protocols from scratch for internal use cases. This is especially true when I lean on the DB to take on new interesting roles (e.g. adding new operators for custom indexing of custom types, extending existing types in novel ways, adding new access methods, fun with foreign data wrappers, complex PITR and logical replication strats).
I'm a software engineer primarily. Postgres is another tool I like to use to solve data problems. I've used it as the backbone of applications in production at terabyte scale. I've architected and been responsible for the deployment of it, both on-prem and in "the cloud" (including the operations of PITR and replicated failover). I've written extensions for it, and hacked on the codebase for internal use.
I've read a bunch of the official documentation, and then read a lot of the source code to Postgres itself. I'd say source is the #1 place I go if I have questions that are specific, and then if I want philosophy I look for previous presentations by the Postgres team, or from the hackers mailing list.
Yah, I have had many projects where I could have used something else, but Postgres ended up being the perfect bag of tools to do what I needed. I've been very happy with it.
I can understand. I started to grasp the full potential of Postgres (but probably I'm still missing a lot) when I decided to use it for time series with the Timescale extension.
Most are novices that have no idea how far the rabbit hole goes. I’ve been using postgres for about 25 years and every time I go to implement something with it I learn something new. I’m intermediate at best, and I’ve done things like rewrite the postgres wire protocols from scratch for internal use cases. This is especially true when I lean on the DB to take on new interesting roles (e.g. adding new operators for custom indexing of custom types, extending existing types in novel ways, adding new access methods, fun with foreign data wrappers, complex PITR and logical replication strats).