Modern systems built for the desktop, the web, and the cloud are increasingly being developed in several languages, share code and data with multiple parties of varying levels of authority and trust, and run in environments split across client and server. My goal is to design programming language tools — including type systems, program analysis, dynamic instrumentation, and integrated developme...