Backups are sacred! If you do not know if your backups are current, then test them by restoring the data and comparing.

Do not make many, tiny partitions, make a smaller number of larger partitions, instead.

Why change the system default when you don’t have to?

Think now so you don’t have to later (at 4am).

If you have to do it more than once, automate it. If you cannot automate it, document it.

Personality is for people, not for computers.

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” - Brian W. Kernighan

If you do not know what a machine will do when it is rebooted, then it is not production ready.

Unless you write an essay on why you need to do something “special” use the tools, procedures, techniques and resources the OS provided for you.

Remember the Mack Truck Scenario: If no one will be able to figure this out if you get hit by a Mack truck, then you’re doing something wrong.

Revision Control! Comment!

Log and rotate logs. Log remotely for best effect.

Simplicity is its own reward.

If you haven’t thought of at least one potential negative outcome of hitting enter at the end of the command you just typed; then you don’t understand the command well enough to use it on a production system.

Use a unique marker for names of packages that are locally developed. $domainname perhaps?

If you cannot enumerate every port that should be listening on a given machine; then it is not production ready.

If the host firewalling allows access to more ports than ABSOLUTELY necessary; then the host is not production ready.

If it seems like someone else would have encountered this problem before, they probably have. We do not live in a vacuum. Google for the answer