My research interest spawns from programming languages and compilers to systems and architecture. I devote myself to the design of programming languages and compilers to make it easier for programmers to write correct and efficient programs.

I am currently working on the Zydeco project, which aims to provide an intermediate representation (IR) for high level languages that can be easily optimized and compiled to high-performance code. Based on call-by-push-value calculus, Zydeco’s stack-based computation model offers codata, a type designed to operate on the stack directly. The main goal of Zydeco is to type-check the stack and give a desirable intermediate representation and compilation target.