Projects & papers


Delta Binary Packed Decompression on GPUs

Tools/Languages: CUDA, C, C++, Python

Researched and implemented delta binary packing decompression on GPUs. Advised by Anil Shanbhag and Professor Sam Madden as part of the SuperUROP program and MIT Database Group. Funded by Lincoln Laboratory.


Approximately Counting Subgraphs in Sublinear Time

Investigated recent research on sublinear algorithms for approximately counting subgraphs. Worked with Luis Xavier Ramos Tormo and Justin Restivo. Final class project for 6.856 (Randomized Algorithms).


board2board

Tools/Languages: React.js, Node.js, Express, Socket.IO, OpenCV.js

Built a collaborative drawing web app that uses a computer’s webcam for object detection. Worked with Andrew Wei.


GENIE: GENe IndExer

Tools/Languages: C, C++, Python (scikit-learn)

Built a tool to improve exact search for DNA sequencing analysis using learned indexes - specifically, RMIs (recursive model indexes). Worked with Tony Peng and Ashwath Thirumalai. Advised by Sanchit Misra and Professor Tim Kraska.


Analyzing Loss Functions for End-to-End Automatic Image Colorization

Tools/Languages: Pytorch

Investigated the effects of loss functions on automatic image colorization using CNNs. Worked with Wonjune Kang. Code not posted because this is a MIT class project (6.819: Computer Vision).


Go Interpreter and Compiler

Tools/Languages: Go

Simple interpreter and compiler written in Go for a toy language. Supports data structures like integers, booleans, strings, arrays, and hashmaps; prefix, infix operators; index operators; conditions; global and local bindings; first class functions; return statements; and closures. Code based on this book.


N Chainz: Decentralized Cryptocurrency Exchange

Tools/Languages: Go

A high performance, decentralized cryptocurrency exchange written in Go. Worked with Nicholas Egan and Ryan Senanayake. N Chainz’s features include block generation, limit orders, and the ability to trade a base token with another token. Our team was one of the winners in the Binance Dexathon competition.


Optimizing GPU-based Database Algorithms

Tools/Languages: CUDA, C++

As part of the MIT CSAIL Database Group. Microbenchmarking newer generations of NVIDIA GPUs, including GeForce GTX Titan X. Modeling page table structure and TLB misses. Developing and optimizing performance of GPU-based database algorithms. Worked with Anil Shanbhag and advised by Professor Sam Madden.

(Work mostly in private repo.)


Raft

Language: Go

A fault tolerant key/value storage system. Specifically, a key/value service on top of Raft, a replicated state machine protocol. Code not posted because this is a MIT class project (6.824: Distributed Systems Engineering.)


Counting Up-Down Walks

Investigated counting up-down walks on the 2-D coordinate plane as final project for 18.200: Principles of Discrete Applied Mathematics.


tldr

I’m posting analyses of papers I’m currently reading. Inspired by The Morning Paper.


Investigating Non-Convex Optimization Algorithms for Matrix Completion

A reading project surveying the paper Matrix Completion Has No Spurious Local Minimum by Ge, Lee, and Ma [2017]. Final project for 18.434: Seminar in Theoretical Computer Science.


Firebase Backend Plugin for Mavo

Tools/Languages: JavaScript, HTML, Firebase

As part of the MIT CSAIL Haystack Group. Implemented Firebase backend plugin for Mavo web framework. Mavo adds data editing and spreadsheet-style formulas that permit the construction of full-fledged applications in a single HTML document. Worked with Lea Verou and advised by Professor David Karger.


PlanForMe iOS App

Tools/Languages: Swift, Xcode, Firebase, EventKit

An automated assistant that optimizes and organizes your schedule for you. It makes planning your day quick and easy, whether you have a lot of overlapping events or just want to prioritize your meetings and activities. You can:

  • Order your events by priority
  • Sort events into “Must do”, “Would like to do”, and “Don’t want to do” categories

PlanForMe:

  • Integrates with your calendars
  • Creates your plan for the day, taking into account each event’s category and priority

Just tap a button to add the plan to your calendar!


Miscolor iOS App

Tools/Languages: Swift, Xcode

Miscolor is easy to learn but hard to master. This is your chance to race against the clock, fight your instincts, improve your mental agility, and kill time!

Choose the color of the word that appears on the screen, not the word itself. You earn 1 point if you’re correct and lose 0.5 points if you’re wrong.

You have 15 seconds. Every time you choose 5 in a row correctly, you get 5 extra seconds!


Datahub

Tools/Languages: JavaScript, HTML, D3.js, SQL, Python, Express, Node.js

As part of the MIT CSAIL Haystack Group. Worked with Exhibit, Datahub, and CTS. Worked with Professor David Karger.


IHTFYP

Tools/Languages: Node.js, Express, MongoDB, D3.js, Google Maps API, jQuery, JavaScript/HTML

MIT’s future lost and found box. Semi-finalist in MIT’s annual Web Programming competition. MIT’s annual Web Programming competition. Worked with Leigh Marie Braswell.


Blizi (High school)

Tools/Languages: Python, SQL, AngularJS, jQuery, JavaScript, HTML

As part of the UW Networks Lab. Built a social web app on top of freedom.js, a decentralized P2P web framework. Worked with Will Scott, Raymond Cheng, and Bonnie Pan, and advised by Professor Tom Anderson.


D3.js Interactive Visualizations (High school)

Tools/Languages: Javascript, HTML, D3.js

Movie Sieve:

Celebrities’ Influence:


ALEx (High school)

Tools/Languages: Java

I built a basic natural language parser with two friends. Our agent can understand and execute commands, remember past data while it responds to the current request, and ask clarifying questions.

Code