Broadly, my interests include operating systems, distributed systems, systems
programming, software
testing, and software profiling. I adore the
Rust programming language and use it regularly in my research. I have
extensive experience with the Linux
programming interface and system call
API, and can dig through system call man pages fearlessly.
My doctoral research uses low-level systems techniques such as system call
interception
and manipulation to provide reproducibility and performance optimizations
for unmodified
Linux programs. My goal is to build easy-to-use systems that improve existing programs
by providing safety
guarantees or performance improvements without any extra effort on the part of the user
(that's right, no more
dependency hell!).
Plenty of technologies exist to improve programs, but they
tend to be highly specialized
and/or difficult to use. My systems do not require root access, or changes to the
application, OS, or hardware. The
largest projects to emerge from my doctoral work are ProcessCache, a system for
providing automatic caching of arbitrary
Linux processes, and DetTrace, a Linux container system that automatically
enforces
determinism for programs run
through it. Both systems are open-source. More information on these projects can be
found here.