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.

Find me on LinkedIn and Github, or email me.

projects

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

teaching

  • COMS 4118: Operating Systems - hardcore Linux kernel hacking, for fun and profit

  • COMS 4157: Advanced Systems Programming - systems programming in C, the implementation of git, containers (Docker), debuggers, linker, and more

  • COMS 3157: Advanced Programming - an introductory systems course with a narrative, covering UNIX, C, make, git, sockets and HTTP protocol

  • 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

coursework

selected favorites and relevant coureses

  • Operating Systems - implemented a scheduler, kv-store, filesystem, memory scraper in Linux kernel

  • Distributed Systems - implemented a Google Spanner-like kv-store with consistency and reliability guarentees

  • Computer Networks

  • Progamming Languages and Translators

  • Malware Analysis and Reverse Engineering

  • Parallel Functional Programming in Haskell

  • Artificial Intellegence

  • Natural Language Processing

  • Computational Aspects of Robotics