This document discusses technical debt and provides examples of how it can arise. It defines technical debt as borrowing time against future work by taking shortcuts now. This can occur when requirements change and code needs to be refactored, or when non-core functionality is developed in-house rather than using existing third party tools. The document provides formulas to quantify technical debt and outlines strategies to reduce it such as refactoring, writing less fragile tests, and buying in components rather than recreating functionality.