PhD Student in Computer Science
Princeton University
I work on mathematics for AI and the alignment of AI agents. I am advised by Elad Hazan and also collaborate with Sanjeev Arora.
Previously, I graduated from UC Berkeley with a B.S. in EECS (Honors) and a minor in Mathematics, with a 4.0 GPA and Highest Honors.
I am a PhD student in the Department of Computer Science at Princeton University. My research lies at the intersection of mathematics and machine learning. Specifically, I am interested in:
Before Princeton, I was at UC Berkeley, where I worked with Venkatesan Guruswami on approximation algorithms and promise CSPs, in the SLICE Lab with Vighnesh Iyer and Bora Nikolic on hardware verification, and at Lawrence Berkeley National Laboratory on muon collider physics.
I love teaching and have been fortunate to be involved in it extensively. At Berkeley, I received an average student rating of 4.95/5 (0.64 above the departmental average) and was recognized with the Outstanding GSI and EECS Outstanding TA awards.
Helped Ethiopian high school students learn to code as part of the AddisCoder program. Designed labs, exams, and helped over 50 students complete programming assignments in algorithms.
| Semester | Role | Course | Title |
|---|---|---|---|
| Spring 2026 | TA | COS 511 | Theoretical Machine Learning (Elad Hazan) |
| Fall 2025 | TA | COS 521 | Advanced Algorithm Design (Huacheng Yu) |
Undergraduate Student Instructor (uGSI), 2021–2024
Over 3 years, I served on course staff for 10 appointments across 7 unique courses, hosting discussions for a cumulative 300+ students, writing exam questions and homework assignments, and holding office hours and review sessions.
| Semester | Role | Course | Title |
|---|---|---|---|
| Summer 2024 | TA | CS 70 | Discrete Mathematics & Probability Theory |
| Fall 2023 | TA | EE 120 | Signals and Systems |
| Summer 2023 | TA | CS 70 | Discrete Mathematics & Probability Theory |
| Spring 2023 | TA | CS 189 | Introduction to Statistical Machine Learning |
| Fall 2022 | TA | EECS 126 | Probability & Random Processes |
| Summer 2022 | TA | CS 61C | Great Ideas in Computer Architecture |
| Spring 2022 | TA | EECS 16B | Designing Information Systems & Devices II |
| Spring 2022 | Reader | EECS 126 | Probability & Random Processes |
| Fall 2021 | Tutor | EECS 16B | Designing Information Systems & Devices II |
| Summer 2021 | Tutor | CS 61A | Structure and Interpretation of Computer Programs |
Ran weekly volunteer sections of 5–6 college students, teaching data structures and discrete math.
I have been deeply involved in mathematical outreach, writing problems and organizing competitions for high school and college students across the United States and internationally, including multiple math competitions in China.
Co-directing the competition and leading the problem-writing team for 450+ high school students.
Co-wrote the power rounds on Error-Correcting Codes (BMT 2022) and Zero-Knowledge Proofs (BMT 2023) for Berkeley's premier high school math tournament.
Co-wrote the power round on Computability (AMT 2023) for ASDAN China's high school math tournament, reaching students across China.
Writing and reviewing problems for the collegiate-level competition.
Contributing problems for high school contestants.
Writing and test-solving programming problems for Berkeley's high school competitive programming contest.
Developed the website for Berkeley's EECS honor society and volunteered as a tutor for college students.
Below are notes from courses I took at Princeton and UC Berkeley. These are my personal notes and may contain errors — use at your own risk!
Harnessed Meta's MusicGen model and OpenAI's GPT-4 to create novel soundtracks for writing and movie screenplay. Built with Django + React in 36 hours at the Berkeley AI Hackathon 2023.
Developed a novel graph streaming data structure for graphs with 10 billion+ nodes distributed across multiple servers. Written in C++ and benchmarked against existing solutions.
Optimized the dgemm routine in C++ using OpenMP, cache blocking, microkernels, and communication-minimizing algorithms.
A functional, random generative API for QuickCheck-like hardware fuzzing. Supports monadic composition, recursion, and introspection/correlation of random decisions.
Implemented a Git-like version control system in Java with file persistence, including support for merging and splitting multiple branches and remotes.
Occasional thoughts on math, machine learning, and whatever else is on my mind. Read on Substack.
Loading recent posts…