Day 18 of #MeetTheMaintainers
Meet SciPy and Gagandeep Singh,
Trying to do serious maths in Python without SciPy is like trying to bake a cake with a fork and vibes. SciPy handles the tough stuff, solving equations, crunching data, doing science, etc so you don’t have to reinvent calculus on a Monday.
Say hello to Gagandeep, one of the maintainers delivering you research-grade results without the research-grade sleep schedule. (personally my fav meet so far)
Q: A small brief about your project
SciPy is an open-source Python library that extends the capabilities of NumPy to provide advanced scientific and technical computing tools. It offers modules for optimization, integration, interpolation, eigenvalue problems, algebraic equations, and more, making it a cornerstone for scientific research and engineering applications in Python. Built for performance and ease of use, SciPy enables users to solve complex mathematical problems with concise, readable code. The library is actively developed on GitHub, where its source code, documentation, and development discussions are maintained, and it remains a fundamental part of the scientific Python ecosystem.
Q: How can someone support your project?
Contributions are always welcome to any of the projects I work on.
Q: One FOSS maintainer lesson for your younger self
If I could motivate my younger self, I would say, “Believe in yourself more and have the courage to contribute to larger open-source projects, like PyTorch or TensorFlow.”
I think when we start out, there’s this fear that we’re not good enough to contribute to bigger, well-established projects. But true growth comes when we step out of our comfort zones and contribute to challenging projects. Working on such projects not only improves your coding skills but also gives you the opportunity to understand the project’s ecosystem, interact with the global community, and express your ideas more effectively.
I’d also tell my younger self, “Turn your doubts into strengths; you’ll learn something from every contribution, no matter how small or big.”. Contributing to large projects like PyTorch helps you improve not only your technical skills but also your understanding of real-world software engineering practices, debugging, code reviews, and collaboration skills.
This bravery would not only help in technical growth but also boost your confidence and self-belief. Many times, we think we need years of experience to contribute to big projects, but once we start contributing, we learn and enhance our skills.
Q: Why do you do it? Why do you bother maintaining a FOSS project? What keeps you going?
I initially started contributing to open-source for GSoC and to gain recognition within the community. At that time, it felt like a great opportunity to build my portfolio and get my name out there. However, over time, my perspective has shifted. Now, I contribute to open-source purely for the enjoyment it brings and the freedom it offers. I love the fact that I can work on the problems I’m genuinely passionate about, without any external pressure or expectation. The beauty of open-source is that I can keep all of my code open for everyone to see and contribute to. It’s no longer just about recognition; it’s about the freedom to explore, learn, and grow through the projects I work on. In a way, my open-source contributions have become my CV, showcasing not only my technical abilities but also my dedication to creating meaningful, open, and accessible software.
Q: If your repo had a theme song, what would it be?
All three of my projects are related to Sciences so I would go for, “Cornfield Chase – Hans Zimmer” from “Interstellar”. That’s what I feel when I work on these projects. :-).
Q: Which file in your project would you most like to set on fire?
All the Fortran code.
Q: What’s your open-source villain origin story?
In my first year of college, I proposed a project for GSoC to integrate complex functions into SciPy’s integrate module, specifically focusing on complex numbers since we were studying that topic in our second-semester course. However, the community rejected my proposal, so I took the same idea to SymPy. There, it was also rejected, but Aaron Meurer, SymPy’s maintainer, encouraged me to try again the following year. So, I began contributing to SymPy. I worked on fixing a solver issue in SymPy, as far as I remember, and then I moved on to fix more issues. While working, I came across the idea of Markov chains in the stats module, and I really liked it. I started working on a proposal and ended up submitting several pull requests to the stats module.
Eventually, three proposals came in for the same idea, so the mentor decided to test us. Luckily, two of us were selected. I was thrilled when the results came in at 11:30 PM, and the first thing I did was call my mom. She was also happy. It had been a long time since anyone from our college had cracked GSoC. 
Anyway, I worked on the project and learned a lot from my mentor—the math and algorithms I created for SymPy’s Markov chains were very fun. Then, GSoC turned into something bigger, and I started enjoying it more. Later, Ondrej (the founder of SymPy) reached out to me for another project, LFortran. This was last year, and I had my second GSoC there. In the meantime, Ondrej also recommended me to Quansight (where I started contributing to SciPy), and since then, I’ve been involved in these projects.
Q: If you had to use one emoji to convey what it is like to be a FOSS maintainer, what would it be?
- Construction sign emoji. Open source is all about constructing in the open.