I received my PhD in Electrical & Computer Engineering (and a brief postdoc in Computer Science) at Carnegie Mellon University in Pittsburgh, Pennsylvania, where I studied compilers, static and dynamic analysis. These days I am interested in all things related to compilers and programming language design, and how we can design compilers, runtimes, languages, and tooling to enable humans to more easily build secure, high-performance systems. I don't publish much any more, though I plan to try to continue talking about interesting work via my blog here.

See my CV for more details.

Academic Life

While at CMU, I worked with Prof. Todd Mowry and Prof. Phil Gibbons on static and dynamic program analysis with a focus on auto-parallelization and other macro-scale program transforms. I was affiliated with PDL (Parallel Data Lab) and CALCM (Computer Architecture Lab at Carnegie Mellon). Previously, in another research group, I worked on core microarchitecture (energy-efficiency and heterogeneity) and on-chip interconnect networks and memory systems.

I defended my PhD thesis in February 2019, titled Finding and Exploiting Parallelism with Data-Structure-Aware Static and Dynamic Analysis.

I was fortunate to be supported by an NSF Graduate Research Fellowship from 2010 to 2013 and an SRC Graduate Fellowship in 2009—2010. I was head graduate TA for 18-447, Intro to Computer Architecture, in Spring 2012 and 18-742, Parallel Computer Architecture, in Spring 2010.

Research Career Timeline

Publications

Ph.D. Dissertation

Invited Talks

Seminar Talks

Preprints

Conference Papers

Book Chapters

Technical Reports