I'm advised by Dave Andersen.
In general, I'm interested in systems, and especially the line between software and hardware: operating systems, architecture, firmware, embedded systems, and—to some extent—programming languages.
Outside of school, I love bicycling, board games, hiking, bad puns, cooking, rock climbing, trying to speak French, and probably other things that aren't coming to mind at the moment.
That's not to say that I'm particularly good at any of those things, though...
Sol Boucher, Anuj Kalia, David G. Andersen, and Michael Kaminsky. Lightweight Preemptible Functions. OSDI '18: 13th USENIX Symposium on Operating Systems Design and Implementation, Carlsbad, CA, USA, 2018. USENIX.
I've been involved in the 15-213 Introduction to Computer Systems course almost since I started grad school.
In addition to giving lectures, holding office hours, and other content delivery duties, my focus recently has been on expanding our library of active learning activities for use during summer lectures.
In summer 2018, I served as a "light" co-instructor of record.
In summer 2019, I served as a "heavy" co-instructor of record.
In spring of 2017, I took a leave of absence to fill in as a high school teacher in the CS department at the Shady Side Academy.
While there, I taught the following courses:
Two sections of the introductory Problem Solving course in Java. This consisted of content delivery only.
A five-student seminar on computer architecture. I developed a series of standard assignments, over the course of which students incrementally created an operational RISC-V core in Logisim. As an self-declared project, students then implemented a significant processor extension of their choice.
Here are the most notable CS-related things I did prior to starting grad school:
Work on coreboot and the Chrome OS firmware
After college, I returned to Google to intern on the Chrome OS Firmware team, where I worked on integrating support for flash maps—roughly the flash chip equivalent to a partition table—into the coreboot project.
Most of my work was in the build and bundling tools, and a large portion of my time was spent writing a compiler for our human-readable format for describing flash layouts.
cros codeupstream code
Work on the Case Bitcoin wallet
At the end of college, I worked at CryptoLabs (now Case Wallet) as a firmware engineer.
I did a lot of work on getting the toolchain and debugger working, wrote the first iteration of the build system, and contributed to the overall design of the firmware and the implementation of several of its components.
As far as I know, they haven't started open sourcing yet, but their site states that a release is on the way!
Work on the Android Camera app
After my third year of college, I interned on Google's Android Camera Framework team, where I began the process of migrating the AOSP Camera and Google Camera apps to Lollipop's new camera API.
My glue code is present in both apps, which come preinstalled on some phones.