gsoc.md
  1  # Google Summer of Code
  2  
  3  ## Organization admins
  4  
  5  The *organization admins* are managing the GSoC program for the coreboot
  6  organization.
  7  
  8  The organization admins are:
  9  
 10    * Felix Singer (primary)
 11    * Martin Roth
 12    * David Hendricks
 13  
 14  
 15  ## Contacts
 16  
 17  If you are interested in participating in GSoC as a contributor or mentor,
 18  please have a look at our [community forums] and reach out to us. Working closely
 19  with the community is highly encouraged, as we've seen that our most successful
 20  contributors are generally very involved.
 21  
 22  
 23  ## Why work on coreboot for GSoC?
 24  
 25    * coreboot offers you the opportunity to work with various architectures
 26      right on the iron. coreboot supports both current and older silicon for a
 27      wide variety of chips and technologies.
 28  
 29    * coreboot has a worldwide developer and user base.
 30  
 31    * We are a very passionate team, so you will interact directly with the
 32      project initiators and project leaders.
 33  
 34    * We have a large, helpful community. coreboot has some extremely talented
 35      and helpful experts in firmware involved in the project. They are ready to
 36      assist and mentor contributors participating in GSoC.
 37  
 38    * One of the last areas where open source software is not common is firmware.
 39      Running proprietary firmware can have severe effects on user's freedom and
 40      security. coreboot has a mission to change that by providing a common
 41      framework for initial hardware initialization and you can help us succeed.
 42  
 43  
 44  ## Collection of official GSoC guides & documents
 45  
 46    * [Timeline][GSoC Timeline]
 47  
 48    * [Roles and Responsibilities][GSoC Roles and Responsibilities]
 49  
 50    * [Contributor Guide][GSoC Contributor Guide]
 51  
 52    * [Contributor Advice][GSoC Contributor Advice]
 53  
 54    * [Mentor Guide][GSoC Mentor Guide]
 55  
 56    * [FAQ][GSoC FAQ]
 57  
 58    * [Rules][GSoC Rules]
 59  
 60    * [Glossary][GSoC Glossary]
 61  
 62    * [Organization Admin Tips][GSoC Organization Admin Tips]
 63  
 64  
 65  ## Contributor requirements & commitments
 66  
 67  Google Summer of Code is a significant time commitment for you. Medium-sized
 68  projects are estimated to take 175 hours, while large-sized projects are
 69  estimated to take 350 hours. Depending on the project size, this means we
 70  expect you to work roughly half-time or full-time on your project during the
 71  three months of coding. We expect to be able to see this level of effort in the
 72  results.
 73  
 74  The standard program duration is 12 weeks and in consultation with the mentor
 75  it can be extended up to 22 weeks. Please keep in mind that the actual number
 76  of hours you spend on the project highly depends on your skills and previous
 77  experience.
 78  
 79  Make sure that your schedule (exams, courses, day job) gives you a sufficient
 80  amount of spare time. If this is not the case, then you should not apply.
 81  
 82  
 83  ### Before applying
 84  
 85    * Join the [mailing list] and our other [community forums]. Introduce yourself
 86      and mention that you are a prospective GSoC contributor. Ask questions and
 87      discuss the project that you are considering. Community involvement is a
 88      key component of coreboot development.
 89  
 90    * You accept our [Code of Conduct] and [Language style].
 91  
 92    * Demonstrate that you can work with the coreboot codebase.
 93  
 94      * Look over some of the development processes guidelines: [Getting started],
 95        [Tutorial], [Flashing firmware tutorial] and [Coding style].
 96  
 97      * Download, build and boot coreboot in QEMU or on real hardware. Please email
 98        your serial output results to the [mailing list].
 99  
100      * Look through some patches on Gerrit to get an understanding of the review
101        process and common issues.
102  
103      * Get signed up for Gerrit and push at least one patch to Gerrit for review.
104        Check the [small project list][Project ideas] or ask for simple tasks on
105        the [mailing list] or on our other [community forums] if you need ideas.
106  
107  
108  ### During the program
109  
110    * To pass and to be paid by Google requires that you meet certain milestones.
111  
112      * First, you must be in good standing with the community before the official
113        start of the program. We expect you to post some design emails to the
114        [mailing list], and get feedback on them, both before applying, and during
115        the "community bonding period" between acceptance and official start.
116  
117      * You must have made progress and committed significant code before the
118        mid-term point and by the final.
119  
120      * We require that accepted contributors to maintain a blog, where you are
121        expected to write about your project *WEEKLY*. This is a way to measure
122        progress and for the community at large to be able to help you. GSoC is
123        *NOT* a private contract between your mentor and you.
124  
125    * You must be active in the community on IRC and the [mailing list].
126  
127    * You are expected to work on development publicly, and to push commits to the
128      project on a regular basis. Depending on the project and what your mentor
129      agrees to, these can be published directly to the project or to a public
130      repository such as Gitlab or Github. If you are not publishing directly to
131      the project codebase, be aware that we do not want large dumps of code that
132      need to be rushed to meet the mid-term and final goals.
133  
134  We don't expect our contributors to be experts in our problem domain, but we
135  don't want you to fail because some basic misunderstanding was in your way of
136  completing the task.
137  
138  
139  ## Projects
140  
141  There are many development tasks available in coreboot. We prepared some ideas
142  for Summer of Code projects. These are projects that we think can be managed in
143  the timeline of GSoC, and they cover areas where coreboot is trying to reach
144  new users and new use cases.
145  
146  Of course your application does not have to be based on any of the ideas listed.
147  It is entirely possible that you have a great idea that we just didn't think of
148  yet. Please let us know!
149  
150  The blog posts related to previous GSoC projects might give some insights to
151  what it is like to be a coreboot GSoC contributor.
152  
153  
154  ## coreboot Summer of Code Application
155  
156  coreboot welcomes contributors from all backgrounds and levels of experience.
157  
158  Your application should include a complete project proposal. You should
159  document that you have the knowledge and the ability to complete your proposed
160  project. This may require a little research and understanding of coreboot prior
161  to sending your application. The community and coreboot project mentors are your
162  best resource in fleshing out your project ideas and helping with a project
163  timeline. We recommend that you get feedback and recommendations on your
164  proposal before the application deadline.
165  
166  Please complete the standard GSoC application and project proposal. Provide the
167  following information as part of your application. Make sure to provide multiple
168  ways of communicating in case your equipment (such as a laptop) is lost,
169  damaged, or stolen, or in case of a natural disaster that disrupts internet
170  service. You risk automatically failing if your mentor cannot contact you and if
171  you cannot provide updates according to GSoC deadlines.
172  
173  **Personal Information**
174  
175    * Name
176  
177    * Email and contact options (IRC, Matrix, …)
178  
179    * Phone number (optional, but recommended)
180  
181    * Timezone, Usual working hours (UTC)
182  
183    * School / University, Degree Program, expected graduation date
184  
185    * Short bio / Overview of your background
186  
187    * What are your other time commitments? Do you have a job, classes, vacations?
188      When and how long?
189  
190  **Software experience**
191  
192  If applicable, please provide the following information:
193  
194    * Portfolio, Website, blog, microblog, Github, Gitlab, ...
195  
196    * Links to one or more patches submitted
197  
198    * Links to posts on the [mailing list] with the serial output of your build.
199  
200    * Please comment on your software and firmware experience.
201  
202    * Have you contributed to an open source project? Which one? What was your
203      experience?
204  
205    * What was your experience while building and running coreboot? Did you have
206      problems?
207  
208  **Your project**
209  
210    * Provide an overview of your project (in your own words).
211  
212    * Provide a breakdown of your project in small specific weekly goals. Think
213      about the potential timeline.
214  
215    * How will you accomplish this goal? What is your working style?
216  
217    * Explain what risks or potential problems your project might experience.
218  
219    * What would you expect as a minimum level of success?
220  
221    * Do you have a stretch goal?
222  
223  **Other**
224  
225    * Resume (optional)
226  
227  
228  ### Advice on how to apply
229  
230    * [GSoC Contributor Guide]
231  
232    * The Drupal project has a great page on how to write an GSoC application.
233  
234    * Secrets for GSoC success: [2]
235  
236  
237  ## Mentors
238  
239  Each accepted project will have at least one mentor. We will match mentors and
240  contributors based on the project and experience level. If possible, we also
241  will try to match their time zones.
242  
243  Mentors are expected to stay in frequent contact with the contributor and
244  provide guidance such as code reviews, pointers to useful documentation, etc.
245  This should generally be a time commitment of several hours per week.
246  
247  Some projects might have more than one mentor, who can serve as a backup. They
248  are expected to coordinate with each other and a contributor on a regular basis,
249  and keep track of the contributor process. They should be able to take over
250  mentoring duty if one of the mentors is unavailable (vacations, sickness,
251  emergencies).
252  
253  
254  ### Volunteering to be a mentor
255  
256  If you'd like to volunteer to be a mentor, please read the [GSoC Mentor Guide].
257  This will give you a better idea of expectations, and where to go for help.
258  After that, contact Org Admins (see coreboot contacts section above).
259  
260  The following coreboot developers have volunteered to be GSoC 2022 mentors.
261  Please stop by in our community forums and say hi to them and ask them
262  questions.
263  
264    * Tim Wawrzynczak
265    * Raul Rangel
266    * Ron Minnich
267  
268  
269  [community forums]: ../community/forums.md
270  [mailing list]: https://mail.coreboot.org/postorius/lists/coreboot.coreboot.org
271  [Getting started]: ../getting_started/index.md
272  [Tutorial]: ../tutorial/index.md
273  [Flashing firmware tutorial]: ../tutorial/flashing_firmware/index.md
274  [Coding style]: coding_style.md
275  [Code of Conduct]: ../community/code_of_conduct.md
276  [Language style]: ../community/language_style.md
277  [Project ideas]: project_ideas.md
278  [GSoC Timeline]: https://developers.google.com/open-source/gsoc/timeline
279  [GSoC Roles and Responsibilities]: https://developers.google.com/open-source/gsoc/help/responsibilities
280  [GSoC Contributor Guide]: https://google.github.io/gsocguides/student
281  [GSoC Contributor Advice]: https://developers.google.com/open-source/gsoc/help/student-advice
282  [GSoC Mentor Guide]: https://google.github.io/gsocguides/mentor
283  [GSoC FAQ]: https://developers.google.com/open-source/gsoc/faq
284  [GSoC Rules]: https://summerofcode.withgoogle.com/rules
285  [GSoC Glossary]: https://developers.google.com/open-source/gsoc/resources/glossary
286  [GSoC Organization Admin Tips]: https://developers.google.com/open-source/gsoc/help/oa-tips