2026-08-13 –, Room 2
Turing.jl, a probabilistic programming language, has been undergoing rapid development towards a v1.0 release.
Many new features, fixes, and improvements will have been visible to users — but arguably the most important things I've learnt are not about code!
In this talk I'll reflect on what it’s really like to work on open source software, contextualised throughout with recent examples from Turing.jl’s codebase.
Turing.jl is a probabilistic programming language. Users can define probabilistic models with a simple macro, and then perform inference using a variety of modern techniques, including MCMC sampling, variational inference, and particle methods.
Over the past two years, I and other developers have been redesigning Turing's modelling implementation (technically in the DynamicPPL.jl subpackage), almost completely from scratch. We have introduced completely new data structures, interfaces, and abstractions that can both be extended easily by users, and provide significant performance improvements.
Many of these new features will have been visible to users and the Julia community via the newsletters that we publish regularly. Indeed, there are many software engineering intricacies which are nowadays covered in the DynamicPPL.jl documentation. However, in this talk I'd like to use Turing and DynamicPPL as the context, but to focus on all the things that nobody told me when I started working on this project. These include:
- navigating the tension between a paid job and open-source development;
- whether to trust old wisdom or to break things;
- why Julia makes it easier and harder to work in open-source;
- how to build a community of contributors and make development more sustainable.
As I certainly don't have definitive answers to all of these, I also hope that this can spark some consideration and discussion amongst Julia developers.
she/her
Ex-quantum chemist turned software engineer, I'm now a core developer of Turing.jl. Speak to me about ... Jane Austen, my Pokemon collection, classical music, functional programming, or waterfowl!