Brian Burg

Graduate Student
Computer Science and Engineering
University of Washington

I am a second-year doctoral student in the CSE Department at the University of Washington in Seattle. I am an active member of the PLSE group, and am advised by Prof. Michael D. Ernst. I received my B.S. in Computer Science at Purdue University, where I was advised by Prof. Jan Vitek and did research in the S3 Lab.


My primary research interests are the intersection of programming languages, software engineering, and the programmable web. For too long, these fields have been segregated; I enjoy building mutually-beneficial bridges between them. My current research focuses on improving developer productivity, quantifying and furthering application and runtime performance, and understanding languages and software at scale.

Timelapse: back-in-time debugging for the web

Current web browser debuggers are inadequate for today's complex, event-driven, and nondeterministic web applications. The Timelapse project adapts back-in-time debugging techniques to the domain of client-side web programming. Unlike traditional breakpoint debuggers, Timelapse creates an exact recording of a web program's execution. This recording can be then played forward and backward and freely inspected at any time, using existing debugging tools. Timelapse also introduces novel trace analyses that help developers navigate execution recordings more efficiently.

Timelapse is currently under development. I am looking to collaborate with strong UW undergraduates who are interested in debugging, web applications, and/or dynamic analysis. Contact me for details.

Timelapse currently extends the debugger tools and runtime of the WebKit platform. More information is available on the Timelapse project page.

Collaborative Optimization

Recent advances in just-in-time compilation for JavaScript have made it possible to deploy large-scale applications using the HTML 5 platform. Unfortunately, web applications are still orders of magnitude slower than native applications. We propose collaborative optimization as a way to transparently improve performance by harnessing the "collective knowledge" about how individual web applications run. In essence, we extend traditional profile-guided optimization to collect profiles over many users, summarize profiles at web-scale, and then distribute optimization hints to any users that are able to take advantage of such hints.

Collabopt is currently under development; Once again, I'm looking to collaborate with strong students interested in browsers, language implementation/optimization, and data mining. Contact me for details.

I spent some time developing collabopt infrastructure while at Mozilla Research. For research updates, watch my blog!

Past Projects

Dynamics of JavaScript

JavaScript has recently become of interest to language researchers; these brave souls have targeted it for language extensions, program analysis, and other research. Depending on whom you ask, JavaScript is either well-behaved or extremely unpredictable. This is worrying, since most research must make simplifying assumptions: if these assumptions do not hold, then research claims may be unfounded. We aim to quantify how JavaScript code actually behaves in the wild, and whether this aligns with assumptions found in programmer folklore and the literature.

The DynJS project analyzes the dynamic (runtime) behavior of JavaScript in an effort to better quantify how the language is used. To date, we have focused on aspects of dynamicity in general (PLDI 2010), as well as uses of eval specificially (ECOOP 2011).

C3 - Lowering the barrier to browser extensibility

In areas of research that require software it is common for researchers to experiment and extend research software via runtime extensions or by hacking and recompiling project sources. Neither of these are palatable for web researchers: most web browsers consist of mountains of highly-optimized C++ code, and provide only a few ad-hoc extension mechanisms.

I helped build C3, an experimental HTML platform for web-related research, during an internship at Microsoft Research. C3 is built from the ground-up for flexibility: it is written in managed C#, it generalizes several existing extension mechanisms and adds new extension points in a systematic way. Several architectural features encourage modularity and experimentation.


My publications are listed below, most recent first. Subsets of my publications are also listed on DBLP and other places.

Conference Papers


I prefer communication by email. If you would like to chat via Skype or telephone, please let me know by email first. If you would like to schedule a meeting with me, please consult my schedule/calendar and propose a few times that are acceptable to you.

email (or, if you prefer)
CSE 362
Department of Computer Science and Engineering 
University of Washington
Box 352350
Seattle, WA 98195
courier (FedEx, UPS)
Brian Burg
AC101 Paul G. Allen Center
185 Stevens Way
Seattle, WA 98195
Computer Science and Engineering at the University of Washington.
© 2011 Brian Burg and the University of Washington. All Rights Reserved.