2026-07-17 –, Thomas Swain Room
MNE-Python is open-source software for analyzing electrophysiological data in neuroscience. Like many projects, we struggle to retain maintainers. Finding maintainers in our user community is hard; most have little formal training in programming. To address this, we organized progressive training sprints with open applications and a participation stipend. Currently, we are onboarding four alumni of those sprints as new maintainers. We’ve seen positive outcomes from this approach, but at a high cost. We are now developing a curriculum for future onboarding efforts. We hope to spark discussions with other project leaders about their efforts toward educating and retaining talented maintainers.
Background
MNE-Python [1] is open-source software for analyzing electrophysiological data in neuroscience. We have a broad user base spanning neuroscience research, clinical neurology, and applied neurotechnology.
Problem statement
Like many open-source software projects, MNE-Python is struggling to retain maintainers and reach a comfortable Truck Factor [2]. This is aggravated by academic incentive systems which devalue open source work compared to scientific publications [3], and the fact that many MNE-Python users are not formally trained in programming. Moreover, MNE-Python’s status as domain software makes it difficult for capable programmers lacking neuroscience backgrounds to fill the maintenance gap: there are too many domain-specific details that one must know to effectively maintain the codebase.
Interventions
To increase our contributor pool, we organized two New Developer Sprints and one Intermediate Developer Sprint. These fully-remote one-week courses were open to applications from the community, and participants received a stipend. Both types of sprint involved participants pair-programming with each other or with seasoned maintainers. In the New Developer Sprints, participants chose from a list of curated issues, complemented by short presentations from invited senior community members about how they benefitted from being MNE-Python contributors earlier in their careers. For the Intermediate Sprint, participants chose larger contributions in advance and spent the whole week on them, complemented by short presentations on pertinent topics (running and writing tests, building documentation, deprecations, CIs, etc). Currently, we are onboarding four alumni of those sprints as maintainers (and providing stipends during the two-year onboarding period), and writing a reusable curriculum to support future onboarding efforts. When complete, the domain-general parts will be extracted and published separately from the MNE-Python-specific curriculum.
Comparison to previous efforts
Past contributors and maintainers mostly came from labs where the lab director had a vested interest in MNE-Python, or were recruited at conferences to contribute their methodological developments. In contrast, our current approach has been bottom-up: first training users how to contribute, then upskilling contributors to facilitate repeat contributions, and finally providing intensive training in maintainer-specific skills. This approach also allowed us to prioritize inclusivity in our recruitment, leading to a slight increase in the diversity of our regular contributors and maintainers. On the other hand, the sprints and maintainer onboarding were funded by three separate grants over a six-year period, and were a huge investment of existing maintainers’ time.
Preliminary results
In our experience, providing education on how to contribute to open source, especially information specific to our project, greatly lowers the threshold for our users to be willing to attempt a contribution. However, the incentive structure of academia still works against retaining our contributors and maintainers long-term. We hope that by publicizing our onboarding curriculum and creating other “contributor ladder” resources, we will empower more users to self-educate about open-source contribution. This will hopefully increase the “input stream” of contributors, and may also increase retention: by making contribution easier through upskilling, hopefully each single contribution becomes less effortful and thus more likely to be attempted.
Open questions to community
With this contribution, we hope to spark a discussion among open source software maintainers about their efforts toward educating and retaining talented maintainers.
Funding acknowledgment
This project has been made possible in part by grant numbers 2020-219006 and 2021-237679 from the Chan Zuckerberg Initiative DAF, an advised fund of Silicon Valley Community Foundation, and by NSF POSE award 2449064.
References
[1]: https://mne.tools/ and https://github.com/mne-tools/mne-python/
[2]: Avelino, G., Passos, L., Hora, A., & Valente, M. T. (2016). A Novel Approach for Estimating Truck Factors. 2016 IEEE 24th International Conference on Program Comprehension (ICPC), 1–10. https://doi.org/10.1109/ICPC.2016.7503718
[3]: Westner, B. U., McCloy, D. R., Larson, E., Gramfort, A., Katz, D. S., Smith, A. M., Delorme, A., Litvak, V., Makeig, S., Oostenveld, R., Schoffelen, J.-M., & Tierney, T. M. (2025). Cycling on the Freeway: The perilous state of open-source neuroscience software. Imaging Neuroscience, 3, imag_a_00554. https://doi.org/10.1162/imag_a_00554
I am a developer of open-source scientific software, and a scientist trained in acoustic phonetics, speech perception, and auditory neuroscience. My scientific interest broadly centers on the perception and representation of speech sounds. I'm (probably) most known for my work on MNE-Python.
Research Scientist at the Institute for Learning and Brain Sciences, University of Washington, Seattle, WA.
I am an Assistant Professor at the Donders Institute and Radboudumc in The Netherlands. My current research focuses mainly on the intersection of language and memory. I work with human electrophysiological data and have a focus on data analysis methods such as source reconstruction and decoding. I am enthusiastic about open source and am part of the core developer team of MNE-Python since 2019. Since 2024, I am also part of the newly-formed steering council of MNE-Python.