Skip to content


Every day, we spend hours at work or school interacting with our smartphones and typing on our laptops before returning home to relax in front of the television. At each step, we rely on the underlying electronics to interpret our swipes, transform our key taps into characters on a screen, and render images from events unfolding thousands of miles away from us. The hardware that powers these interactions is understandably complex, and it is the job of systems software designers to help manage that complexity for developers.

Increasingly, the complexity in the underlying hardware comes from heterogeneity — the combination of multiple processing elements, each with different capabilities and limitations. Heterogeneity enables greater performance and reduced power consumption, with the cost of introducing additional computational overhead to manage which processing elements run at what times. The job of systems software researchers, then, is to discover new ways of managing this heterogeneity for programmers. We must provide developers with useful and performant abstractions that allow them to focus on the business logic of their applications.

My research interests lie in systems software for heterogeneous architectures, focusing specifically on instruction set architecture (ISA) heterogeneity. Already, architectures such as ARM Holding’s big.LITTLE and DynamIQ and Intel’s Xeon Phi have demonstrated the advantage of same-ISA microarchitectural heterogeneity. The next step then involves removing the same-ISA restriction to allow x86-64, ARMv8, PowerPC, and RISC-V cores to work cooperatively in the same system.

@ Virginia Tech

Since June 2015, I’ve worked as a member of the Popcorn Linux research team. I investigate different aspects of scheduling, compiling, and building applications to run across multiple ISAs. In the recent past, I’ve worked on a number of topics, including:

  • Predicting program affinity across different-ISA systems
  • Scheduling multi-program workloads across different-ISA systems, using the Popcorn Linux infrastructure
  • Extending the Popcorn compiler to additional architectures

From August 2015 through May 2018, my work (during the academic year) was funded via a 3-year Bradley Fellowship through the Bradley Department of Electrical and Computer Engineering. The Bradley Fellowships enable highly motivated graduate students to pursue research in ECE focus areas.

@ Bucknell University

Between May and August 2014, I participated in an undergraduate research experience with Dr. Matthew A. Watkins at Bucknell University. I designed and implemented loop unrolling and stripmining passes for a custom dynamic binary translation framework for coarse-grained reconfigurable architectures. The work was published and presented at HPCA 2016 (see below for details).

Curriculum Vitae

A PDF copy of my CV is available here.