The work is done under the guidance of one or more mentors and the effort is rewarded with https://developers.google.com/open-source/gsoc/help/student-stipends[a stipend].
FreeBSD has been a participating organization every year since 2005 and was again awarded a spot as a mentoring organization in 2024 with https://wiki.FreeBSD.org/SummerOfCode2024Projects[eleven projects].
If you are interested in operating system development, "interning" with a longstanding and successful open source operating system like FreeBSD is an excellent opportunity.
Founded in 1993, FreeBSD is an advanced operating system for server, desktop, and embedded computer platforms.
It offers advanced networking, impressive security features, and high performance.
It is the foundation for many commercial products, including Sony's Playstation, Nintendo's Switch, NetApp's OnTap/GX, Juniper's Junos operating system, and was the starting point for the core of Apple's OS X.
The project consists of hundreds of "committers" and many more contributors who have experience in different parts of the operating system.
Many of our past GSoC students have gone on to become FreeBSD developers.
After the summer ends, contributors may be sponsored by Google or the FreeBSD Foundation to present on their work at conferences.
We also maintain a more generic https://wiki.FreeBSD.org/IdeasPage[Ideas Page].
These projects are less suitable as Summer of Code projects as they may be scoped larger or smaller than a summer, or might not have such a clear mentor.
We suggest e-mailing our hackers@FreeBSD.org for help if you do decide to propose one of them.
These pages exist to help provide inspiration.
Another place to look for project ideas about upcoming development projects in FreeBSD is the link:../../status/[FreeBSD Status Reports].
Contributors are also welcome, and are indeed encouraged, to propose your own ideas, and if the proposal is strong, we'll try to match you with a mentor!
*Please note*: participating in Google Summer of Code is a significant time commitment, and you should not apply if you already have another full-time job planned for the summer.
What is your past involvement with The FreeBSD Project? (Past involvement is not required, but ideally you will have at least installed FreeBSD and perhaps fixed a bug or two)
If your project includes programming in a particular language, such as C, or in a specific environment, such as the kernel or an embedded platform, what experience do you have working in that area?
Are you familiar with or a user of revision control systems?
Have you completed courses that will be relevant to your project idea? What do you think you will need to learn to complete this project?
A list quantifiable results and related code milestones.
We suggest at least two milestones before the mid-term evaluations and two after.
Where appropriate, this schedule should include multiple committable or releasable points so people can benefit from and/or test your work as early as possible.
We expect project work to be completed in git and require that work to be regularly pushed to a public repository.
Providing public access facilitates collaboration, allows project archiving, and helps mentors and the community support and monitor ongoing work.
Contributors will also be asked to maintain and update wiki pages of their work.
E-mail (including mailing lists), IRC, instant messaging (Matrix, Slack, etc.), and video conferencing have been some of ways contributors and mentors have communicated in the past.
Contributors are also encouraged to use these and other methods to engage with the wider FreeBSD community.
Experience suggests that the strongest proposals come from contributors who contact FreeBSD developers and potential mentors well in advance of submitting their proposal, seek feedback on their proposal ideas, and write proposals that reflect time spent exploring and understanding the problem area to be addressed.
Even if the FreeBSD developer(s) you contact aren't the eventual mentor of the project, their feedback can be invaluable. +
Yes, but do make sure you invest adequate time in each proposal.
We are not able to accept more than one project per contributor, so you may do better spending more time on one or two detailed proposals than by submitting lots of less-detailed ones.
In general, we will accept only one contributor for any given proposal idea, as most proposal ideas in our ideas list are sized with a single contributor summer project in mind.
This is a good reason to consider coming up with your own idea, or at least, making sure that your proposal for one of our project ideas reflects your unique contribution and viewpoint.
If you plan to submit multiple proposals, you might consider doing one with an idea from the list, and another with an original idea.
We always have more good applications than contributor places, but that doesn't mean you can't do the project anyway.
The FreeBSD Project always welcomes new volunteers to work on projects, and is generally happy to provide mentoring and support for contributors whose proposals could not be selected in order to allow them to work on their project anyway.
You will need to work with the FreeBSD Project GSoC administrators to identify a possible mentor.
The link://www.FreeBSD.org/[FreeBSD Project Home Page] is the best way to learn more about the project - from there you can reach the FreeBSD Handbook, FreeBSD Developer's Handbook, project mailing list archives, regular project status reports, and more.
If you have questions about specific project ideas, e-mail the technical contacts for those ideas.
If you have general GSoC questions relating to FreeBSD, such as if you are unable to reach a project technical contact, need help finding documentation, or want to know who might be a good person to talk to about your idea, send them to soc-admins@FreeBSD.org.
You can contact us in the https://wiki.freebsd.org/SummerOfCode/IRC[FreeBSD Summer of Code IRC Channel], post to the hackers mailing list, or mail soc-admins@FreeBSD.org.