I’m a senior at Columbia University studying computer science, with interests in software systems, applied AI and education. My research interests are mostly in OS-level systems work, which parallel my teaching interests of how to best communicate those ideas to students.
I’m currently working with Asaf Cidon on applying Linux eBPF to OS abstractions that don’t align with hardware trends.
eBPF for disaggregated storage: utilizes Linux eBPF to enable custom storage functions on remote servers, reducing CPU and network overhead in NVMe-oF disaggregated storage. Achieves up to 3x speedup in state-of-the-art systems like RocksDB.
eBPF for deep neural network training: targets reducing CPU-to-GPU data transfer time in DNN training by implementing disk reads and pre-processing in eBPF. Utilizes NVIDIA’s open-source kernel modules and integrates with NVIDIA DALI and PyTorch.
feynman.pro: a structured ChatGPT-like conversational tool that creates an engaging learning process using the Feynman technique of learning. Still in a beta phase, the user experience has far exceeded Quizlet’s AI initiatives in reported user satisfaction.
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 Scrape Suite: 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.
COMS 4118: Operating Systems - hardcore Linux kernel hacking, for fun and profit
COMS 4995: From Algorithm 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
- COMS 4118: Operating Systems - implemented a scheduler, kv-store, filesystem, memory scraper in Linux kernel
- COMS 4113: Distributed Systems
- EECS 6897: Cloud Data Infrastructure
- EECS 4119: Computer Networks
- COMS 4995: Parallel Functional Programming in Haskell
- COMS 4186: Malware Analysis and Reverse Engineering