How to GSoC
aka. Behind the scenes of Project Synapse
Prologue
I initially came across GSoC during the first year of my CS undergrad. I remember it being an extra after-hours lecture from one of our seniors who’d participated the year before.
He informed us about the recognition, opportunities that’ll be opened to us, and of course, the fat stipend we’d get from Google.
The session was then followed by one of our lecturers encouraging us to apply with the bonus that if we pass, we’d get additional marks.
Me being me, I didn’t think much of it at the time and blew it off.
As far as I was concerned it was additional grunt work that nerds would do, but not me.
However, fate it seemed, had a sense of irony.
A dance with Docker
Years went by.
Assignments, coursework, and exams came and went, followed eventually by my graduation. GSoC was way past the rearview mirror and a distant memory at best.
Upon my graduation, I had a brief stint as a Technical Evangelist at an open-source middleware company; Entgra. Thinking out of the container
This is where I made my first independent foray into docker and containerization technologies in general.
The first project I did was more error than trial. It was a very short-sighted attempt to try and dockerize a very heavy server runtime and get it to work on a Raspberry Pi.
I’ve written a dedicated article about the project linked below:
While the project didn’t have much practical potential, it gave me some insight into the applications of docker and exposed me to the domain. Also, I had a tonne of fun, doing it.
In fact, one of the companies whose technology I used; balena.io, reached out and sent me some swag which was totally unexpected.
Naturally, this encouraged me to work harder and dive even deeper into technology.
Thinking out of the container
While my work with Balena gave me a lot of insight into Docker, it did leave me wanting more, especially when it came to deploying containers on Kubernetes.
While Kubernetes itself runs atop Docker, it was different enough to warrant its own bit of research.
Since I’d left my previous workplace and just started work on my masters as a Research Assistant on a completely different domain, I didn’t have a reason to invest a lot of time in it.
Regardless my 2nd encounter with GSoC happened a couple of months later on Twitter.
While scrolling one day, I came across several tweets notifying applicants of the upcoming deadline.
After having a chat with a friend of mine who happened to be a past GSoC participant, I decided to give it a shot and check up on the listed organizations.
My previous attempts at GSoC all involved scrolling through the massive list of available projects and being completely lost on what to go with. However this time, I was specifically looking for something; containerization.
Coming from my earlier work trying to dockerize the Entgra IoT server I knew it has to be work that should expand my knowledge on cloud-native technologies.
At first I simply searched for the keywords docker and containerization. But the results I got were not exactly what I was looking for. I came across the Apache Software Foundation (ASF) after I started searching by organizations instead of technology.
Now the ASF is pretty well known in the industry. It’s actually one of the biggest open-source software organizations in the world.
After a couple of clicks, I hit the jackpot…
It was exactly what I was looking for!
Debriefing
Once I saw the project I was pretty much settled on it, so much so that I didn’t even bother looking any further.
I wasted no time in getting the details of the listed mentors and contacting them.
After the initial dialogue was created over email we scheduled a Google meets meeting to get acquainted and discuss project objectives. It was here that I further elaborated my experience working with Docker and what I intend to do with the project.
I thereafter wrote up a proposal detailing exactly what I intend to do after conferring with my supervisors.
After a little bit of back and forth I and amendments we were satisfied with what we had.
The link to the Google Doc can be found here.
I submitted the proposal and waited with bated breath.
A couple of weeks later, on my birthday, I got a mail from Google.
Showtime
The next couple of weeks were a blur of reading documentation, running Synapse servers, brushing up on my Docker skills, installing Kubernetes, minikube and all the relevant tools.
In the middle of it all my dual booted machine decided to run out of space on the /var directory. For the uninitiated, this is quite a problematic issue.
One OS reinstall later, I was back in business.
Eventually, I was at my final evaluation.
I decided to write a dedicated blog post on it which you can check out below.
A week after the final evaluation I reaped the results of those weeks of work and some sleepless nights.
Thinking out loud
GSoC 2021 lasted for a sum total of 10 weeks.
This is a summary of my thoughts on the whole experience.
Stipend: First things first, it's cool that you’re getting paid for working on an open-source project. I did not focus much on this as my main objectives were to get the connections and experience. A word of advice if you are hoping to participate in GSoC in future, I recommend connecting a USD account so that you get payments without conversion. So the value of your stipend will grow with time.
Communication: Fortunately I managed to have weekly update meetings through Google Meet with my mentors from the very beginning. It not only encouraged me to be consistent with my work but also get rid of programming blockers sooner.
I also made a special effort to write down weekly feedback and record special notes given by the mentors.
This allowed me to track my progress across the weeks.
Work: This was a little bit tricky since I was juggling a couple of other obligations too. I didn’t focus on creating a strict timetable or delegating specific hours to work on the project however but worked on it whenever I could and whenever I felt like it. This combined with a level of luck made all the difference.
Community: One of the main components of an open-source project (other than the code and product itself) is the community. Whenever I ran into a blocker or a doubt in the implementation, my mentors encouraged me to not only share it amongst the three of us but with the wider community.
So questions were asked it was with the broader community so that through my issues and doubts, everyone can learn.
And that just about wraps it up!
Post-Credits
Needless to say, I was absolutely thrilled that I got to work on this project for GSoC.
It provided the perfect playground and room for trial and error by allowing us to work within an open-source product while giving the opportunity to engage with a mature developer community.
I’m grateful for my mentors Vanjikumaran Sivajothy and Isuru Udana for guiding me through the whole experience and my research supervisor Dr Sulochana Sooriyaarachchi, for accommodating my development work whilst doing the research.
While this is one item off the bucket list, I do not intend to halt my GSoC story at that.
As Dr Lanning says in I, Robot (2004)
Everything that follows, is a result of what you see here…