Light
code header

Research

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.