Funded doctoral studentships with research software and computational modelling focus in London

We have a series of funded doctoral student positions in topics related to research software and computational modelling, including probabilistic modelling and Bayesian inference, available at University College London and Imperial College London, as part of a new Centre for Doctoral Training (CDT) in Collaborative Computational Modelling at the Interface. The first intake will start in September 2025, with each studentship fully funded for four years.

Relatively unusually, the research software and data outputs of these studentships will be a key focus from the outset and contributing to open-source software tools such as those in the Stan ecosystem will be very much in scope and encouraged! A key partner in the CDT will be the UCL Centre for Advanced Research Computing (where I am based), which is a laboratory for research, teaching and innovation in compute, data and software intensive research methods, and is home to a large body of research software engineers and data scientists which you would be able to collaborate with during your PhD.

There are several proposed projects on Bayesian modelling and inference topics, but if you have ideas of other specific research projects involving Stan you would be interested in pursuing feel free to reach out to me. The application system is not yet fully ready, but there is a registration form to get updated when applications open.

5 Likes

Hi Matt. I’m at the Sainsbury Wellcome Centre on Howland St. we should talk!

Does the project have to be STAN? I’ve started using Turing.jl more and more and it is pretty nice to be able to write models directly in Julia. But there is definitely room for improvement on the Julia side for diagnostics and plotting compared to R.

Hi Jeffrey. The projects don’t need to be Stan based. I’ll message separately to discuss further to keep the discussion here Stan centric though!

Super cool. Feel free to reach out to the Stan developers (here or via email) if you plan to be writing software around Stan that’s public. We’re happy to help (given our time constraints).

I really like the design of Turing.jl if you’re going to restrict yourself to a graphical modeling language (and there are a lot of workflow upsides to doing that, as I mentioned in my ProbProg survey talk a few years ago). It’s in Julia, but it’s a fairly restrictive domain-specific embedded PPL, so you can’t just pull out arbitrary bits of Julia and hope it works (same for PyMC and Pyro in Python). For Turing.jl, you have to choose an autodiff system and then work within functions for which that autodiff system is defined. See: https://turing.ml/dev/docs/using-turing/autodiff, and follow-on comments like

In case of :tracker and :zygote , it is necessary to avoid loops for now. This is mainly due to the reverse-mode AD backends Tracker and Zygote which are inefficient for such cases.

But then a lot of their example code involves loops.

Those topics all look challenging—many of them may be beyond both Turing.jl and Stan and require something like JAX or PyTorch.

FYI the Turing.ml site is deprecated. The correct site is https://turinglang.org/