Before you apply, it's a good idea to get in touch with the Julia community. Ask questions on Discourse or join the Julia Slack to get connected with potential mentors to help find interesting projects. The Slack channel #jsoc
is dedicated to helping contributors get the help they need. Additionally, you should make use of these connections to start making some small contributions and progress on your project early on. While PRs before the applications are not required, the Julia Language organization programs are extremely competitive, so the more ways you have to show your commitment, the better.
If you have accessibility needs with respect to submitting your application, please email community@julialang.org
to get further assistance with your application. We are committed to making this application process accommodating for everyone.
GSoD applications must be submitted to https://developers.google.com/season-of-docs/.
GSoC applications must be submitted to https://summerofcode.withgoogle.com.
Applications are free-form, so you can discuss your project in whatever way you feel is best. Our organization does not have page or formatting requirements, but we recommend building a formal PDF document of less than 10 pages which is formatted using Word or LaTeX. If you have any questions that are not answered here, contact the Julia Language programs administrators at jsoc@julialang.org
. Note that the first step for GSoC is not sending us an email, please refer to the steps above for good first steps. We recommend having a mentor to help you with the application process. Please feel free to share your draft applications in the #jsoc
channel of the Slack to receive feedback.
The key questions we will ask ourselves when considering it are:
Is the contributor committed to the project?
Is the plan a reasonable amount to do in the allotted project time?
Are there clear milestones we can use to assess progress (it should be easy to answer the question "Is the project done?").
Is the proposed mentor enthusiastic about the project?
Does the applicant have previous Open Source contributions (preferably in Julia)?
Based on analyzing hundreds of GSoC applications, the most common reason(s) someone is not picked for GSoC are:
The individual did not contact the proposed mentor prior to applying. (It is in your best interest to communicate with the proposed mentor as early on as possible. They are your advocate and first point of contact for this program!)
No or minimal Open Source Julia contributions. (Given the high quality of applicants each year, we usually choose individuals who have have Julia contributions before GSoC. Start making quality contributions as early on as possible and include links to those in your application.)
In more detail, you may find it useful to consider the following questions:
The Project
What do you want to have completed by the end of the program?
For example, "a package for doing X which any Julia user can install" or "an extra feature for Foo.jl that does Y"
Who's interested in the work, and how will it benefit them?
For example, "bioinformaticians will be able to set up sequencing pipelines flexibly in pure Julia"
It's important to justify the project for people who may not be experts in your subject area.
What are the potential hurdles you might encounter, and how can you resolve them?
Is there anything you need to learn about as part of the work? Does your work depend on anyone else's to make progress?
How will you prioritize different aspects of the project like features, API usability, documentation, and robustness?
What milestones can you target throughout the period?
For example, getting a working prototype out to beta testers by the halfway point
Are there any stretch goals you can make if the main project goes smoothly? Tell us how you're going to wow us with the final result!
Code portfolio. Show us a sample or two of code that you're proud of. It doesn't have to be Julia (but that doesn't hurt either). You don't need to be a star programmer as long as you can demonstrate interest in and commitment to your project.
Deliverables List what concrete products expect to deliver by the end of the project
About you. Why you? Give us a sense of who you are as a person and as a programmer.
What academic, professional or hobby programming experience do you have, and how will it help you with your project?
Have you contributed to open source projects before? (Link us to some issues and patches, if any)
Why are you interested in Julia? Have you used it much before? You need to demonstrate your ability to use Julia by the beginning of the program. Trainee programs are not for learning the Julia language, though extensive prior experience is not required, given the high quality of applications each year, individuals with Julia Open Source contributions are usually much more likely to be chosen.
Do you have the mathematical/scientific background for your project? Many of the Julialang projects have a significant portion that require technical expertise and applicants need to demonstrate their ability to handle the chosen project.
How should we contact you? Let us know your email address and GitHub username.
Do you have a website or blog?
Are you part of an underrepresented group in STEM? If so, please feel free to provide detail on this as we at the Julia Language are committed to promoting diversity and inclusion in our selection process.
Anything else you'd like to mention!
Logistics.
What other time commitments, such as summer courses, other jobs, planned vacations, etc., will you have over the summer?
Confidence can sometimes hold someone back from applying for an opportunity. But, we will let you in on a secret: there's no such thing as a 'perfect' candidate. Open Source (and specifically the Julia Language) is a place where anyone and everyone can grow. So however you identify and regardless of your background, please apply if this is a program that gets you excited.