Seattle-based hacker, designer and researcher. Freshly-minted PhD graduate from UW CSE. I make tools that help people debug their programs more effectively.
I'll be joining the WebKit Developer Experience Team at Apple Inc. in early August 2015. I'll continue work on the Web Inspector developer tool suite and other projects related to WebKit. I will be working remotely from Seattle.
In the meantime, I'm enjoying a long vacation while wrapping up some publishing activities. Scry, the final project of my dissertation, was accepted to UIST 2015. I'm working on the final draft, video, and slides for that project.
Deterministic replay is a fundamental enabling technology for advanced developer tools. My dissertation work investigates deterministic replay in the browser: how to capture and replay web applications; affordances for navigating to relevant program states; and debugging tools that use past program states to explain behavior.
Dolos is a modern, low-overhead deterministic replay infrastructure for capturing web application behavior. Dolos is being upstreamed into the WebKit project.
Timelapse is the first user interface for capturing and replaying web application executions directly from the browser's developer tools.
Probes enable a developer to add logging statements to a live or captured execution while it runs. Time-indexed outputs are a scheme for indexing and seeking playback to text outputs such as console logging.
I am a reviewer on the WebKit project, with a focus on better tools for web developers and browser vendors. I began upstreaming Dolos and other parts of my dissertation while I was still earning my PhD.
Servo is an experimental browser written in Rust that explores new ways to parallelize, decompose, and secure a rendering engine for web content. I prototyped the current layout subsystem (block/inline/text layout), and worked on many other things.
# Other Projects
webkit-dashboard: a redesign of the WebKit test history dashboard, with better visual encodings, search and filtering features, and better performance.
glsl-simulator: an experimental simulator for WebGL Shader Language. Using the simulator, browser developer tools can implement standard debugging tools such as stepping through control flow, introspecting live state and adding logging.
C3: a research infrastructure for extensible, type-safe web browsers. I wrote a rendering engine for inlines, blocks, floats, and tables in C#.
Scry: Explaining Visual Changes in Web Interfaces.
On the Use of Delta Debugging to Reduce Recordings and Facilitate Debugging of Web Applications.
Interactive Navigation of Captured Executions via Program Output.
'War Stories' of Debugging.
Interactive record/replay for web application debugging.
C3: An extensible, reconfigurable platform for HTML-based applications.