1) Choose languages that developers are familiar with, not the best tool for the job 2) Avoid microservices where possible, the operational cost considering devops is just immense 3) Advanced reliability / redundancy even in critical systems ironically seems to causes more downtime than it prevents due to the introduction of complexity to dev & devops.