This document provides an overview of test driven development (TDD). It explains that TDD is a technique for designing and developing software based on three pillars: implementing exact functionality, reducing defects, and producing modular reusable code. It describes the TDD process of red-green-refactor cycles and writing tests first to define requirements and drive code development. An example problem of validating emails is used to demonstrate TDD in action through iterative test writing and code changes. Key aspects of TDD like test frameworks, the testing algorithm, and end goals are summarized.