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.
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).
Built a collaborative drawing web app that uses a computer’s webcam for object detection. Worked with Andrew Wei.
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.
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).
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.
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.
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.)
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.)
Investigated counting up-down walks on the 2-D coordinate plane as final project for 18.200: Principles of Discrete Applied Mathematics.
I’m posting analyses of papers I’m currently reading. Inspired by The Morning Paper.
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.
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.
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:
PlanForMe:
Just tap a button to add the plan to your calendar!
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!
As part of the MIT CSAIL Haystack Group. Worked with Exhibit, Datahub, and CTS. Worked with Professor David Karger.
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.
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.
Movie Sieve:
Celebrities’ Influence:
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.