By designing for failure, building observability and treating everything as a hypothesis, you can build software that is ...