Brilliant, practical talk on implementing a JS type checker: https://youtu.be/MuC8I1JBKv0 (including soundness tradeoffs and flow-based analysis)