Failures are inevitable. Regardless of the engineering efforts put into building resilient applications and handling edge cases, one day, a case beyond our reach will turn a benign failure into a catastrophic outage. In this talk, I discuss practices teams can use to design applications for resiliency, and share some lessons learned, often the hard way, to prepare and recover faster from outages.