In my research I aim to make it easier to program heterogeneous and parallel computers. I work on designing and implementing CLOP, a programming language for heterogeneous computing that provides portable performance by separating algorithms from device specific optimizations.