Web development pushes us to our limits, not only of cognition, but, perhaps surprisingly, of character. Using the cardinal virtues as a framework, we can see that developers need courage to learn, temperance to prioritize goals, a sense of justice by which to discern, and wisdom to act. By being honest about where we lack virtue, implementing steps to develop character, and resisting shame, we can perform TDD on ourselves. This process can help us grow not only as coders, but as human beings.