A practical tour of what type systems can offer you. We explore ideas that empower how you can write software: type safety, sub-typing, variance, algebraic data types and others.