docs/outreach/apply.md
This page should help you get started with applying for an outreach program with Zulip.
We try to make the application process as valuable for the applicant as possible. Expect high-quality code reviews, a supportive community, and publicly viewable patches you can link to from your resume, regardless of whether you are selected.
We expect applicants to have experience with the technologies relevant to their project, or else have strong general programming experience. If you are just getting started learning how to program, we recommend taking time to learn the basics (there are many great online materials available for free!), and applying in the next program cycle.
In addition to the requirements of the specific outreach program you're applying to, successful applicants are expected to demonstrate the following:
Responsibility for their own work. Strong applicants consistently take responsibility for all their interactions with the Zulip community: the code changes they propose, PR descriptions and comments, discussions in the development community, etc. They understand the importance of respecting the time of everyone they interact with. If they use AI, they always follow Zulip's AI use policy.
Ability to contribute to a large production codebase. Accepted applicants generally have five or more merged (or nearly merged) pull requests, including at least a couple involving significant complexity. The quality of your best work is more important than the quantity, so be sure to follow our coding guidelines and self-review your work before submitting it for review.
Clear communication. Building open-source software is a collaborative venture, and effective communication is key to making it successful. Learn how to ask great questions, and explain your decisions clearly in your commit messages and on your pull requests. Communicate accurately and succinctly -- no AI slop!
Improvement in response to feedback. Don't worry if you make mistakes in your first few contributions! Everyone makes mistakes getting started — just make sure you learn from them!
We are especially excited about applicants who:
Help out other applicants
Try to solve their own obstacles, and then ask well-formed questions
Develop well thought out project proposals
In our experience, a large (350-hour) project is incompatible with a second internship or job. Trying to do both leads to a stressful summer where you don't really get to benefit from the mentorship on offer, and will likely struggle to complete the GSoC program at all. Any outside commitments beyond the following require explicit discussion and approval:
We are happy to accept both student and non-student GSoC participants.
If you are new to Zulip, our contributor guide is the place to start. It offers a detailed walkthrough for submitting your first pull request and beyond, with many pointers to additional documentation.
::: warning We do not allow the use of AI for writing GSoC applications. We want to see what you think and how you communicate it. If we see that an application was written using AI, it will be rejected without review. :::
In addition to following all the instructions for the program you are applying to, your application should describe the following:
A note for Outreachy applicants: It is not practical for us to individually help you develop a specific timeline for your application. We expect you to submit a project proposal as described below, and will help you manage the timeline for your project if your application is selected.
Your first priority during the contribution period should be figuring out how to become an effective Zulip contributor. Start developing your project proposal only once you have experience with iterating on your PRs to get them ready for integration. That way, you'll have a much better idea of what you want to work on and how much you can accomplish.
As discussed in the guide to having an amazing experience during the program:
We have a fluid approach to planning, which means you are very unlikely to end up working on the exact set of issues described in your proposal. Your proposal is not a strict commitment (on either side).
Your proposal should demonstrate your thoughtfulness about what you want to work on, and consideration of project complexity. We will evaluate it based on the following criteria:
Regardless of which program you are applying to, you can use the GSoC project ideas list as a source of inspiration for putting together your proposal.
We highly recommend posting a rough draft of your application at least one week before the deadline. That way, the whole development community has a chance to give you feedback and help you improve your proposal.
If you do not have a complete draft ready, at a minimum, we recommend posting your project proposal, along with your contributions to Zulip for context.
Please post a link to your draft in the Zulip development community
channel dedicated to your program (e.g.,
#GSoC or
#Outreachy). Use
Your name - project proposal as the topic.
We recommend linking to a draft in an app that works in the browser and allows commenting, such as Dropbox Paper or Google Docs.