I began as an electronic engineer, obtaining a BSc in Electronic Systems Engineering from the University of East Anglia in 1989.

While I was an undergraduate I increasingly felt that mathematics was more interesting to me, and consequently began to move in a more mathematical direction initially by joining the Signal Processing and Communications Group in the Engineering Department of Cambridge University to complete my PhD in Engineering at Corpus Christi College in 1994.

I briefly did postdoctoral work in the Signals, Circuits and Systems Research Group at King's College London, before moving back to Cambridge to do further postdoctoral research in the Speech, Vision and Robotics Group, again part of the Department of Engineering.

In 1995 I joined the Department of Computer Science at University College London as a Lecturer, where I stayed until September 2002. While I was a lecturer there I set up and ran the advanced MSc in Intelligent Systems. I was promoted to a Senior Lectureship just before I left for my current post.

Since October 2002 I have been Lecturer, then Senior Lecturer in Machine Learning in the Department of Computer Science and Technology at Cambridge University, and a Fellow of Trinity College, where I am also Director of Studies in Computer Science.

I am a former Junior Member of the Isaac Newton Institute for Mathematical Sciences.

Before university...