How to Apply

These are the steps for applying to Chapel for Google Summer of Code 2019. It is expected that students complete these steps in the order they are listed. For example, you can leave a good impression with mentors by familiarizing yourself with the language and projects that interest you before contacting prospective mentors.

1. Familiarize yourself with Chapel

Familiarize yourself with the project. Download Chapel, follow a tutorial, write a few programs, and learn more about the language. Become familiar with the project’s contributor guidelines.

2. Find a task that excites you

Since you’ll be working on this task as a full-time summer job, it needs to be something you care about. The Project Ideas List page provides some project ideas that have been proposed by this year’s mentors, but you are also welcome to propose your own project idea.

Work with prospective mentors on the chapel-gsoc mailing list and the chapel-summer-of-code Gitter channel in order to understand the technical aspects of a potential project and to figure out an approach. You’ll learn more about what the project entails, and we will learn more about how you approach technical topics.

3. Start contributing

Getting to know the Chapel developer community means gaining their trust, and the best way to do that is by demonstrating an implementation of a program in Chapel, your ability to submit quality issues, and ability to fix issues. See the Contributing page to get started. Your first task might be a first step in the project you want to work on for GSoC.

4. Prepare a project proposal

Please follow the following template for your proposal:

1. Introduction

  1. In a few sentences, describe your overall background and current studies.
  2. Briefly describe any relevant course work for the project you are proposing.
  3. Describe why you wish to participate in the Google Summer of Code.
  4. Tell us why you wish to work with the Chapel project in particular.
  5. What do you hope to learn over the summer?
  6. How well can you comprehend and understand English? How strong is your written English?
  7. Do you have any other commitments for the summer period? Do you have planned vacations?

2. Contact

  1. What email address and GitHub user name will you be using to communicate with us?
  2. What time zone do you live in? Will that change during the summer? Describe in UTC+x or -x.
  3. What times will you be comfortable working? How much earlier could you start your day and how much later could you stay if it helped you to communicate with other developers (e.g. with a teleconference or pair programming session).

3. Coding experience

  1. Describe your experience with Chapel, C, C++, and any other programming experience you wish to mention.
  2. Describe any experience with compiler development, parallel computing, or any other knowledge you know will be useful for the task.
  3. Are you familiar with these tools? (Familiarity with these tools is not necessarily required for all projects but we will need to know how to guide you)
    1. git source code management
    2. make
    3. gdb, and valgrind debugging tools
    4. gcc
  4. What experience do you have being part of a development team?
  5. What is the biggest project you have worked on as a software developer? What did you learn in that project? What was your role in that project over time?
  6. Is any of the code you have written already open source? Can you point us to some code you have written?
  7. What have you already contributed to the Chapel project? Please list pull request numbers.

4. Survey

This section is for our information and will not be used while evaluating your application

  1. Had you heard about Chapel before the Summer of Code? If so, where? If not, where would you advise us to advertise?
  2. What was the first question concerning Chapel that you could not find an answer to quickly?
  3. What will keep you actively engaged with the Chapel community after this summer is over?
  4. Are you applying to any other organizations for this year’s Google Summer of Code? If so, what is the order of your preference, in case you are accepted to multiple organizations?

5. Prerequisites

  1. What operating system(s) do you work with?
  2. Are you able to install software on the computer you plan to use?
  3. Will you have access to a computer with an internet connection for your development?

6. Self-assesment

  1. What does useful criticism look like from your point of view as a committing student?
  2. What techniques do you use to give constructive advice? How do you best like to receive constructive feedback?
  3. What is your development style? Do you prefer to figure out/discuss changes before you start coding? Or do you prefer to code a proof-of-concept to see how it turns out?

7. The task

  1. Describe the task you intend to work on. If it’s one of the tasks from our ideas list, let us know which elements of it you want most to focus on, if you know. If you are proposing a new task, describe the task and who you have already discussed it with.
  2. Why is this task exciting to you? Why did you choose this particular task? What do you hope to learn by working on it?
  3. Provide a rough estimated timeline for your work on the task. This timeline should take into account any non-coding time, such as exams, GSoC midterms, and vacation. Describe milestones you expect to achieve as you work towards the task.

8. Contributor Agreement

  1. Please include a contributor agreement, if you have not already submitted one. See

ContributorAgreements