In what way is this guide 'humble'? Seems fairly self-confidently opinionated to me.
I'd agree. The advice to use NULL is usually harmful, and constraints are not high-performance.
One nitpick is that "user" is a reserved word in PG, so "users" is better.
Other than that, I'd agree with most suggestions. But I'd use MySQL. :)
Source: DBA.
Please don't use databases that don't support transactional schema changes. You will hate everything about it.
Facebook, Google, and many other companies run massive MySQL deployments and are doing just fine.
They do, and obviously it is workable, but I think every big MySQL org ends up with a tool/workflow like gh-ost: https://github.com/github/gh-ost which have their own set of challenges, like not playing well with foreign keys.