Internship Application Template

From Xen

This document outlines the information that we expect students/interns that apply for GSoC or Outreachy.

Just to be clear:

  • You will have to apply through Google / Outreachy application system using this template
  • It is good practice to discuss and work with the Mentor before making an application
  • You can use the questions in this template to inform the discussion, before the application period starts.
  • Feel free to copy your application into a google doc, etherpad or similar and work through some of it with your prospective mentor
  • Also note, that we are *strongly encouraging* you to check whether you have all the hardware for your project, whether you can build the software from source and run it, work on small test tasks and/or coverity issues, etc. prior to the application period or between the application period and the announcement of candidates.

The Template

Thanks for submitting your proposal! We're keen to hear a little more from you about your own thoughts and plans about this project. Here are some questions that would help us to understand your position a little better.

Of course, we'd like to help you if you're stuck on answering any of these questions or would like more advice. Feel free to post questions about your proposal on the mailing list or chat to us in the IRC channel. We're looking forward to hearing from you.

Make sure you review and iterate your proposal with your mentor. You can use whatever medium you prefer. You may want to use google drive or another collaborative tool to work with your mentor on the application.

1) Personal Information

1.1) Full Name:

1.2) Email:

1.3) Other contact information (Optional): <add IRC handle, skype, whatever you like here>

1.4) Other applications: have you applied to or do you plan to apply to other Google Summer of Code projects for other organizations?

1.5) Previous experience: have you been part of the Google Summer of Code in the past or OPW in the past? (if so, link to your work)

1.6) Time commitment: we'd also like to know whether you're planning to work full-time on the project, or do you have other commitments (e.g. full/part time jobs, summer classes) during the summer? (It's no problem either way, but useful for us to know)

1.7) Other programs: please let us know whether you have applied to other student and/or intern programs such as Outreachy and list the ones you applied to

2) Preparation done so far

Note that the following questions are *not required* for an application. However, demonstrating that you have dealt with these following questions will make sure that you can get started quickly on the project and will give you an edge compared to other applicants.

2.1) Hardware: (Have you checked, whether you have the right Hardware to complete the project - see Internships/Hypervisor in particular for Hypervisor projects. Link to any public threads on mailing lists, where you discussed hardware requirements and summarise the outcome.)

2.2) Ability to Build and Test: (Being able to build the project from source and run it, is the first hurdle when trying to get started. If you manage to do this, you are pretty much set for development. Thus, we recommend that you work with your mentor to build the project - maybe with an extra log entry added to the code, deploy it, run it and share the logs with the mentor on the developer list. Link to any public threads on mailing lists, where you discussed hardware requirements and summarise the outcome.)

2.3) Make a Small Contribution: (Small contributions show that you understand the workflow within the community. We always have a lot of small issues that can be fixed. If you have done so, link to any public patches you may have posted.)

2.4) Other: (List any other preparation tasks that you may have performed here)

3) Proposed Project

3.1) Project Category for which you are applying (Xen Hypervisor, The XAPI toolstack, Mirage OS, Unikraft, Windows PV Drivers, Embedded & Automotive Drivers, ... these are in the main table on the project's proposal page):

3.2) Title for your proposal (for example "Virtio on Xen"):

3.3) Link to original proposal (link to the original proposal on the project's proposal page; if it is a project you proposed please state here):

4) Implementation Plan

4.1) Detailed Problem Description (Provide a high-level overview textual description of the problem):

4.2) Implementation Plan (Provide as much detail and organisation as you can. Discuss with your mentor. Make sure you build in sufficient time for learning and getting up to speed. The questions in section 2 will help you and are very valuable to create a plan) :

4.3) Expected Outcomes/Goals: (List the main outcomes that you will deliver during the program - this does not have to be perfect. It is also a good idea to link to a discussion on the relevant public mailing list here to give us some context. As an aside, it will also help you as well. Set some minimum outcomes/goals and stretch outcomes/goals - these are nice to have's. If you have experience with or prefer agile development methodologies, write down what you would like to achieve in different scrums. That's perfectly OK: you may want to discuss with your mentor - he/she can act as product owner or scrum master if you want. Do agree with him/her upfront.)

4.4) Timeline (Be specific and as complete as you can. Discuss feasibility with your mentor. Build in some buffers and set some stretch goals. This will help you with progress and motivation! ):

4.5) Maintenance: (optional) Think about how much maintenance you think the code you write is likely to require. Your mentor will have a good idea about this and you may want to discuss with him or her. Trying to estimate this is a good work skill. If not too much, think about whether you would like to be involved in maintaining your code after the project finishes and let us know.

5) Let us know how much help you need

5.1 Describe experience with Domain Support, Xen Hypervisor, The XAPI toolstack, Mirage OS, Windows PV Drivers, Unikraft, Embedded & Automotive Drivers (as appropriate):

5.2) Other experience: describe relevant experience that you have (If possible, describe what uniquely qualifies you for this proposal):

5.3) Learning and support: describe the part(s) of the proposed plan do you expect to be most difficult ( Include the specific types of of mentor help you think you will need for the part(s):

5.4) Hardware (if not done in 2.1) let us know what Hardware and Software that you have for development (exact model number, etc.). Some projects require certain features in your Hardware such that you can do development. Also note that in some cases, it may be possible to loan you Hardware for development:

5.5) Describe the part(s) of the proposed plan do you expect to be easiest:

Example proposals

For example proposals and guidance on how to get accepted, see: