I’m a junior at Columbia University studying computer science and sociology, with interests in software systems, cyber policy, and education. My research interests are mostly in systems, which parallel my teaching interests of how to best communicate those ideas to students. I’m also deeply interested in the interdisciplinary study of technology and social policy, especially related to social media moderation.
I’m currently working with Asaf Cidon on applying Linux eBPF to areas of the kernel stack with high overhead.
Find me on LinkedIn and Github1, or email me if you’re into that sort of thing.
projects
-
eBPF for Deep Neural Network training pre-processing: in an epoch of DNN training, data must be read from disk or cache, pre-processed on the CPU and then copied to GPU memory. We aim to to to minimize the time spent copying data from CPU to GPU by implementing disk reads and pre-processing steps in eBPF in order to bypass userspace, using NVIDIA’s open-source kernel modules and the state of the art pre-processing library, NVIDIA DALI with PyTorch.
-
Banned Reddit subreddit monitor: when a hateful Reddit subreddit is banned, many of its users stay active on the website and move to other groups. By tracking active users of subreddits that are likely to get banned, in the event of a ban we can quickly identify newly created hate speech subreddits and monitor how hateful ideas can infect other communities. Written in Python with PyVis and sentiment analysis trained on hate speech online.
-
Autotip: a Minecraft modification with over 100,000 active users, which automatically earns currency and communicates with a network of other users to maximize earnings. A frontent modification written in Java and a backend API written in Go that handles ~3 million requests/day.
-
Columbia Scraping: a suite of tools to scrape information about Columbia University classes from the course directory and proprietary course registration website, SSOL. From these tools came a Twitter bot @ColumbiaCourses to automatically announce when new classes are added to the course directory, and a service to help students automatically join classes the minute a free spot opens up.
teaching
-
COMS 3157: Advanced Programming - an introductory systems course with a narrative, covering UNIX, C, make, git, sockets and HTTP protocol
-
COMS 4995: From Algorithms to Development - a competitive programming class to implement algorithms in C, C++, Java and Python, with a focus on efficiency and micro-optimizations
-
COMS 1004: Intro Java Labs - a lab to guide small groups of students through introductory Java assignments, focusing on basic OOP design
coursework
- COMS 4118: Operating Systems - implemented a scheduler, kv-store, filesystem, memory scraper in Linux kernel
- EECS 6897: Cloud Data Infrastructure
- EECS 4119: Computer Networks
- COMS 4995: Parallel Functional Programming in Haskell
- COMS 4186: Malware Analysis and Reverse Engineering
-
My Github username is a holdover from my days as a Minecraft modification developer. Due to a lack of foresight, if I change it one of my old programs that is still used by thousands of people will break. I don’t want to make those people sad, so I’ll allow myself to be a little embarassed. ↩︎