Much of the current work that I do involves developing software to implement intensive computational algorithms. Being primarily a statistician I am completely self taught at programming, but having had experience of working with some excellent (trained) software developers, I think that it is relatively easy to notice a marked improvement in the standard of my code compared to several years ago.

My preferred languages for development these days are C++ (including Boost) and R. Whilst I cannot claim to be an expert in either, I try to attend conferences and local meet-ups to improve my skills and ensure that I am making use of the full functionality of these languages. I also have some experience in developing in Python, C, php, ASP, C# and Fortran.

I choose to work on Mac OS or a Linux operating system if at all possible, and am a big advocate of the Eclipse IDE, with Git and CMake integrated.For R I prefer R Studio.

I am an advocate of free software (in the freedom rather than monetary sense), and on this page I will make available the source code of any code that I develop.

Developed several years ago, during my Ph.D., this program for implementing an automatic reversible jump Markov chain Monte Carlo sampler can be downloaded from this link.

ESS++ Version 0.1
The ESS++ sampler is a C++ implementation of the ESS algorithm, an MCMC sampler for Bayesian variable selection for single and multiple response linear regression. Much of this sampler had been written by my collaborators (see Publications page for details) before I took my position at Imperial, but since arriving at Imperial I have been heavily involved in taking the project to the initial release phase. I will also be largely responsible for extending the algorithm in a number of new directions, including the exploitation of GPU computing. The code is available by visiting this link.