Skip to main content

Why Postgres

I thought long and hard about which primary database to use.

I've had years of experienced with both SQL and NoSQL databases, specifically Postgres and MongoDB.

I have much more experience with MongoDB so it was the first I wanted to go with but I then though about other factors.

Q: What will be the size of the team? A: As small as possible.

Q: What slows down teams the most (in my experience)? A: Inconsistencies in code and data.

Q: What speeds up teams the most? A: Consistency of coding standards, good planning, and knowing exactly what and how we are executing our plans.

Every company I've worked at eventually slows down because of lack of consistency, lack of clear planning (usually scope creep), and relaxing coding standards in order to get things delivered quickly.

Every company I've worked at eventually has bad data practices.

  • Foreign keys get put into arrays.
  • Naming conventions aren't followed.
  • Bad data structures are preserved because this data touches so much of the codebase that it becomes impossible to refactor.

Also, any database can get disorganized, MongoDB or Postgres, and I have seen it happen often.

Schema-less or schema-full, if discipline slips, chaos creeps in.

When your team is small, you don’t want to rely on discipline alone to enforce order, you want the early systems you chose to enforce order for you.

So with all that in mind the choice is obvious. Postgres enforces order on us and for any company, especially one with a small team, this is something we need.