I teach and research in Department of Computing at Imperial College London. I lead the Programming Languages and Systems Section and the Custom Computing Research Group, and I direct the EPSRC Centre for Doctoral Training in High Performance Embedded and Distributed Systems and the Centre for Advanced Financial Engineering. I was Visiting Professor at Stanford University from November 2006 until August 2009. I am a Fellow of the Royal Academy of Engineering, the IEEE, and the BCS. I am also a Senior Advisor of Maxeler, and the Honorary Fellowship Advisor of the Croucher Foundation.