My main passion 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 also interested in general topics about type theory, language abstractions, program analysis, compiler construction, concurrency and intelligence.
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.