for gsoc students
If you're interested in applying to work on PySoy for Google's Summer of Code, you should:
- get in touch with the development team ASAP via IRC or the pysoy-dev list
- develop a viable project proposal, the ideas page is a start
- your proposal should include a link to previous work
- submit your proposal on the Google SoC student portal early so we can help you refine it
The early part is important. More than half the applications we get each year are submitted in the last 24 hours, almost all of these are rejected as they need refinement and not enough time is available to do so.
Yes - we want to see your work. If you've never contributed to a free software project before you should spend a few hours working on one of the smaller tickets. You may do this after the student application deadline while we're selecting our projects.
We have a limited number of student slots available so this is a selection process, not a formality. We prefer to see students who've "done their homework", who show enthusiasm and ambition. Knowledge in the area of their project is a plus, but honesty and demonstrated willingness/ability to learn is more important.
In short: if you have no experience in the subject matter, but have researched it well - including asking us the right questions - and have demonstrated your ability to work well with us, we will choose you over someone with a large body of knowledge, experience, and references but a poor attitude.
You're accepted, now what?
So your project was approved, congratulations! Now the real work begins.
Google has allocated a few weeks to get acquainted, they call this the "community bonding period". Your work begins now.
PySoy is a dynamic project and it takes some time to get into the groove of things. Being active on IRC is a must. Regardless of what your project is, you should work with and become familiar with the codebase - especially the extensions which interact with the one(s) you're working on.
During this time you should be committing small fixes, unit tests, examples, and other miscellaneous contributions as any new developer does. This is a demonstration that you have are reading, working with, and beginning to understand the codebase.
If your project requires you to do research and resolution first, most do, you should be discussing these things with other developers on IRC. You'll need other developers to be clear on what you're going to be working on if they're going to help, and they'll help you refine your project as well.
In the past, students who did not start off doing this dropped out before midterm, so we're making this very clear this year - any student who does not take advantage of this "community bonding" period will be disqualified before receiving their first payment.
With exception of your mentor's evaluations, you are a normal PySoy developer in our group, and the same expectations apply:
- you should be on IRC while you work (whenever possible)
- provide help to other developers when they need it (and as you can)
- ask for help when you need it, sometimes a second pair of eyes is all it takes
- post and manage tickets as you work
- commit often - it helps avoid conflicts and shows your activity
Our committing policies roughly boil down to:
- try to break up tasks so that you can commit something every hour or two while you work
- do not commit if your code doesn't build unless asked to do so by another developer you're getting help from
- if you break it, and can't fix it in a reasonable time, be prepared to rollback your commit until its fixed
Some additional things specific to students:
- post in your blog at least once a week with work updates/screenshots/etc
- ensure your mentor is aware of your current progress, problems, etc
- if your mentor is unavailable, notify one of the other mentors promptly
- you're expected to "work" at minimum 25 hours a week, averaging roughly 35 hours/week
Note that in your evaluations your mentor will consider both your progress with your project and your overall involvement in the community. Just because you're working from home doesn't mean you're working in isolation from the team.
Your mentor is not your primary source for help, he or she is only the person who writes your evaluations and the person you go to if you're having trouble with the development team or you need to re-scope your project based on a snag. In many cases the best person to help with a problem will be whichever developer is available on IRC at a given moment.
There are two evaluations that Google requires from you - midterm and final. These are confidential, we do not see them, but they are required for you to receive payment.
Every student has a primary mentor. If your primary is not around during the evaluation period another available mentor will be assigned to complete your evaluation, this is why working with the whole team is important. Note that this has never happened before with our group.
We hope that the Summer will be a positive experience and that you will want to continue working with the PySoy project. Most of our developers are not paid, or find other methods to be paid for their work.
We would like to see past students:
- maintain the code they contribute
- participate in discussions, especially those that involve their project
- remain active on IRC and/or the mailing lists, helping users and new devs
- consider applying to Summer of Code next year, as a student or mentor
- join us at conferences and events
After the Summer, you can expect us to:
- provide job references based on your work/involvement
- maintain URLs associated with your work for resumes
- keep your name in our AUTHORS file and our website