Below is a selection of the current and past projects that I've built or contributed to. For other projects, please check out my Github and blog.
AOT compiler for a typed subset of Python3 called Chocopy, targeting various backends & IRs. The compiler is written entirely in Python and the source language is a subset of Python, the lexing/parsing are entirely handled by the `ast` module.
I tinker with this compiler from time to time for learning/experimentation/fun. Progress is documented on my blog.
Originally a tutorial for D3 v3 & v4 written by Square, I've forked and updated it for v5-v7. This new tutorial has been featured in various JavaScript related newsletters and publications.
I rewrote the data binding section to provide a good resource for beginners to learn how selection joins work in D3 v6 and later.
A browser-based pass & play chess game, using visuals from the Fire Emblem GBA games. Play it here! The project is written almost entirely using ReScript except for the rendering which is done using D3.js.
I wrote this project to experiment with ReScript and explore atypical use cases for D3.js.
Cornell has a custom CMS maintained by a team of students supervised by Prof. Andrew Myers. It has a rich set of features developed over the past decade, and is used by over 8000 students and course staff at Cornell.
I joined the team as a volunteer maintainer in January 2020, and have focused on refactoring and code quality improvements to legacy parts of the codebase. Additionally, I drove efforts to improve documentation and issue tracking, and helped develop onboarding guides.
A bytecode language implemented in P4 to run on programmable switches.
Stitch enables arbitrary computations, measurements, and modification of the network by programs encoded in packets.
This was originally implemented as the final project for CS 6114, but has been updated to support more features since then.
My third and final project in CDS; we worked with the Future of Learning Lab to build a webapp for visualizing pathways for courses/majors at Cornell, with a dynamic interface implemented in D3.
We implemented the backend in Go, and incorporated a graph-based course recommendation system based on 10 years of anonymized enrollment data provided by the registrar.
A compiler for Xi (a strongly-typed, imperative, procedural language) and Xi++ (its object-oriented extension), targeting x64 and implemented in Java.
We developed a dataflow analysis framework and used it to build several optimizations including register allocation, dead code elimination, copy-propagation, and common-subexpressions elimination.
This was the final project for CS 4120/4121, Cornell's infamous compilers practicum.
The 12-hour Club at Cornell reached out to me to build a custom interface to showcase their art and visualizations.
I worked with them for a few months and used D3 to build an interactive concept map with dynamically positioned nodes and Prezi-like navigation.
My second project for CDS; we built and visualized models to detect relevance and stance of a news article relative to a claim.
The primary goal was to increase transparency and interpretability of models and results.
We won an award from Sandia National Labs at BOOM 2019!
A travel destination recommender that returns destinations based on user's interests and preferences (activities, climate, local language/drinking age, etc).
It uses custom nicheness metric calculated using network structure of Wikivoyage to emphasize "hidden gems".
Originally built as the final project for INFO 4300.
Source code plagiarism detection software implemented in OCaml, inspired by MOSS.
Features configurable detection threshold & displaying sanitized versions of matching code segments.
This was originally a final project for CS 3110, but has seen a few updates since then.
My first project for CDS, unsupervised clustering and visualization of political journalists on Twitter.
Interactive Demos: agglomerative clustering · dendrograms · force-directed graph
The software platform for Minibot, Cornell Cup's educational robotics platform.
I helped implement the physics backend and optimized the frontend display for the virtual bot/obstacle simulator.