In this post I aim to give you a framework for how to reason about [errors and warnings] systematically, with lessons learned from my recent years of work on programming language tooling for thousands of engineers at Google.