Welcome to my home page!
I am a fourth-year undergraduate student at
Princeton University majoring in computer science
and pursuing a certificate in applied and computational mathematics.
At Princeton, I have been fortunate to be advised by
Jérémie Lumbroso and
I am interested in theoretical computer science
research and education.
You can see some of my work below. My CV is available
Transversal Matroid Secretary Problem
Presented this paper about an online algorithms
for weighted bipartite matching to the Princeton Mechanism Design reading group. My slides can be found
An Exact Enumeration of Unlabeled Cactus Graphs
Presented how the split decomposition and the symbolic method can
be used to enumerate different families of cactus graphs
(Given at AofA 2017,
PDF of slides).
Random Generation of Binary Trees
An introductory talk on Boltzmann sampling for on-the-fly uniform
random generation of binary trees.
a workshop for high school computer science teachers,
PDF of slides).
Select Course Projects:
BringItDown: A Smart Download Manager
As the final project for a course on advanced computer networks,
we developed a multi-threaded download manager that resulted
in up to 50% speedup files compared to common commercial
download managers. We used regret minimization online learning
to dynamically segment a file into multiple chunks optimally.
This was a pair project, and my primary focus was on online learning.
You can find our final report
and the slides from our final presentation
TigerTrade is a web platform for
Princeton University students and faculty to buy and sell goods.
Developed with React/Redux on the frontend, and Go on the backend.
This was a group project, and my primary focus was the backend.
Analytic Combinatorics of Random Graphs
As the final project for a course on random graphs and networks,
I explored the applications of analytic combinatorics to deriving
limit laws in random graphs. My final report can be found
Subgraph Counting for Planted Clique Detection
As the final project for a course on advanced algorithms, we proved
that counting constant sized subgraphs cannot help to differentiate
between a truly random graph and a random graph with a planted clique
of size o(√n). Slides from our presentation can be found
During the summer of 2018, I was a quantitative trading intern at Jane Street
where I learned about mathematical and financial topics such as probability, market structure, and arbitrage through
project work, classes, and other activities.
During the summer of 2015, I was a software engineering intern at Bayan Co.
an Information Technology and consulting company specializing in large-scale web applications. I designed and implemented
a tool set to automate evaluation and blackbox testing of SAD (Bayan’s web attack detection and mitigation service); my
program emulatied human behavior, such as typing model, to evade SAD’s bot detection algorithm. Throughout the internship,
I used tools and libraries including Python, Selenium, PhantomJS, Click UI, Pillow, and Wireshark.
COS 597F: (Graduate) Open Problems in Algorithmic Game Theory
MAT 577: (Graduate) Topics in Combinatorics - The Probabilistic Method
COS 561: (Graduate) Advanced Computer Networks
- APC 550/ORF 550: (Graduate) Probability in High Dimension
- APC 527: (Graduate) Random Graphs and Networks
COS 521: (Graduate) Advanced Algorithm Design
COS 511: (Graduate) Theoretical Machine Learning
COS 488/MAT 474: Analytic Combinatorics
COS 451: Computational Geometry
COS 445: Economics and Computing
COS 433/MAT 473: Cryptography
- COS 423: Theory of Algorithms
- ECO 418: Strategy and Information
- MAT 375: Graph Theory
- ORF 363/COS 363: Computing and Optimization
- COS 340: Reasoning about Computation
COS 333: Advanced Programming Techniques
COS 326: Functional Programming
- ORF 309/EGR 309/MAT 380: Probability and Stochastic Systems
- MAT 204: Advanced Linear Algebra with Applications
- MAT 203: Advanced Multivariable Calculus
Feel free to email me at