May 6, 2019 @UTC 18:00 After a decade long wait, the results of GSoC were finally out! I took a deep breath to settle the butterflies in my stomach, and opened my GSoC Dashboard. The verdict of my past three-months struggle was before my eyes. What was a mere dream for me 4 months ago, has now become an unbelievable reality!
This was the best moment of my life, I was supposed to be like:
But NO that didn’t happen at all! TBH, apathy struck me. My whole family was rejoicing and I was literally struggling to feel happy! 😬 It took me nearly 5 hours in actually believing and accepting this achievement.
All those struggles from figuring out how to fix a issue to creating a PR; from exploring an unheard tech to finally implementing it; from bringing myself out of self-doubt to self-belief; each one of them paid off really well!
The journey upto here was not easy! I started as an absolute beginner to Open Source World with a newly developed interest in Data Visualization using Python. Until Jan end, I was only a simple programmer who was drowning under the pile of to-dos accumulated since past 5 unproductive months. Hence I was not much serious about the preparation of GSoC’19, which was another To-do for my list. But fortunately my sister helped me getting out of that rut by making me realize the power of ONE THING -
Narrow down your focus to a single thing that matter the most and put all of your energy to achieve it, irrespective of howsoever big it is! And that’s how you get the extraordinary results.
She convinced me to read this book “The One Thing — by Gary Keller” which changed my entire mindset about productivity. So throughout my journey until now, I have read this book & simultaneously implemented the mind-blowing notions presented by it. One of my favorite is Geometric Domino Progression:
You do one right thing, then you do next bigger right thing, and so on. Over time this sets up a chain reaction — a geometric domino effect — that knocks off the largest domino (the BIG thing you decided to achieve) at the end.
Once I made GSoC preparation my One Thing, everything fell into place. I put all of my energy and attention in this single goal and with persistent efforts, I have finally reached upto here, as a GSoC Qualifier! 😊
Journey until now:
If you don’t know much about GSoC, here is the brief up of what one does for getting selected in GSoC:
- Researching & Getting ready: GSoC is famous for the extensive research it demands. It takes time to understand the phases of this program and how to crack them. After that I was supposed to shortlist open source organization(s) participating under GSoC’19. Being an astronomy enthusiast, I chose StarKit (a sub Org under Python Software Foundation) that is developing a Python package for stellar spectroscopy.✨ And it even had an appropriate project idea as per my interest — data visualization, on its ideas list.
- Active communication & contribution: Then I introduced myself in the communication channel of my org. I still remember what a brand new experience it was for me, when I completed the initial task and shared it on the channel. 🤩 The golden rule is keeping the loop of communication & contribution alive, I did the same. As per my project idea of interest, I asked mentors what should be my next task, they explained what they expect. It all sounded pretty new but I googled it, learned it, figured out solution and created a PR (Pull Request is a request to merge the code one adds, in the main codebase of an Org). I started with one PR (fixing a typo in readme) and ended up with 7 PRs to enlist in my proposal. Gradually with each contribution, I understood their codebase and became aware of the areas where work is required.
- Drafting Proposal(s): This was the most struggling part where you’ve to brainstorm your ideas for the project & consolidate them into a solid proposal. It was a daunting task to convert a two sentence long idea statement and few conversations made to understand the project goals, into a complete project plan broken down into a 3-month timeline of Summers. I devised the suitable use cases, researched about various visualization techniques & tools I could use and shortlisted what would work best for my project. And after filling lot of pages in my diary with brain-maps & decisions, I was ready with my idea. Next essential part was to write it as an understandable proposal by incorporating all the elements expected from a good proposal (abstract, goals, deliverables, implementation details, wireframes, timeline, milestones, past contributions, personal background info, etc.). After some sleepless nights, I successfully wrote a 13 page long proposal, and asked for feedback from my mentor to do the required changes. Then I let my Grammar Nazi sister proofread it and after few tweaks, I finally uploaded it on my GSoC Dashboard. 😪 *Sigh of relief *
- Then I continued contribution in the 3 weeks window students get before the results are declared. Since I knew what needs to be done, I did some major fixes and created two PRs consisting my significant contribution to the Org until now. 🙃
Benefits of being a part of Open Source Community:
Everyone knows the importance of work experience besides just learning skills. To gain that professional hands-on experience in our field, we seek an opportunity to work in a reputed organization. But we can’t overcome the walls present around such an opportunity unless we raise our skills to a significantly high level, that too by undergoing a competitive struggle! But that’s not the case with Open Source World.
Anyone with a minimal skillset (like I had), can get started by contributing to any Open Source Organization, whether large or small. Your 1st contribution can be as small as fixing a typo in docs, or raising an issue. And then gradually by keeping your contribution persistent (keep fixing issues, adding features, etc.), you gradually enhance your skills by learning the stuff required thereupon. This basically works on the idea of Learning by Doing rather than Learning for Doing things later on (which never comes for most of people). I was completely convinced by this idea since an year ago, but experienced its real power in my Open Source journey. You can find me on GitHub as jaladh-singhal.
Another great thing is that almost every Open Source Org is very welcoming (they don’t have any walls). The members of their community will help you getting started. They will answer you queries on their official mailing list, but only thing to keep in mind is to Google before you ask. I am extremely thankful to the mentors of my Org — StarKit, who helped me a lot in understanding their codebase and answered many of my questions. The challenges they put before me to start working on XYZ, helped me to push myself and learn multiple things which I could have never did. And above all, I find it true what I heard: “Nothing gives you more happiness than getting your PR merged”. The morning of May 6 (result date) when I found that 2 of my PRs were merged, gave me more happiness than the evening when results were out! 😅
I still wonder as well as feel proud on what this three-month journey had made me learn! I now have a sound knowledge about many things which I never heard/tried before: Linux OS, Git, Python packaging & virtual environments, Jupyter Notebooks & IPywidgets, Sphinx documentation, Jinja templating, various Data Visualization techniques, Plotly.py (Dash), Continuous Integration using Travis CI, and several others. During this period, my Googling & problem solving skills have also improved considerably, that are vital to anyone in the CS field.
In spite of various challenges I faced when I wanted to give up, the only thing which kept me moving was these exciting learnings I were gaining. My inspiration was the notion of my favourite book — The Alchemist:
It is the evolution of self during a journey, which matters more rather than the destination itself.
OK! So now I’ve just noticed that it has become quite long and may sound kind of a self-help “lecture” to some. But at the same time, I am also realizing that this is how things start to sound like when your dreams become true. 😉
What’s next: Onset of a new Journey!
This was just my three-month journey of Preparation. The real work: three-month Coding Period of Summers, when I will be developing my proposed project, is yet to start from May 27. What can be more pleasing to an astronomy enthusiast than working with the real world astronomers — my mentors. 😍 I am thrilled for the upcoming Summers!
Although no one is a fan of Summers when he is living in India, but this is the 1st time when I’m eagerly waiting for the Summers:
Thanks for reading! I would love to know your responses or to answer your queries.