Projects

In roughly reverse chronological order.


Simple Interpreter in Go

Tools/Languages: Go

A simple interpreter 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.

Code | Blog post


N Chainz: Decentralized Cryptocurrency Exchange

Tools/Languages: Go

A high performance, decentralized cryptocurrency exchange written in Go. Worked with Nick 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.

Code | Website | Paper


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.

Code

(Work mostly in private repo.)


Fault-tolerant k/v service

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.)

Blog post


tldr

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

Posts


Bit rotation

Tools/Languages: C, Valgrind, Gprof

Fast bitarray rotation using bit hacks. Worked with Justin Restivo. Code not posted because this is a MIT class project (6.172: performance engineering.)

Project description | Writeup | Blog post


Quadtree intersection detection

Tools/Languages: C, Valgrind, Gprof

Fast intersection detection of 2d moving vectors using quadtrees. Worked with Erick Friis. Code not posted because this is a MIT class project (6.172: performance engineering).

Project description | Blog post


Serial dynamic memory allocator

Tools/Languages: C, Valgrind, Gprof

Fast, space-efficient, general purpose, single-core memory allocator. Worked with Anthony Liu. Code not posted because this is a MIT class project (6.172: performance engineering).

Project description | Writeup | Blog post


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.

Code | Firebase presentation | Blog post | Mavo


Swift projects

Tools/Languages: Swift, Xcode, Firebase, EventKit

Miscolor app: Code | Blog post

PlanForMe app: Code | Blog post

Related blog posts: WWDC 2016 | WWDC 2015 | Messages framework


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.

Alan Lomax Exhibit Demo | CTS + D3 + Datahub project | Exhibit stock prices


IHTFYP

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

Semi-finalist in MIT’s annual Web Programming competition. Worked with Leigh Marie Braswell.

Final website | Competition website | Blog post | Code


Blizi

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.

Code | freedom.js | Blog post


D3.js interactive visualizations

Tools/Languages: Javascript, HTML, D3.js

Movie Sieve: Code | Blog post

Celebrities’ Influence: Code | Blog post


ALEx

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

About

I’m currently a senior at MIT studying computer science (6-3) and math (18). Some of the areas I’m especially interested in are data infrastructure and analytics, distributed systems, and combinatorics.

In my free time, I enjoy hiking, watching movies, reading, spending time with family and friends, traveling, and playing squash.

I’m from Redmond, WA, but have also lived in Bellevue, WA, Ottawa, ONT, Vancouver, BC, Exeter, NH, and Cambridge, MA.

Links

Other places you can find me are on my blog, Github, or LinkedIn.