Hard-won lessons from our engineering team about how to keep code type safe and improve developer experience using TypeScript.