This summer I had the opportunity to participate in the Google Summer of Code (GSoC) program. It was a great experience and therefore I decided I would share with you the most important parts of it.

With little effort you can easily find plenty of other articles from previous participants of GSoC available in the web. Some of these are much more detailed than what I have planned for this post, so make sure you go read them if I got you interested in GSoC.

What is GSoC?

Quoting the official GSoC webpage:

Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.

That’s really it. Of course, if you want to apply there’s more that you must know, but trust me, you’ll find everything pretty easily in the official webpage above.

I first heard about the program when, in a conversation with a teacher, I was told about a student that had participated in the previous summer. Funny enough, this student, Diogo, was to become my mentor in the same program, just one year later.

GNU social

I already knew Diogo before deciding to apply to the program. We even attended to MIUP’18 (Portugal’s SWERC qualifiers) as part of the same team. It was during our stay in Covilhã, where MIUP took place, that Diogo introduced me to the fediverse. He explained the general idea behind federated software and told me about his GSoC’18 experience working in a federated social network - GNU social. I obviously became interested in the matter and a few months later, when Diogo told me he was organizing GNU social’s nineteen edition of GSoC, I decided to get involved!

After some research and continuous discussion with Diogo and the community, I eventually submitted my proposal, you can read the abstract here. It is essentially a mix between the first and third ideas made available this year.

This was the only proposal I wrote and I was really happy when it end up being accepted. After a first period dedicated to community bounding, I oficially started my summer of code!

Coding Phase

It wasn’t hard to get started, I was attributed with an easy first non-planned task to help me get more confortable with the codebase and to push my first code. After this it was much more simple and easy to oficially start working on my proposed plan.

During the 3 months of development we (me and Diogo) were constantly adjusting the schedule and priority tasks. This is expected to happen and so it’s not a surprise that the plan deviated a little from its original form. In my case, the work end up being much more centered in the ActivityPub protocol. This protocol can be seen as the federated in federated software.

You can learn more about what I wrote this summer here.

Conclusion

This journey was by no means easy to get through. I’ve struggled to keep up with my schedule sometimes and, being my first remote-work experience, it was hard to maintain a regular schedule of working hours. It was also my first time coding for a big web project, that made me slower in many of my tasks.

All these difficulties are nothing compared to the high-valued experience they turn into once you successfully conquer every step of the program. Furthermore, you get to contribute to some project you like and to know and learn a lot from many interesting people.

With all this I can only advise any student out there to participate in GSoC, it is awesome! Like I said earlier, you can find everything you need to know pretty easily, but feel free to contact me with any doubts anyway.

The mentor and community

Before finishing, I would like to once again point you in the web-direction of my friend and GSoC mentor, Diogo. I’m sure you’ll find him to be a very interesting person.

As a mentee of Diogo, I was always provided with time to discuss ideas and to be guided in moments of more difficulty. Furthermore, I was never provided with solutions but hints or places to further explore. Diogo perfectly balanced his interactions with me and, as a result, my GSoC experience was the richest it could be. He shares a great passion for the project and that was positively contagious, it was a pleasure working with him.

Finally, a word of thanks to the GNU social community, there was always someone to interact with and to learn from. I’m sure I’ll keep contributing to the project.