I work on the design and implementation of high performance programming systems including languages, compilers, and runtimes. In particular, my focus is on building systems that enable both high performance and high productivity for large scale system architectures including both supercomputers and distributed systems. I also have considerable experience constructing tools capable of leveraging the power of GPUs for general purpose computing.
I believe that high performance computing should not simply be the domain of experts, but should be a tool available to all via the intelligent implementation of programming systems. My design philosophy is that these systems should be built the right way and not with the ad-hoc tools available for users today. I endeavor to make this vision a reality by designing abstractions capable of facilitating the needs of end users with minimal cognitive load. My hope is one day the design of programming systems will be an approach leveraged by all programmers and not just experts.
I currently work as a research scientist at NVIDIA Research. In 2014 I completed my Ph.D. in Computer Science at Stanford University under the guidance of Professor Alex Aiken. Before that I graduated Magna Cum Laude from Duke University in 2008 with degrees in Electrical Computer Engineering (with honors), Mathematics (with high honors) , and Computer Science. More information can be found in my CV.
I can be reached at .