In the fall of 2023, I applied for the Better Scientific Software (BSSw) Fellowship Program, an initiative dedicated to improving the quality, sustainability, and impact of scientific software. Sponsored by the U.S. Department of Energy, the program supports researchers, developers, and advocates who are committed to advancing best practices in research computing.
I was drawn to the fellowship because its mission deeply resonated with me. As scientific research increasingly relies on software, ensuring that it remains efficient, sustainable, and reproducible is more important than ever. The BSSw Fellowship provides a unique opportunity to bridge this gap, empowering individuals to lead improvements in software development, documentation, testing, and training within the scientific community.
In my application, I proposed developing comprehensive learning modules on “Reproducibility in Scientific Software” and “Testing and Debugging with Python.” Each module would consist of four to five concise lessons, released weekly on a dedicated website. Each lesson was designed with two key components: A learning segment, combining reading materials, short pre-recorded videos, and live coding sessions to introduce key concepts. A practice segment, featuring small hands-on tasks to reinforce learning through real-world applications. Each lesson would require 1–2 hours of commitment, making it manageable for participants to engage in on a weekly basis. The goal was to create bite-sized, structured content that would encourage continuous learning while fitting into researchers’ busy schedules.
At the start of my fellowship, I explored different platforms for delivering the course content and facilitating hands-on exercises. My goal was to find a solution that was accessible, interactive, and free. After reviewing various options, I chose GitHub and its Codespaces feature, as it provided a seamless, browser-based development environment that met all the course requirements while being free to use for the course, as it does not require extensive resources. Additionally, it provides an opportunity for participants to familiarize themselves with GitHub, a widely used platform for open-source projects.
I also decided to use the GitHub Skills template, the same framework GitHub employs to develop its own courses. This template allows for a structured, step-by-step learning experience, where each lesson builds upon the previous one. Participants can only access the next section after successfully completing the exercises, which are validated through GitHub Actions workflows.
I developed introductory courses on Shell, Version Control Systems and Git, as well as testing and debugging in Python. To engage participants, I initially reached out to students in my department and across the university. However, I found it challenging to attract participants. One of the main obstacles was student availability—with demanding schedules, many students struggle to commit to additional learning. Furthermore, there is an abundance of online resources, making it easy for students to choose from a wide range of existing courses. MIT also offers in-person training sessions, which provide another alternative. Additionally, the increasing reliance on Large Language Models (LLMs) has changed how students approach problem-solving; many now use AI tools to quickly answer questions, reducing the urgency for students to learn certain tools in more depth.
I still believe that developing a strong conceptual understanding is invaluable, and I plan to launch the courses again. During my fellowship, I began collaborating with instructors across multiple MIT departments who also teach software-related courses. Moving forward, I aim to strengthen these collaborations.
I plan to offer the courses at the beginning of the new academic year in September 2025 and again during the Independent Activities Period (IAP) in January. IAP is a four-week period at MIT that allows students and faculty to step away from their regular class schedules for more flexible learning, independent study, and research opportunities.
In both sessions, I will provide more opportunities for office hours and direct interactions, ensuring participants have access to support beyond the course materials. The courses and office hours will be open to everyone, including those outside the MIT community. Additionally, I will promote the courses online, allowing more people to participate at their own pace or join the virtual office hours.
However, the fellowship provided me with more than just the valuable experience in developing and delivering online courses, it also allowed me to connect with other BSSw fellows and engage with the broader Research Software Engineering (RSE) community. I am especially grateful for the chance to attend the U.S. Research Software Engineer Association (US-RSE) Conference last year, and I look forward to participating again this year.