Type driven design is a software design technique used in statically typed languages where you model a solution to a software problem by relying entirely on types and without actually implementing the solution. The advantage of using types is that it allows you to swiftly iterate on different designs without fully committing to any one design. Since writing types is a lot cheaper than writing implementations you can arrive to a more sound solution with a smaller time investment.
Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.