Here’s a good talk on engineering principles at Google entitled Engineering for the Long Game.
My takeaways (paraphrased by me):
- Build your infrastructure so that engineers are running aggregate services instead of single machines.
- Any kind of standardization that can be put in early will probably pay dividends as it amortizes over time (naming, configuration files, statistic/informational endpoints, etc.).
- Don’t build a new system where an existing one will do (be skeptical on the “special requirements” that are being used as an excuse to bully the new system through).
- “Don’t let the weeds grow higher than the garden.” Instead of letting debt grow unchecked, perform constant maintenance on the sharper points that are slowing productivity.
Did I make a mistake? Please consider sending a pull request.