Select Tech Projects
Chickadee Operating System
Chickadee OS is a multi-threaded, multi-core operating system built in C++. It has support for memory management (allocation and deallocation); forking and exiting threads and processes; blocking; prefetching and buffer cache eviction; creating, reading from, and writing to files on disk; and file system journaling. I also implemented many system calls like fork, clone, execv, exit, waitpid, open, close, read, write, pipe, dup2, and lseek.
Re-Architecting Slack's Workspace Preferences
As a Summer 2018 software engineering intern at Slack, I re-architected a key data model for better scalability and robustness. I changed workspace preferences (e.g. permissions for adding custom emoji) from a per-workspace JSON blob to an Entity/Attribute/Value model. You can read more on the Slack Engineering Blog.
Find That Song
I regularly get indie songs stuck in my head, and when I search for the lyrics on Google, I only find more popular songs. To solve this problem, I created a web app that will let you search for lyrics in a given Spotify playlist. The project involves web scraping, caching, and fuzzy matching using regex. It utilizes the Flask framework and Spotify API. Find the code here.
In the summer of 2014, I built QuiziCal, a web app that helps high school teachers coordinate on dates for tests and quizzes. Check out the QuiziCal website for more information.
At CodeDay Boston 2014, I created two Twitter bots, programs that tweet on their own. Both implement a Markov chain text generator algorithm. The PoliticianBot uses historical speeches to generate political statements. The AustenBot uses Emma and Pride and Prejudice by Jane Austen to generate things Jane Austen would say. These bots won the Most Organized Code award at CodeDay Boston.
Recently, I made the Startup Ideas Twitter bot. Often times, startups describe themselves in terms of another startup in a new context. This bot pokes fun at that idea by continuously scraping a website of top startups and mixing that with a scraped list of words.