The coding period for Google Summer of Code (GSoC) is over now. The last 10 weeks were packed with a lot of learning, fun, challenges, and coding.
Orcasound has an excellent culture of holding weekly meetings to report progress and participation in the DemocracyLab hackathon held once every two months. Orcasound has a nice community over Slack. Anyone who has an interest in making contributions but doesn’t know how to get started can chime in on Slack and learn about different projects. You will find many great minds wearing multiple hats — serving multiple roles to help the organization make progress.
During the coding period of GSoC this summer, we held an ‘All-GSoC’ call every week. We started with a nice ice-breaker round on different topics of discussion and then shared our weekly progress and any roadblocks or issues we were facing. I am glad I found some good friends and mentors through these calls. We also had one-on-one mentor-student meetings for more-detailed discussion of our respective projects and resolving any issues or roadblocks. I got a lot of chances to pair-program with one of my mentors, Paul Cretu, including the setup of an efficient development environment and some lessons on Git best-practices. I also have tried some project management skills like estimating tasks and measuring them, thanks to Paul again for that. Interestingly, as we were completing our projects under GSoC we got a bonus from the orcas — in the form of L pod calls heard by Orcasound Lab.
Things about GSoC that can be helpful:
The most important thing in GSoC is getting a complete idea of the program. Every student should start by going through the complete GSoC website. After getting a clear picture of the program, one should make a list of organizations that work with your skillset, and about which you are passionate. Sometimes your passion can lead your skillset and can drive you to learn a new thing. Taking time to explore different projects to find a good match will help motivate you to contribute consistently and enable you to write a better proposal at the same time. Draft your proposal early and ask for feedback from your prospective mentors.
Things about open source that can be helpful:
The best thing about open source software development is that each contribution counts. You can showcase your work in your resume or list them in your proposal. It doesn’t even matter if the contributions you list in a proposal for one organization were made to code for a different organization. I think the skill of collaborating with others is most important in the world of open source.
On the technical side, knowledge of Git is most important when stepping into working collaboratively. There are a lot of resources on the web to learn Git. I found the following resources particularly helpful in my journey:
- Glossary of Git commands
- How to Write a Git Commit Message
- How to keep your Git history clean with interactive rebase
On the non-technical side, regular communication is important. The team you are working with should always know which thing you are working on and how you are approaching that problem. It will help you to get some early feedback on your approach and it may help you avoid the mistake of walking on a long or a wrong path towards a solution.
I believe an organization about which you feel passionate can be a life-long asset for learning new skills. I have come a long way in my journey but still have a long way to go… so I am looking forward to making more contributions and learning a lot of good things as I continue my open source journey.