About me
Email: ernest@cs.cornell.edu
GitHub: ngernest

Hi! I’m a second-year Computer Science PhD student at Cornell, working on programming languages research. I’m interested in functional programming, property-based testing (PBT), proof assistants and type systems.
This summer, I interned with the Automated Reasoning group at AWS, working on PBT infrastructure for Lean with Cody Roux, Mike Hicks and collaborators at UMD.
I did my undergrad at Penn, majoring in Math & CS. At Penn, I worked on PBT research, advised by Harry Goldstein & Benjamin Pierce. Before grad school, I worked in industry for a year as a data engineer.
Outside of PL, I enjoy playing the pipe organ and running.
Feel free to take a look at my resume, or the projects page on this site!
Research
-
Building an Interpreter for an Imperative Hardware Interface Specification Language
Nikil Shyamsunder, Francis Pham, Ernest Ng, Adrian Sampson, Kevin Laeufer
FMCAD 2025 Student Forum -
Mica: Automated Differential Testing for OCaml Modules
Ernest Ng, Harrison Goldstein, Benjamin Pierce
OCaml Workshop 2024 [Slides] [Talk Video] [Code]
Received 2nd place at the ICFP 2023 SRC (poster)
Other
Have we met before? I’d love to hear from you! I was at:
- NJPLS @ Cornell Tech / Princeton / Penn
- ICFP ’24 @ Milan (student volunteer)
- POPL ’24 @ London (student volunteer)
- ICFP ’23 @ Seattle (SRC participant)
- CMMRS ’23 @ Saarbrücken
- OPLSS ’23 @ Eugene
Teaching
I’ve served as a teaching assistant for the following courses:
Cornell:
- CS 3410: Computer Systems
Penn:
- CIS 1904/1940: Introduction to Haskell
- CIS 2400: Computer Systems
- CIS 3800: Operating Systems
- Software Foundations mini-course (abridged version of CIS 5000, part of Penn’s REPL program)
- CIS 5450: Big Data Analytics (Head TA, Fall ’22)
- CIS 5500: Databases