Student Application Mini-FAQ
- Where do I apply?
Start from the Google Summer of Code site
- What ideas can I apply for?
Check out our List of Google Summer of Code Ideas
- What info do you need in the application?
See the Application Template below for reference
- What if I still have questions?
Send a message to the Haiku Mailing List or contact Haiku's Google Summer of Code administrator (PulkoMandy).
- Are there any other requirements?
Applying students are required to submit a code contribution to our change review tool. This could either be a task marked easy, TODO commented in code, code style cleanup, or any other unlisted task. Submitting code that relates to your project will indicate a higher level of understanding and ability. The number and difficulty of resolved issues will be taken into consideration when evaluating your application. It is suggested to set the topic to "gsoc2020" on submissions, as this facilitates finding them in the future.
- Why do you want a code contribution before I'm accepted?
This serves several purposes. It displays that you have the most basic skills that are required: building Haiku from source, running Haiku either natively or inside a VM, and using tools for online collaboration (bug tracker, mailing lists, IRC, etc.). More importantly, it provides our mentors with some insight into each individual student's motivation and abilities. It is an opportunity for you, the student to showcase yourself and to convince us that you are indeed the right person for the job.
The code contribution is a very important part of your application. Students who did not submit one, or submit something insufficient, will not be accepted into the program.
- Should I use Haiku R1/beta1 or a newer nightly image?
As a developer, you will be working with the most recent code and test your changes on the development branches, so a nightly image is recommended. You can use either a 32bit or 64bit one, as you prefer.
Making a Positive Impression
In open source work, communication is the key. You will be working remotely, and will need to communicate with your mentor, and other members of the Haiku community, over the Internet. Show us you're able to work this way and interact with other Haikuers in a productive and efficient way.
- Submit a patch:
- that relates to your project
- is quality code that conforms to our Coding Guidelines
- feel free to submit more than one patch!
- Have a positive impact on mailing lists, bug tracker, and other public spaces
- Do your homework ; Show that you have:
- researched your project
- an understanding of what needs to be done
- a proper plan for accomplishing it, which includes quantifiable goals and timelines
- Submit an alternate proposal, as this provides our mentors with flexibility for choosing the best students, rather than the best project ideas
Words of Advice
Reading and following this advice will do wonders for ensuring that your Google Summer of Code experience will be something to be proud of.
- Dedicate at least 30 hours per week
As Google Summer of Code is essentially a work-from-home internship, you are expected to put in the necessary time. To note, the majority of Haiku's students who spent less than 30 hours per week, failed.
- Communicate every other day
The haiku-gsoc mailing list is to be used at all times by you. Provide regular reports. Nothing formal, just one or two lines. It is important for your mentors to have a clear picture of what you are doing, have done, and plan to do. While being self-sufficient is a worthwhile trait, it is not an ideal trait for a Google Summer of Code participant -- Haiku expects you to utilize our mentors, that is why they are there.
- Provide code frequently
There is a saying in open source -- commit often, commit frequently. Take that advice to heart. Smaller patches and code snippets are easier for the mentors to review. It also gives them more chances to suggest better approaches and keep you on target. In turn, this will make you more productive and more likely to succeed! You can put your work in progress changes in our code review tool so your mentor and other developers can help you spot the problems. It is perfectly fine to share non-working code, in fact a lot of the changes listed in the code review tool are in this case and several iterations will be needed to get things right.
- When you do not have code, it is even more critical to converse frequently.
If you aren't coding, what are you doing? How are you moving closer to your goal? What problems are you analyzing? What questions and ideas do you have? Every year, many students get stuck on an issue and spend too much time trying to solve it by themselve, when a mentor could help them progress much faster. This isn't a school assignment, we will not fail you for asking too much questions.
Pass or Fail Criteria
As you know, Google Summer of Code has three monthly evaluation points. If you happen to receive a failing mark at either point, you are not paid that portion and your internship comes to an abrupt end. There are two areas that are considered during the evaluation: the code output and communication/interactions.
A word of caution -- do not expect to make miracles during the week of mid-term or final evaluations. Instead, expect your mentor to evaluate your progress on the first day of the window.
This includes everything from 'commit worthy' patches to all the code (and non-code, such as design documents or pseudo code) leading up to that polished patch. In other words, if for some reason you and your mentor pursue an approach that turns out to be a dead end you will not be punished.
This includes discussions on the haiku-development list, talking with haiku developers on IRC, posting the Milestone Blog/Email Reports.
In other words, you will be writing code and talking with one or more mentors on a daily basis. Anything less will hurt your mid-term and final evaluation! Do not expect to be able to cram days, weeks, or months of work into a shorter period and receive a passing evaluation.
This application template has two sections.
- A fill-in-the-blank section with basic information.
- An open-ended section with suggestions for content to include. Feel free to add more.
- Full name:
- Email address:
- IRC username (freenode.net):
- Trac username (dev.haiku-os.org):
- Gerrit changes submitted (review.haiku-os.org):
- (optional) GitHub (or other public) repository:
- (optional) emergency contact (please include contact information for someone we can get in touch with if something makes you unable to continue your project and you can't give any news to us):
- Will you treat Google Summer of Code as full time employment?
- How many hours per week will you work?
- List all obligations (and their dates) that may take time away from GSoC (a second job, vacations, classes, ...):
- Are you using Google Summer of Code to fullfill a university requirement -- internship, class credit, ..? (If yes, you need to provide confirmation that your school approves. Remember, Google Summer of Code is a remote software development internship.)
- How and when did you first heard about Haiku?
- Did you also apply to other GSoC organizations? If so, which is your order of preference? (this has no impact on the selection process, we use this information only if you are selected as an intern by several of these organizations to decide which one would keep you)
- Estimated last day of classes/exams:
- Estimated first day of classes (for most interns, there will be some overlap with the GSoC coding period. This is fine, but we want to check that you have planned your timeline accordingly):
- Introduce yourself. (Who you are. Why you chose Haiku. What programming experience you have.)
- Project Proposal. (Title. Description. Goals.)
- Timeline. Include what you plan to have accomplished by the end of:
- Community bonding period (May)
- First month of coding (June)
- Second month of coding (July)
- Third month of coding (August)
- After Google Summer of Code
- Expectations from Mentors. (What do you expect Haiku's mentors to help you with?)
Resources available to students
In addition to the mentor(s) assigned to each student, the following resources will be available where inquiries can be made in order to get assistance during your Google Summer of Code project.
- Mailing list: Subscribe here
- IRC channel: #firstname.lastname@example.org (browser-based client)
- Haiku Guides:
For more information
For more information about general information and eligibility for Google Summer of Code 2020, please check out the following Google resources: