My research focus involves fusing microarchitecture and runtime systems. Early work included the investigation of a hardware-based dynamic optimization system known as rePLay. This work resulted in multiple publications and has caught industry attention. More recently, I designed a hardware implementation of an optimizer that performs low-level compiler optimizations. This optimizer can be placed in the pipeline of a modern processor for continuous optimization and can also be incorporated as part of an offline optimizer for a rePLay-style implementation. I am currently in the process of evaluating new and exciting opportunities provided by this optimization hardware.
In addition to these interests, I also have spent a significant amount of time studying and working with operating systems and compilers.
My other interests are in software development. I have spent a lot of time working with compilers, and I have dabbled a little in operating systems (some minor Linux kernel coding). As most computer programmers, I abhor performing repetitive tasks and thus seek to automate all repetitive tasks in my life. This often involves writing tools that I can use to make my own life easier.