My research focus is to make programming in Scala safer by checking properties that are not captured by the core type system, e.g. proper initialization ordering, purity, immutability, linearity.
I’m interested in general topics about type theory, language design, program analysis, compiler construction, concurrency and intelligence.
I’m passionate about using programming language techniques to address performance, security, reliability, maintainability and productivity challenges.
Programming languages are languages that programmers use to represent and manipulate the world (not necessarily the physical world). Philosophers and linguists realize for a long time that languages have an impact on cognition, thinking and learning.
I believe advances in the human aspect of programming languages will help us better understand the success and failure of existing programming languages, as well as design better programming languages for safety, performance and productivity.