I’m a research assistant in the Computer Science department at Columbia University working under Ronghui Gu and Suman Jana. I previously graduated with a BS from the same department in 2019 and graduated high school from Germantown Academy in the suburbs of Philadelphia. My primary research interests are in the intersection of machine learning and formal verification. Specifically, my focus is in designing machine learning techniques for automating deductive program verification in hopes of scaling the benefits of formal methods to large scale software systems.

Teaching I have been a teaching assistant in the CS department since 2017. I began as an Operating Systems TA (2017) manning the File Systems assignment. I have particularly enjoyed serving as a TA for Programing Languages and Translator Fall 2018 and Spring 2019 (Head TA). During my stint as a Head TA, I wrote an assignment from scratch to introduce students to OCaml and have lead 16 teams of students in designing their own domain specific language. I have additionally TA’d Computer Science Theory (2018) and served as a computer science and organic chemistry tutor for disadvantaged students in the center of academic advising. I have also prepared several lectures for the undergraduate math society and MIT Splash.

Current Projects:

  • CLN2INV :: We are developing a novel neural architecture based on continuous logic to infer loop invariants based on execution traces. Testing on the Code2Inv synthetic dataset, the model has demonstrated a significant improvement in average time per problem. We look to expand this system to handle nested loops so as to bridge the gap to real-world loop invariants.
  • PrograMet :: We design a program similarity metric based on edit distance to tackle the challenge of balancing static and dynamic metric contributions. So far the metric has shown promise in distinguishing dead code.

Publication:

Student Forum: