Google Summer of Code 2019: Call for Students

Dear students,

We are happy to announce that once again Pharo Consortium is looking for smart and enthusiastic students to work with us during Google Summer of Code 2019. In the following sections, we explain the program requirements and provide a detailed description of the application process. This text is based on the Google Summer of Code 2019 Program Rules. We strongly suggest that you read the original rules. In case of any disagreement between this document and the Rules, the Rules should prevail.

If you have any additional questions, feel free to send an email to [email protected].

1. What is GSoC?

Google Summer of Code (GSoC) is a global program focused on introducing students to open source software development. Students work on a 3-month programming project with an open source organisation during their break from university. You can read more about the program on its official website. We want to emphasize the following:

  • The active part of the program starts on May 27 and ends on September 3 when the results are announced.
  • During its active part, GSoC should be treated as a full-time job. If you have more than a few hours a week of extra commitments, you probably should skip GSoC; it is unlikely that you will be successful. In any case, be completely clear about outside time commitments as part of your proposal.
  • Accepted students will be receiving a stipend (payment) from Google at the end of each month. Stipend amounts are calculated based on your location.

2. What is Pharo?

Pharo is a dynamic, purely object-oriented programming language (everything is an object) in the tradition of Smalltalk. But it is also a powerful development environment, focused on simplicity and immediate feedback. Its entire syntax fits on a postcard, and coding can be done directly in the debugger. Pharo has super cool tools that empower you and make you highly efficient.

Pharo's goal is to deliver a clean, innovative, free and open-source immersive environment. By providing a stable and small core system, excellent development tools, and maintained releases, Pharo is an attractive platform to build and deploy mission-critical applications.

Pharo fosters a healthy ecosystem developed from both private and commercial contributors who advance and maintain the core system and its external packages.

More information about Pharo is available at http://www.pharo.org/.

3. Eligibility criteria

In order to apply for Google Summer of Code with Pharo Consortium, you must satisfy Eligibility Criteria for students that can be found in the corresponding section of the Program Rules.

We want to emphasize that every applicant must be

  • eighteen (18) years of age or older upon registration for the program,
  • enrolled in or accepted into an accredited institution, including a college, university, masters program, PhD program, and/or undergraduate program, as of the acceptance date (you must provide the Proof of Enrollment, see below).

3.1. Strongly preferred by Pharo Consortium

  • Good knowledge of OOP
  • Basic idea about Pharo & Smalltalk syntax and ongoing projects
  • Experience with Pharo & Smalltalk

4. Before applying (how to increase your chances of being accepted)

  • Check the list of project ideas. Select one or two projects that you find interesting and for which, you think, you have the right skill set. Don’t be afraid to apply to projects where you only meet 51% of the listed requirements. Include a section on how you’ll compensate for or learn the missing skills — and demonstrate during the application process that you are working on acquiring those new skills.
  • Join Pharo Discord channel (follow the instructions), go to #gsoc-students channel and introduce yourself. Write who you are, where you come from, what your interests are, and what projects you are interested in. Talk to other students, ask them questions, and get to know them. If you have trouble joining Discord, feel free to send an email to [email protected].
  • Get in touch with the mentors assigned to the projects that you are interested in. You can find their emails in the list of project ideas or on Discord. Talk to them about the complexity and skills required for the different projects.
  • During the selection process, we will pay special attention to your experience with OOP and knowledge of Pharo. If you are new to Pharo, use the time you have before selection to enrich your portfolio. Read several chapters of Pharo by Example book, or take the Pharo MOOC - a set of videos, exercises, challenges, and mini-projects. But most importantly, write something cool in Pharo and put it on your GitHub. It can be a simple project or exercise. If we see that you can write code and do it well, this will increase your chances of being accepted.
  • If you have a personal technical blog, this will also increase your chances. If you don’t have it, now is a good time to start. Write about the things you learn or the projects you work on. For example, you can write about your experience learning Pharo and describe some simple project that you implemented (such as linear regression or your implementation of linked list).
  • Interact with Pharo Community. Ask and answer questions on Discord, join our mailing lists. Participate in our monthly sprints. Try fixing some bugs, open some relevant issues, suggest changes or additional features. The better the contributions, the better are the chances of selection.
  • IMPORTANT: Start working on your project proposal (see the section on how to apply) as soon as possible. The proposal is a big and detailed document which has to be carefully and diligently prepared. So contact the mentors right away and start working on your proposal.

4.1. Things to remember

  • Although we pay great attention to your technical skills, communication skills are way more important. We must see that you are capable of working remotely, being active on forums, not being afraid to ask questions or express your opinion. Students who are active in our communication channels have a higher chance of being selected.
  • Be proactive - do not wait to be told what to do. Your mentors are here to answer your questions, help you get unstuck, make sure that you are on track. But they will not give you step-by-step instructions or make decisions for you. Show us that you can take initiative in your own hands, that you can work independently even when your mentors are not there to help you (although we will try to make sure that they are). Show us that you have been working on some projects outside the classroom, especially projects that you did “for fun.”

5. How to apply?

In order to apply for Google Summer of Code you must:

  1. Accept the terms of the Student Participant Agreement
  2. Submit Proof of Enrollment
  3. Submit a Project Proposal

The application period is March 25 18:00 UTC - April 9 18:00 UTC. Be sure to check the complete timeline of Google Summer of Code 2019.

5.1. Proof of enrollment

Carefully read what is considered a valid proof of enrollment.

5.2. Writing a project proposal

  • Take a look at the list of ideas proposed by Pharo Community. You can take any one of these topics or propose your own one. However, you need to make sure that
    • There are at least two mentors in the community willing to work with you on the proposed project. So get in touch with mentors early and discuss your ideas with them.
    • The proposed project is interesting and relevant to the community. All projects in our list of ideas were selected by the community and represent something that we want to have in Pharo. So if you propose your own project, make sure to discuss your idea on the mailing list and Discord and to see if people need it.
  • Follow the instructions for writing a project proposal
  • As an example, take a look at project proposals that were accepted by Pharo Consortium in previous years
  • Don’t write your project proposal alone. As soon as you have the first draft (no matter how bad you think it is), send it to the mentors and preferably to the mailing list and the dedicated channel on Discord. High-quality proposals are written iteratively: draft - get feedback - update - get feedback - update ...
  • Submit your proposal early you can always update your draft on GSoC website. But be careful not to miss the deadline.

6. What will be the main responsibilities of accepted students?

Accepted students have the responsibilities to:

  • Follow the plan declared in your project proposal
  • Submit daily reports of your progress to our mailing list (what did you do today, what do you plan to do tomorrow, what problems or questions do you have)
  • Write a blog post every week to document your work and report your progress to the community
  • Regularly communicate with your mentors and the broader community
  • Ask for help when something is preventing you from achieving a goal
  • Re-evaluate work scope when you are significantly ahead of expectations
  • Inform when work capacity will be reduced, as early as possible (e.g., family, health, other work)

Read more about student responsibilities.

7. Conclusion

You can read the following blog posts written by students who have successfully completed the Google Summer of Code with Pharo Consortium in 2017:

We are looking forward to great talent joining our organisation this summer.

Warm Regards, Pharo Organisation Admins: