I would love to share my experience with what it takes to get into GSoC. I hope it would help newcomers to get into the world of FOSS.
You might not be the best programmer in your school, but you should believe in thyself. College grades do not matter. Neither do your linguistic skills. GSoC requires a certain passion and dedication towards your interests.
If you’re not an open source enthusiast and wouldn’t like to write open source code, then GSoC is not for you. The only difference for you should be that Google is providing a stipend for you to do this.
Selection of the organization you want to work with is the most important factor. Being aware of the kind of organization you want to contribute to is a very hard thing to do, and is one of the few steps where people go wrong. For this, you should shortlist your interests. Research about the organization. Know what you are interested to work on. Choose a job you love, and you will never have to work a day in your life.
Some organizations expect you to do minor bug fixing/ development tasks before accepting your proposal. Others are more interested in your profile and interest. It also depends on the size/scale/platform of the project. There might be competency tests, one-on-one interviews e.t.c. My advice: Adopt. If you’re on a mailing list where every other candidate is fixing bugs, then do it. Otherwise, it’s more about bringing in ideas and perspective.
Often, organizations are explicit about the same. You might want to check their GSoC pages/ consult with people from organizations that interests you. Do a lot of research on the organization you want to work with. Services they build, languages they use (this shouldn’t be an issue) and if that interests you.
Communication with the organization is very important. An organization gets tens if not hundreds of proposals, all equally good and qualified. How can they trust a random person, halfway around the globe? If you can show that you’re passionate enough to work, skilled enough to code and dedicated enough to be a long-term member of the community, you’re 100% in.
Every organization has its own way of communication. Some prefer mailing lists, others the IRC and a very few others use asana, Bootcamp e.t.c. Whatever it might be, be an active member of it. Again, an important thing to remember is to make your presence felt amongst the developer community. This will help you at later stages of the application process. But always remember to ask intelligent questions. Never give a chance for someone to redirect you to this link.
Next, understanding the codebase. This is a daunting process if you’re new. But a little perseverance can get you through this. You can always ask for help in your community discussion forums and help others whenever you can.
Proposal writing is a tricky part. Opinions/ expectations differ. I would recommend writing proposal(s) for a single organization. There’s no point in writing it for multiple organizations, it doesn’t increase your chances of selection. Also, you might write multiple proposals to the same organization (at most 2, if you ask me). Remember that proposals tend to change during the period. A good proposal would include motivation of why the project/idea is essential for the organisation, a precise description of the implementation process (or an idea of how you’re planning to implement), concrete milestones, and availability. The “about me” part is not important, you can provide an external link to your blog/ LinkedIn page e.t.c. Take extra care while writing blue sky proposals, make sure you get it verified by your mentors before you submit. Otherwise, they might end up in spam.
Write your proposal as early as possible and get it reviewed by your mentors. Sometimes, peer reviewing can also be done. I would recommend not to PM/ mail the mentors directly (or anyone else for that matter). Also, don’t ping mentors unless it’s really necessary. Ask permission first, mailing etiquette matters a lot.
After the proposal deadline, you might have to hang around in the IRC, solve some minor bugs, discuss the implementation process of your project e.t.c. Because if you haven’t really proved your dedication/ coding skills to the organization yet, your chances of getting accepted get even slimmer, no matter how strong your application may be.
Luck always plays a major role in our lives. You might need a pint of a portion of luck too.
Acceptance/ rejection into the program isn’t an indication of your coding skills or technical abilities. There might be millions of reasons for your rejection. Mentors may not be available, the organization may not have enough slots for your project or it may not be the right time for your proposal.
Just do your best and leave the rest!
Cross-posted from https://sric.me.