I am a post-doc in computer science at Carnegie Mellon University in Pittsburgh, Pennsylvania, where I recently completed my PhD in ECE. I previously worked in industry as a software engineer at Google in Mountain View, California and as a CPU architect at Intel in the beautiful Portland, Oregon area (which is also my hometown). I did my undergrad at Notre Dame. I can sometimes be seen cycling, brewing beer, or getting lost in a forest. These days, though, I mostly spend my time staring at glowing rectangles and pushing buttons.

Research & Academics

(List of publications, CV: industry / academic version)

At CMU, I work 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. We are affiliated with PDL (Parallel Data Lab) and CALCM (Computer Architecture Lab at Carnegie Mellon). In the past, 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.


odes and limericks to amuse and please (and some computer architecture-specific limericks and (new!) compiler-specific limericks).
paper title generator for computer architecture research. Looking for your next research topic?
other projects: various side-projects, mostly software.