Breadcrumb
Lucas Colley made maintainer of impactful open-source library
Lucas Colley, a second-year Computer Science & Philosophy undergraduate at Christ Church, has been made a maintainer of SciPy – a free, open-source software library used millions of times a week by scientists and engineers worldwide. We reached out to Lucas to discover how he got involved in this work and to find out more about the value of SciPy. Here is what he had to say.
What is SciPy and why is it useful?
'SciPy (pronounced "sigh pie") is a free and open-source software library that provides fundamental algorithms for science and engineering. It includes modules for statistics, optimisation, integration, linear algebra, Fourier transforms, signal and image processing, ODE solvers, and more. Just as there are many physical tools that are found in laboratories across academia and industry, there are increasingly many pieces of software like SciPy that are just as vital.'
It is really no exaggeration to say that SciPy is a fundamental building block now used in almost every field of science and engineering.
It is really no exaggeration to say that SciPy is a fundamental building block now used in almost every field of science and engineering.
'At the time of writing, SciPy has been downloaded over 22 million times in the past week! It is really no exaggeration to say that SciPy is a fundamental building block now used in almost every field of science and engineering. It has been used by astrophysicists to capture the first-ever image of a black hole, biologists to track cells to discover new treatments for diseases, and architects to plan low-carbon cities.
'The fact that it is free and open source means that anyone, from students and novices to NASA engineers, is able to use the software and see the code that makes it work. Furthermore, anyone is free to contribute to the project. This element of SciPy means that it democratises access to scientific computing tools – this is really important to me as I believe that such tools shouldn't be locked behind pay walls or restricted to big companies and institutions. Open science encourages knowledge-sharing and reproducibility.'
How did you get involved in working on SciPy?
'I started working on SciPy last summer, supported by the Christ Church Summer Bursary scheme and supervised by my Computer Science tutor, Dr Irwin Zaid. Since the summer, I have continued to contribute to SciPy voluntarily, branching out from the specific focus of my internship to more general maintenance tasks, as well as reviewing the work of others and investigating bug reports.'
Click here to learn about Lucas' work on SciPy over the summer.
What does it mean now that you are a maintainer?
'Being a maintainer means that I have special permissions on the project, with the main one being that I am able to approve contributions from other people and 'merge' their code into the project's codebase. There are only 33 maintainers of SciPy across the world, so it is definitely a privilege!'
What do you enjoy most about working on SciPy?
'I enjoy being able to apply my knowledge in a very hands-on way. Studying Computer Science at Oxford is very theoretical, so I think that the experience of the more practical, applied side of things is very valuable. It's also rewarding knowing that your work will be used so widely, and it is nice to have a concrete output and record of your work to which you can point and see being used.'
What do you hope to achieve as a maintainer of SciPy?
'I am really looking forward to continuing to support all of the great work that people are contributing to the project. There are lots of big goals, such as the support for distributed and GPU arrays that I have been working on, which will bring exciting new features and opportunities for users once they are achieved. Aside from the big goals, though, there is a lot of unseen work that goes into the day-to-day maintenance of such big projects like SciPy – hundreds of thousands of lines of code take a lot more maintenance than a Bunsen burner or microscope! In the "Scientific Python Ecosystem" that SciPy is a part of, there are lots of moving parts, with which staying up to date requires almost constant tweaks and updates. There are many projects that depend on SciPy (including over 29,000 packages developed on GitHub alone), so there are many people relying on us not to break things! If I can help keep the project running smoothly for an extended period of time, that is already an achievement in itself.
'I am also hoping to gain a greater understanding of the mathematics that powers SciPy and which SciPy makes accessible to researchers and engineers. A lot of the code in SciPy requires expert knowledge in its corresponding domain in order to understand and maintain it. It is very rewarding to understand both the mathematics behind a piece of code and how the code makes the computation happen, so I would really like to expand the amount of the project that I can say I do understand like that – not only to be able to maintain and enhance those parts of the project, but also for my personal interest.'
What are your wider ambitions for the future?
'I am still not sure what I want to do after my degree, but I would definitely like to keep contributing to free and open-source software. Computer Science is a rapidly developing field, so I'm hoping to be able to find something that I'm especially passionate about at some point. If I can mix Philosophy in there as well, that would be a bonus!'
Learn more about studying Computer Science at Christ Church.