A review of my Google-funded, Opensource, Satellite-connectivity Project.
Tags:
satellite python opensourceDescription:
My epilogue after 3 months working for Google Summer of Code, with tips to be selected to the program.
Because of the recent sharp growth of the satellite industry, it is necessary to have free, accessible, open-source software to analyze satellite signals and track them. In order to achieve that, as one of the most essential steps, those applications must calculate the exact centers of the input satellite signals in the frequency domain. My project is initiated to accommodate this requirement. It aims to provide a program that can reliably detect satellite signals and find their exact frequency centers with high precision, thus providing important statistics for signal analyzing and satellite tracking.
At the end, the software was able to locate the exact centers of several popular satellite signals with the accuracy of 1 kHz. The result can be then fed into other programs as inputs in order to locate satellite positions, such as this one from Aerospaceresearch.net.
Most works are done by myself, under instructions, monitor and help from mentor Andreas Hornig of Aerospaceresearch.net.
More information about the project, including detailed explainations, could be found at Archive Project Details | Google Summer of Code (GSoC) 2021 .
Overall, open source software is software with an open "source code", that everyone can view, inspect, modify and improve. Open Source Initiative (OSI) is the non-profit organization that administers opensource licensing around the world.
In constrast to "proprietary licensed software", opensource software license is generally:
The internet today runs on open source software. Many, if not most of essential tools for server and software development, such as the Linux Operating system, the Python programming language, the version control system git, are open source.
Open source software development is important because it encourages innovation through collaboration. For example, a program is written by people from the US, then studied by a person in Tokyo, who later find a security risk within the code and contribute a patch for it. Then, a team in India found the patched code and discover a way to improve the it. The cycle continues as the product is improved again by again by countless developers around the world. Since the knowledge is shared, and the final product is free, everyone wins.
Google Summer of Code is a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors.
– Google Opensource
The program is funded and administrated by Google, where contributors get paid to contribute their codes. Contributors must work under the guidance of mentors, who oversee their projects. Codes from contributors are officially evaluated at least twice during the course of the project, and contributors must pass the evaluations to get paid.
It is somewhat competitive to be admitted to work for GSoC. According to statistics from 2017, 20,651 students from 144 countries registered for the program, with only 1318 students were accepted, leads to the acceptance rate of only 6%. In addition, this rate is dropping quickly year by year due to the fact that more students apply for it every year, while the total number of accepted students remain at a certain level.
In 2021, from a friend, I knew about GSoC and decided to give it a try. There were a lot of interesting projects, but to my interests in the field of wireless technology, I applied to a project about satellite signal and signal processing. I was completely new to the field, and did not know what to do. However, with my little knowledge, I was able to impress my mentor enough for him to give me a try, in which I did not disappoint him. Now, looking back at what happended, I realized that the key to be accepted to GSoC was not having a great background, but rather:
Start early, willing to learn, and be determined. – Binh Minh from the future.
The normal procedure to get accepted to anywhere is often: prepare your knowledge - wait until near the deadline - write a proposal and resume - submit and hope for the best, however, that was not the best practice in GSoC. Because GSoC is a program to contribute to open source projects, everything is transparent and people are welcome to contribute their codes and show their ideas anytime to anyone interested.
They keyword here is "anytime". That was why about 2 months prior to the opening of the application period, I joined the project forum and started showing my ideas and how I could benefit the organization. My initial proposals were terrible, but I was will to learn. Gradually, thanks to tremendous help from Andreas Hornig, who later on became my mentor, I was able to improve the quality of my idea, and my code. In addition, my work with Hornig made me understand the philosophy and culture of the organization, which enabled me to adapt my contribution proposal to fit what was needed.
By the time I started working for GSoC, I did not have to do anything much, because my application was just a summary of the ideas that I had shown to the organization and had been reviewed many times already.
Working with people in GSoC was an amazing experience to me. Since everyone was an open source developer, money and profit were often not the main concern. Everyone worked each other with a collective determination of producing the best pieces of software that can be used by anyone without any pay barriers.
Since now GSoC has opened their quota to everyone, not only students anymore. Probably later in my career, when I have more time, I will return to the program to relive that unforgettable experience.