About Me

Hello! I'm a first-year PhD student at Cornell University working with Dr. Alexander Rush on problems related to natural language processing and machine learning. Last year, I worked as an AI Resident at Google. Before that I studied at the University of Virginia, where I majored in Computer Science & Mathematics. At UVA I did research in the Machine Learning Lab with Dr. Yanjun Qi. To read more about my academic work, please have a look at my Google Scholar profile.


Demystifying Noise Contrastive Estimation

Explanation of the Noise Contrastive Estimation algorithm and clarification of terminology. Also covers InfoNCE, a popular technique in contrastive learning.

Introduction to variational autoencoders

A primer on variational autoencoders (VAEs) culimnating in a PyTorch implementation of a VAE with discrete latents.

What are adversarial examples in NLP? (redirects to towardsdatascience.com)

Opinionated introduction to adversarial examples within the context of natural language.

Does Model Size Matter? A Comparison of BERT and DistilBERT (redirects to wandb.ai)

Comparison of two transformer-based NLP models, one big, one small.

Tracking HuggingFace Transformer Model-Training with Weights & Biases (redirects to wandb.ai)

Demonstration of the integration between two open-source packages, HuggingFace Transformers and Weights & Biases, and how to use them together to train NLP models.

How many minds do split-brain patients have?

Are split-brain experiments strong evidence that humans have multiple consciousnesses? Essay about Nagel, Parfit, and theories of consciousness.

Why the connectionist reply to The Chinese Room is not successful

Can artificial neural networks create semantics from syntax? Essay about connectionism, the Chinese Room, and artificial neural networks.

The Square-Sum Problem

A fun number theory problem: Given all of the integers from 1 to N, can you arrange all elements such that each adjacent pair sums to a square number?

The Paradox of Set Notation

A juvenile rant about set theory terminology.

Sorting with Color

A visualization of sorting algorithms, sorting randomized colors by hue. It's since been adapted into several top posts on Reddit.

Mapping the D.C. Metro

An interactive illustration of distortions in the Washington, D.C. metro map.

The Best Time to Post on Instagram

Quantitative analysis showing how to get the most likes on a popular social network.

Recreating the Star Wars Opening Crawl

Using CSS and single-point perspective to render the iconic Star Wars opening text crawl in the browser. (Warning: after some changes to CSS syntax in the past few years, it doesn't really work anymore.)

Traveling Salesman Art

Discussion of NP-hard problems, a cool color-based stippling method, and generating art by solving the Traveling Salesman problem.

Largest World Cities Over Time

Animation showing the world's largest cities through the ages.

Animation with K-D Trees

Implementation of K-D trees in Javascript and an animation showing the effect of log(n) nearest-neighbor search on performance.

Expected Salaries of NBA Players

A new metric for quantatitatively estimating the perfect salary for each NBA player. Who's overpaid, and who's due for a bigger contract?