Papers, talks, and presentations from my PhD work at Tufts University (2015–2021). The focus was formal methods for specifying and debugging memory managers and garbage collectors, with a side interest in programming language tooling.
Dissertation
Debugging Memory Managers with Typestate
PhD defense: a typestate-based permission system for formally specifying and verifying the correctness of garbage collectors on the JVM. Also: defense practice run.
Papers
Floorplan: Spatial Layout in Memory Management Systems
A DSL for expressing memory layout invariants in garbage collectors — making GC bugs detectable at the specification level.
Garbology: A Study of How Objects Die
An empirical study of object lifetime patterns in Java programs, motivating more precise modeling of GC behavior.
Talks and presentations
Permchecker: Memory Debugging with Permissions
A standalone talk on using typestate and permission types to detect memory manager bugs at runtime on the JVM.
Debugging Memory Safety Errors in Memory Managers
A shorter presentation of the permission-type approach for a New England PL audience.
Markedly: A Cartographic Approach for Mapping eDSL Implementation Costs
A framework for systematically comparing the implementation effort of different embedded DSL approaches in a host language.
Technical articles
Running fio with histogram output
A practical guide to using fio's per-percentile latency histograms for storage benchmarking.
Latency measurements with fio
Measurement results and analysis of cloud storage latency using fio.