CV

Curriculum Vitae

Would you like me in a PDF?

Education

Massachusetts Institute of Technology
Computer Science and Artificial Intelligence Laboratory
Incoming Ph.D. student in Computer Science
September 2025 - ???
Advisor: Daniel Jackson

Columbia University
B.A. in Computer Science and Mathematics
September 2019 - December 2023

Coursework
  • Language Design
  • Type Theory
  • Program Synthesis
  • Formal Verification
  • Analysis of Algorithms
  • Compilers
  • Formal Semantics
  • Systems Programming
  • Computer Systems
  • CS Theory
  • Cryptography
  • Algebraic Topology
  • Topology
  • Analysis of Boolean Functions
  • Representation Theory
  • Modern Analysis
  • Modern Algebra
  • Honors Math

Research

Composable Systems Lab · REUSE @ Carnegie Mellon University
May - August 2023

Designed benchmarking experiments to evaluate the performance of Collabs in real-time collaborative rich text editing. Work presented in the REUSE poster session. Advised by Heather Miller and Matthew Weidner.

Edwards Lab · Columbia University
September 2022 - May 2023

Studied optimization of reference counting in the SSLANG compiler. Advised by Stephen Edwards and Emily Sillars.

Making and Knowing Project · Columbia University
June 2020 - June 2022

Developed specialized textual analysis tools in Python to facilitate digital humanities research. Designed 2 websites to exhibit ongoing projects and editorial discussions, using Pandoc, Jekyll, Haskell, and JavaScript for static site generation. Used Google Drive API to archive and organize 9 years of student lab reports and scholarly essays. Advised by Naomi Rosenkranz and Terry Catapano.

Laboratory for Physical Sciences · University of Maryland, College Park
June - August 2019

Analyzed electron scattering in solids using physics simulation software and Python. Built a device to streamline experimental process by measuring solution concentration using optical lasers. Advised by Bruce Kane.


Industry

Software Engineer · Nectry
February 2024 - present

Software Engineering Intern · CertiK
June - August 2022

Developed a SMT-based formal verification tool for automatic verification of Solidity smart contracts using Python and Z3.


Papers

Collabs: A Flexible and Performant CRDT Collaboration Framework.
M. Weidner, H. Qi, M. Kjaer, R. Pradeep, B. Geordie, Y. Zhang, G. Schare, X. Tang, S. Xing, and H. Miller.
arXiv preprint, 2023.


Teaching

Teaching Assistant

Fall 2023 CSEE 6863 Formal Verification
COMS 4995 Parallel Functional Programming
Fall 2022 COMS 4115 Programming Languages and Translators

Private tutor · COMS 1004 Introduction to Computer Science and Programming in Java
September 2019 - December 2023

Provided one-on-one private tutoring for undergraduate students in introductory computer science courses.

Instructor · CodeAdvantage
July - December 2020

Taught 3 introductory programming courses for middle school students. Developed new curricula.


Projects

Slyce: a dependently-typed programming language type-checker
Types, Languages, and Compilers

Project partner: Raven Rothkopf. Implemented a type-checker for a dependently-typed programming language in Haskell.

SMT-powered model checker for LLVM
CSEE 6863 Formal Verification of Hardware and Software Systems

Project partner: Marcus Min. Designed implemented a model checker targeting a subset of LLVM with computation tree logic (CTL) as the specification language. Written in Python and C++ using cvc5 as the backend solver.

Josh: an imperative programming language
COMS 4115 Programming Languages and Translators

As a team of 5 students, designed and implemented an imperative programming language in OCaml. Compiles to LLVM.


Talks

A Taste of Homotopy Type Theory
MATH 3951 Undergraduate Seminars: Algebraic Topology in Data Science
November 2023

Interdisciplinary Programming Language Design
COMS 4995 Readings in Language Design
November 2023

The Early History of Smalltalk
COMS 4995 Readings in Language Design
September 2023

Topological Notions, Homotopy, and nth Homotopy Groups
MATH 3951 Undergraduate Seminars: Algebraic Topology in Data Science
September 2023

Digging for Fold: Synthesis-Aided API Discovery for Haskell
COMS 3997 Program Synthesis
May 2023

Semantics-Guided Synthesis
COMS 3997 Program Synthesis
March 2023

Vannevar Bush: Memex and the Endless Frontier
COMS 6998 Reading the CS Classics
March 2023

THRALL: SMT-based Reachability Analysis for LLVM
CSEE 6863 Formal Verification of Hardware and Software Systems
December 2022

The Varieties of Programming Languages
Formal Semantics of Programming Languages
October 2022

Automated SMT-Based Formal Verification of Solidity Smart Contracts
CertiK
August 2022

Josh: A typed language for the shell
COMS 4115 Programming Languages and Translators
May 2022

Social Choice: Noise Stability and Arrow's Theorem
Analysis of Boolean Functions
June 2021



Skills

Programming languages
Python, C, Haskell, OCaml, JavaScript, Racket, Rust, Java, Promela, MIPS, HTML, CSS.

Technologies
Git, Unix, Node, Next.js, React, SQL, Processing, AWS, Digital Ocean, Jekyll.


Other stuff

Philolexian Society
September 2019 - May 2023

Led satirical debate club as moderator. Also served as impresario. Responsibilities included moderating weekly debates, organizing public and private events, assisting with managing club finances, and being a liaison with the Philolexian Foundation Board.

Columbia Space Initiative
September 2020 - September 2022

Webmaster for club website.