I am looking for an industrial job related to any combination of programming languages, statistics, and education. I will be available for work starting from mid 2025. I have experience in reasoning carefully about formal semantics, designing teaching instruments, conducting user studies, applying statistical methods (e.g., GLM and model selection) to make informed decisions, building software systems used by people around the world, and working on "real" software systems (in particular, industrial type-checkers and compilers). My ideal job would be designing and building reliable and (either logically or empirically) effective software systems that make an impact.
I am a 4-th year PhD candidate, at Brown University, advised by Shriram Krishnamurthi, and doing research on Programming Languages and Computing Education, and their intersection. During my PhD, I interned with the compiler team at RelationalAI. I earned my master's degree at IU and my bachelor's degree (in Bioinfo) at SJTU

At RelationalAI, I worked on optimization and the design and implementation of higher-order relations.

I was an M.S. in Computer Science at Indiana University. I worked on Gradual Typing with Jeremy Siek, and, separately, Relational Programming with Dan Friedman. Jeremy advised my master's thesis.

I was a Bioinformatics undergrad at Shanghai Jiao Tong University, advised by Chaochun Wei.

Ongoing Projects

SMoL Tutor: an intelligent tutoring system for teaching the semantics of programming languages (i.e., how programming languages "work"). This system has been used at Brown and a few other institutions around the world. Please contact me or Shriram to get a copy of the system.

Stacker: a notional machine (a graphical presentation of how computer programs execute). This notional machine is designed to help students form good mental models of scope, mutable variables, mutable data structures, and first-class functions.

Publications

Distinguished PaperIdentifying and Correcting Programming Language Behavior Misconceptions OOPSLA 2024

What Happens When Students Switch (Functional) Languages (Experience Report) ICFP 2023

Gradual soundness: Lessons from Static Python Programming 2023

Editors' ChoiceTypes for Tables: A Language Design Benchmark Programming 2022

Higher-order Logic Programming with λKanren μKanren Workshop 2021

Equivalence of Cast Representations in Gradual Typing Master's Thesis

Hypercoercions and a framework for equivalence of cast calculi WGT 2020

Towards a miniKanren with fair search strategies μKanren Workshop 2019

EUPAN enables pan-genome studies of a large number of eukaryotic genomes Bioinformatics 2017

RPAN: rice pan-genome browser for ∼3000 rice genomes NAR 2017