Steps to Apply

These are the steps for applying to Chapel for Google Summer of Code 2017. It is expected that students complete these steps in the order they are listed. For example, contacting prospective mentors after familiarizing yourself with the language and projects that interest you, will leave a good impression with 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 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 Chapel irc channels 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. Help the Chapel developers get to know you

Join the chapel-gsoc , chapel-developers , and chapel-users mailing lists or visit our irc channels. The chapel-gsoc mailing list and Chapel irc channels are a great way to get in touch with your prospective mentors. Browsing open and closed GitHub pull requests and the developer contributor guidelines is a great way to see how Chapel development proceeds. Show us that you are willing and able to contribute to the project. See Contributing to find entry-level tasks to work on while getting started. You may also begin preliminary work for your project as a way to demonstrate your technical aptitude for that particular project.

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 IRC nick will you be using to communicate with us? (Please use a unique IRC nick)
  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. What experience do you have being part of a development team?
  4. 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?
  5. Is any of the code you have written already open source? Can you point us to some code you have written?
  6. 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. Are you familiar with these tools? (Answering this question will help us provide guidance):
    1. IRC and mailing lists
    2. git source code management
    3. GitHub
    4. make, gcc, gdb, and valgrind development tools
  2. Had you heard about Chapel before the Summer of Code? If so, where? If not, where would you advise us to advertise?
  3. What was the first question concerning Chapel that you could not find an answer to quickly?
  4. What will keep you actively engaged with the Chapel community after this summer is over?
  5. 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