Donald in Yunnan
Me visiting Yunnan

Research Interests

My research interests center around programming languages and software engineering. In my work I look to provide formal guarantees of program properties in a way that is meaningful for real-world application.

Recent Projects and News

  1. Delimited Continuations for WebAssembly (DLS 2020): WebAssembly (Wasm) is a rapidly growing compilation target for the web, but lacks support for user-level or multiplexed threads, as seen in Go. Currently such "threads" must be simulated, leading to a significant performance penalty for Go code compiled to Wasm. We resolve this by adding support for delimited continuations to WebAssembly, which allows for efficient expression of user-level threads, as well as many other interesting computation effects. This work was presented at DLS 2020.
  2. Serverless Computing (OOPSLA 2019): Serverless functions are super convenient, but the underlying cloud platforms (such as AWS Lambda) nondeterministically reuse or restart the containers inside of which code is run, leading to bugs in real-world code. We investigate under what formal conditions serverless functions can be expected to behave deterministically. This work was presented at OOPSLA 2019, and received a distinguished paper award.

About Me

Currently, I'm a PhD student at Northeastern University, where I study programming languages and software engineering. I'm advised by Arjun Guha and I'm a member of the Programming Research Laboratory. Previously I was a PhD student at UMass Amherst, where I was additionally advised by Yuriy Brun, and a member of the PLASMA lab.

However, I'm relatively new to Massachusetts, as I grew up for most of my life in California. For my undergraduate degree, I completed a double major in math and computer science at UC Davis. Meanwhile, I interned in industry for 3 summers, once at FileMaker, and twice at Apple, where I worked on the AppKit user interface library for macOS. After interning in industry I decided to pursue a PhD in computer science, and specifically programming languages, so I can work to drive the field forward in creating correct, safe, and secure software more easily.

Donald and Jessie on mountain
Jessie and I on top of 玉龙雪山

In addition to programming languages research, I like to somewhat regularly write blog posts about various topics, and I enjoy dabbling in machine learning, as well as abstract algebra and topology on the pure math side. Outside of academics I enjoy practicing martial arts (in particular Tai Chi, Wing Chun, and Taekwondo), playing music, and archery. I also love to travel with my amazing wife Jessie Lin to see awesome sights.