For the past few summers, Google has done this program called Google Summer of Code (GSoC), wherein college age students are funded by Google to work on a project for an open source organization. Every year, the organizations apply to Google to be accepted as part of this program, and then post an ideas list for students to choose from. Students then submit proposals for features to implement, and the organizations pick students they want to work with, based upon how many slots they are awarded by Google (number of students Google will fund per project).
A questions was raised in the #gsoc IRC channel on FreeNode IRC network (irc.freenode.net) about the fairness of this system, and allowing previous GSoC students to apply again to the same organization. Obviously allowing GSoC participants from past years, who worked with a certain organization, gives this students an advantage in their application to the same organization in following years.
That said, the premise behind GSoC is to get students interested in working with open source organizations. This is partially done by providing funding for work done, and partially done by attaching the Google name to it. The more people who contribute to open source software they better (similar to concept to “many hands make light work”). That said, Google obviously can’t fund everyone ever interested in participating in open source work, despite their massive coffers. They can’t even fund every undergraduate aged student interested in working in open source (GSoC is open to graduate and PhD students also).
Students who have participated in past years do have an advantage, they already know the code, they already know the community, presumably the community already likes them (assuming the student was paid the full amount). This is all true, and there’s no real way to get around it. New GSoC applicants can however apply to other organizations (students are allowed to submit up to 20 applications, although they really only have time to submit about 5) where there are less returning students.
This may come off as harsh, but it seems as though the purpose of GSoC isn’t to get every single college student interested in working with open source, but instead to get the ‘best’ (where best is decided by the open source organizations) working in open source, by providing a good monetary stipend. Competition is a part of the Summer of Code application process, just as it is with every job application ever.
Ultimately, returning students applying again to the same organization isn’t that different of a situation than people who have previously interned at a company seeking another internship, or a full-time position upon graduation. The company knows the student, knows what the student is capable, and has invested time in teaching the student the way things work within that company.
That said, some of the organizations that participate in GSoC make a point to try and attract new talent. From their point of view, getting new talent into open source and is better for their organization and for open source than continuing to fund students who already know the ropes. This is an ideological difference, and each organization handles it differently. In some cases, organizations fund returning students, in other cases, students who have participated for 2 or 3 years act as mentors because they are already so integrated into their organization. Further, some students graduate and are no longer eligible to participate (as a student, they are still encouraged to continue developing, act as mentors, etc.), and some students choose to work with a different organization, where they’re having to prove themselves just like everyone else.
Additionally, there are some organizations that fund students (from external income sources) who’s proposals they like, but weren’t allocated enough slots by Google. Even if an organization doesn’t do this, students are encouraged to participate in open source regardless. Now, if students choose to do this, there’s no money involved, and it’s completely understandable when students need to choose to work on an internship instead of doing something they want to do within open source. Everyone only has 24 hours in a day, and everyone chooses to spend those hours in different ways.
While the GSoC application process can be daunting, scary, and very nerve-wracking, new students are still encouraged to apply. The best way to go about it is to find out if the organization the student is looking into working with has applied. Start getting to know the people within the community, and start contributing. Upon finding out if the organization was accepted into the program, continue bonding with the community, and continue contributing. Talk to people, find out who is acting as mentors, discuss your ideas, goals, thoughts, etc. with them. Ultimately, prove to your organization of choice that you’re competent, you have good ideas, and you’re worth taking a chance on. It’s possible they’ll love you, and won’t have enough slots. It’s possible there are other students, as or more competent than you who just have better ideas. It’s possible all of the organizations slots will be filled by returning students.
None of this means, however, that you should give up. If it’s important enough, contribute anyway. Stick around in the community, submit bug reports and patches, contribute to mailing list discussions. If you don’t get a slot this year, being an active part of their community for a year, and applying again is one of the best ways to show them that you’re competent.
Thanks goes to Landon, kblin, and ajuonline for contributing to the discussion that was the root of this write-up, and pushing me to actually do this write-up.