Posts

My GSoC 2026 Journey (Final Report): 12 Weeks of Learning and Contributing

Image
12 Weeks of Learning and Contributing to SunPy I’m really grateful that I got the opportunity to work on radiospectra during GSoC. Over these 12 weeks, I got to work across several areas of the project - from the ndcube migration and metadata to plotting, testing, documentation, support for different data sources and eventually the SpectrogramFactory redesign. What made the experience especially valuable was getting to learn from my mentors and the wider SunPy community along the way. Each review, discussion and challenge helped me understand the project better and become more thoughtful about how I approach a change. Before GSoC: Getting Started with radiospectra My GSoC work actually started before the official coding period. I had already made a few contributions to radiospectra  including restoring the WIND/WAVES client, fixing time and frequency handling in plotting and migrating network clients to newer SunPy APIs. Some of my early contributions were: PR #142:...

12 Weeks of GSoC: A Lot Learned, A Lot More to Do

Image
A Lot Learned, A Lot More to Do 🚀 And just like that, 12 weeks of GSoC are over! The last two weeks have been quite different from the earlier ones. There was a lot of finishing up, reviewing, fixing things that broke along the way and making sure the bigger pieces of the project were coming together properly. Here's what I've been up to. Learning to Write Less Code 😅 One of the biggest lessons from these weeks actually came from a code review. I had previously added some custom methods for getting time and frequency profiles from a spectrogram. The code worked, but there were some change of plans, during review we realized that ndcube already provided the functionality needed to achieve the same thing. So instead of keeping the extra code, I removed it and focused on showing users how to use the existing ndcube methods. It was a really good reminder that adding more code isn't always the right solution . Sometimes the better approach is to make better use of what alrea...

Weeks 9 & 10: Slicing, Profiles and a New Factory

 Slicing, Profiles and a New Factory 🚀 The last two weeks have been a pretty interesting mix of working on spectrogram slicing and starting to look at one of the bigger architectural changes in radiospectra . A lot of the work this time was about understanding how the different pieces fit together and figuring out how to make things easier for users and contributors. Exploring Slicing and Profiles 🔍 After the ndcube refactor, I started looking more closely at how users could work with individual parts of a spectrogram. One thing I wanted to make easier was getting a time profile at a particular frequency or a frequency profile at a particular time . Initially, I worked on adding time_profile() and line_profile() methods to GenericSpectrogram . To make this work, I had to deal with something I hadn't worked with much before—converting physical coordinates into the actual array indices behind the spectrogram. I added a couple of internal helpers to handle this conversio...

Weeks 7 & 8: Making Spectrograms a Little Easier to Work With

Image
Making Spectrograms a Little Easier to Work With Another couple of weeks have gone by and it's been a mix of writing code, responding to reviews and learning more about the radiospectra codebase. Compared to the first few weeks, I spent less time figuring out where things lived and more time thinking about how people actually use the library. That shift has been really fun because even small improvements can make a noticeable difference for users.

What Six Weeks of GSoC Have Taught Me

Image
What Six Weeks of GSoC Have Taught Me 🚀 "I came into GSoC thinking I'd spend most of my time writing code. Six weeks later, I realized that's only a small part of the journey." A few days ago, I successfully passed my Google Summer of Code 2026 midterm evaluation 🎉 and it felt like the perfect time to look back on everything that's happened over the past six weeks. I've been working with the SunPy community on radiospectra  and honestly, this experience has been very different from what I expected. Sure, I've written code, opened pull requests and fixed bugs - but that's only part of the story. The bigger lesson has been learning how an open-source project is built and how people from different parts of the world collaborate to make it better. So instead of another weekly update, I thought I'd share a few things this journey has taught me so far. Learning a Large Codebase Takes Time ⌚ When I opened the repository for the first time,...

Week 5 & 6 - The Work You Don't See 👀

Image
🔍 Behind the Scenes Users probably won't notice most of the work from these past two weeks... and that's completely okay. When people think about open source, it's easy to imagine exciting new features, shiny visual changes, or new capabilities. This wasn't one of those weeks. Instead, I spent the last two weeks working on something that's much less visible but just as important - making radiospectra easier to maintain, easier to extend and hopefully a little easier for future contributors to understand. 🏗️ Building a Better Metadata System The biggest piece of work was redesigning how metadata is handled across the package. Instead of relying on plain dictionaries everywhere, I introduced a proper metadata architecture using SpectrogramMetaABC and SpectrogramMeta , backed by NDCube's NDMeta . Once the foundation was in place, I gradually added dedicated metadata classes for each supported instrument, moving instrument-specific logic out of the sp...

GSoC 2026 – Weeks 3 & 4: Looking Beyond the Code

Image
Understanding the Infrastructure 🔧 The past two weeks have been quite different from the start of the coding period. Instead of spending most of my time implementing new functionality, I found myself exploring a part of open source development that I had very little experience with before: testing infrastructure, CI workflows and release tooling. One thing I've learned so far is that writing code is only part of maintaining a project. Making sure that code continues to work months or years later is an equally important challenge. Bringing Figure Tests to Radiospectra 📊 The main focus of the last two weeks was introducing the initial figure testing infrastructure to radiospectra. Before this, I had never worked with figure tests. My understanding of testing was mostly limited to checking outputs and functionality. Testing plots turned out to be a completely different world. To understand how it worked, I spent time exploring the figure testing workflow used across the SunPy e...