Brian Burg

Seattle-based hacker, designer and researcher. PhD student at the University of Washington. I make tools that help people debug their programs more effectively.

#Dissertation Work

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.

Scry is a tool for understanding how and why a web application's visual output changes. Using Scry, a developer can peek at all operations on a DOM node and trace style and appearance changes back to specific JavaScript statements.

#Open Source

I am a reviewer on the WebKit project, with a focus on developer tooling. In my spare time, I have been upstreaming Dolos and other parts of my dissertation.

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

C3: a research infrastructure for extensible, type-safe web browsers. I wrote a rendering engine for inlines, blocks, floats, and tables in C#.

#Academic Publications

Brian Burg, Andrew J. Ko, Michael D. Ernst. Scry: interactively explaining the causes of visual changes at runtime. Work in progress.

Mouna Hammoudi, Brian Burg, Gigon Bae, and Gregg Rothermel. On the Use of Delta Debugging to Reduce Recordings and Facilitate Debugging of Web Applications. In review.

Brian Burg, Katie Madonna, Andrew J. Ko, Michael D. Ernst. Interactive Navigation of Captured Executions via Program Output. Work in progress.

Gregory L. Nelson, Brian Burg, Daniela Rosner. 'War Stories' of Debugging. Unpublished draft.

Brian Burg, Richard Bailey, Andrew J. Ko, Michael D. Ernst. Interactive record/replay for web application debugging. Presented at UIST 2013.

Gregor Richards, Christian Hammer, Brian Burg, Jan Vitek. The eval that men do: a large-scale study of the use of eval in JavaScript applications. Presented at ECOOP 2011.

Benjamin S. Lerner, Brian Burg, Herman Venter, Wolfram Schulte. C3: An experimental, extensible, reconfigurable platform for HTML-based applications. Presented at WebApps 2011.

Gregor Richards, Sylvain Lebresne, Brian Burg, Jan Vitek. An analysis of the dynamic behavior of JavaScript programs. Presented at PLDI 2010.