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 students 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 logan@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, contact the Julia Language student programs administrators at jsoc@julialang.org. 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 student committed to the project?
Is the plan a reasonable amount to do in three months?
Are there clear milestones we can use to assess progress (it should be easy to answer the question "Is the project done?").
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 of the program. Trainee programs are not for learning the Julia language, though extensive prior experience is not required.
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?
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?