How I got selected for Google Summer of Code with AerospaceResearch.net 🤓🚀
Journey during the pre-GSoC period
On 17th May, I've received my acceptance letter for Google Summer of Code with the organization AerospaceResearch.net. My proposal for CalibrateSDR has got accepted!
This is my first time applying for GSoC and I have only applied for AerospaceResearch this year. It was such an exciting moment, the thought of working on an open-source project that can make an impact on the SDR community gave me immense pleasure.
There are a lot of tutorials, and videos out there that tell you "how-to" get selected to GSoC. Here, I'm just narrating my journey with the open-source project, that happened during the pre-GSoC period. So, let me share some of my experience, which can be helpful if you are applying for next year.
Why I choose AerospaceResearch🚀🤔
For me, there are numerous reasons why I choose AerospaceResearch as my organization to work with. What's more important from a beginner's perspective is that the community should be welcoming, and projects should be resonating with your skills. Otherwise, there could be a struggle within the community. Even though most of the open-source organizations are working the best to help beginners to contribute, mentors at AerospaceResearch seem to be very supportive. With those who have an interest to learn, and are crazy about space, AerospaceResearch is the perfect organization to choose from!
In my case, being proficient in Python and having an interest in signal processing, I went to the project repo to see what's all about CalibrateSDR. The codebase seems to be pretty understandable. Then, I checked the conversation happening at CalibrateSDR stream (on Zulip). I wasn't hesitant to participate in the discussion and asked my queries there. Mentor seems to be very supportive and helped a lot to further research about various signal standards. My first contribution to the repo was a troubleshooting fix, which got merged.
When it comes to choosing the organization, try to find the most suitable ones. This will be a major factor. Moreover, choose quality over quantity. I think, making multiple proposals won't increase your chance. Try to concentrate to increase the quality of your commitment towards the projects. If you are active in multiple open-source organizations, then it is great. Be sure to choose the organization in which you are confident, and your skills match up. Try to do minor bug fixes, ask for help if stuck, and learn what the organization is working upon. Not just aim for GSoC, try to work on their projects wholeheartedly.
What is project CalibrateSDR❓
Software Defined Radio(SDR) provides a re-usable and "future-proof" radio platform by combining an RF-to-baseband transceiver PHY and a digital processor. If you are new to SDR read more about it here. Primarily, CalibrateSDR is a tool that determines the frequency offset of SDRs accurately (which can happen in a large range for cheaper ones, or maybe due to warming of dongle). Moreover, using existing SDR APIs supports, we can directly correct the values. We can also check out the offset by using recorded IQ Samples, usually in a .wav format. This can bring a lot of help to the SDR Community. This tool can bring in relief, to fix the offset in a more accurate manner.
I will be working on the signals GSM, LTE, and NWS during my coding-period, and will try to implement SoapySDR API to bring in more variety of devices to work with. What I will do in more specific is:
- Find how sync pulses work in various signal standards
- Process the signal using Python and calculate the offset
The knowledge of standards is required to find the usage of sync pulses within the signals. Even though the learning curve was steep, I did a bunch of trials. The first thing I did was to understand how the project works with DAB+ signals. There is already a cool blog from Andreas Hornig (my mentor) on how CalibrateSDR works as of now. After getting acquainted with that, I started learning how GSM Signal works, how Frequency Correction Channel can be used for the offset correction. Whenever I got stuck, my mentor helped me and guided me with the right resources.
During my preparation of the proposal, my mentor has helped me a lot, giving me suggestions. Take the pre-GSoC period a chance to make the proposal stand out from the crowd. One thing to keep in mind is that, craft your proposal earlier, so that the mentors can give you feedback on how to improve. One of the baselines of open-source is that
There's always room for improvement no matter what - Ali Krieger
Some things to keep in mind about GSoC 🤯
Start with open source as early as you can. It's not a competition. Take it as an opportunity to apply the skills you have learned. Think of the impact your contribution could make, as in my case this keeps me motivated within the open-source community.
The earlier you choose right organization the more you can focus on their specific project. Don't wait until the list of organizations to get declared. Every year, you can find most of the organizations are repeating. Check out the list of organizations page [here] (summerofcode.withgoogle.com/organizations). Try to contribute to open-source on a wide range.
Most often, we can see people taking GSoC as a competition. But the thing is, it's an open-source program. The core idea is to promote open-source culture. So, whether got selected or not, apply your skills and make a meaningful contribution to the organization, in whatever way you can.
That's all folks! If you find this helpful, don't forget to share. I will write my blogs here and try to share what is my progress on the project, which can be insightful if you like to contribute to open source. Moreover, I will share my work with CalibrateSDR as weekly blogs over the page hosted at AerospaceResearch.net.
Have doubts? Just ping me over Twitter