Tor: Google Summer of Code 2015
IMPORTANT NOTE: Tor was not accepted into GSoC 2015. Hopefully we'll be back next year, but in the meantime we're running our own program: the Summer of Privacy!
The Tor Project, in collaboration with The Electronic Frontier Foundation, have taken part in Google Summer of Code for 2007 through 2014, mentoring the total of 53 students.
You must be self-motivated and able to work independently. We have a thriving community of interested developers on the IRC channel and mailing lists, and we're eager to work with you, brainstorm about design, and so on, but you need to be able to manage your own time, and you need to already be somewhat familiar with how free software development on the Internet works.
Working on Tor is rewarding because:
- You can work your own hours in your own locations. As long as you get the job done, we don't care about the process.
- We only write free (open source) software. The tools you make won't be locked down or rot on a shelf.
- You will work with a world-class team of anonymity experts and developers on what is already the largest and most active strong anonymity network ever.
- The work you do could contribute to academic publications — Tor development raises many open questions and interesting problems in the field of anonymity systems.
The best way to get involved is to come listen on IRC (both "#tor" and "#tor-dev"), read our docs and other webpages, try out the various tools that are related to the projects that interest you, and ask questions as they come to you: Getting up to speed.
In addition to getting some more development work done on Tor and related applications, Google and Tor are most interested in getting students involved in Tor development in a way that keeps them involved after the summer too. That means we will give priority to students who have demonstrated continued interest and responsiveness. We will require students to write public status report updates for our community, either by blogging or sending mail to our mailing list. We want to ensure that the community and the student can both benefit from each other.
When it comes time for us to choose projects, our impression of how well you'll fit into our community — and how well you are at taking the initiative to do things — will be at least as important as the actual project you'll be working on.
To start with, please see Tor's projects page and its following ideas.
The best kind of ideas are well defined and easily broken into subtasks. A lot of students try to bite off open-ended development and research topics. But if you're going to spend the first half of your summer figuring out what exactly you should code, there's a chance that the conclusion will be "oh, that isn't actually feasible to build after all" and your proposal will make us very nervous.
Try to figure out how much you can actually fit in a summer, break the work down into manageable pieces, and most importantly, figure out how to make sure your incremental milestones are actually useful — if you don't finish everything in your plan, we want to know that you'll still have produced something useful.
Please use the following template for your application, to make sure you provide enough information for us to evaluate you and your proposal.
- What project would you like to work on? Use our ideas lists as a starting
point or make up your own idea. Your proposal should include high-level
descriptions of what you're going to do, with more details about the
parts you expect to be tricky. Your proposal should also try to break
down the project into tasks of a fairly fine granularity, and convince
us you have a plan for finishing it. A timeline for what you will be doing
throughout the summer is highly recommended.
Note that we might share which project ideas have strong applications in order to spread applicants out (it's bad for everyone for several strong applicants to be for the exact same project).
- Point us to a code sample: something good and clean to demonstrate that you know what you're doing, ideally from an existing project.
- Why do you want to work with The Tor Project in particular?
- Tell us about your experiences in free software development environments. We especially want to hear examples of how you have collaborated with others rather than just working on a project by yourself.
- Will you be working full-time on the project for the summer, or will you have other commitments too (a second job, classes, etc)? If you won't be available full-time, please explain, and list timing if you know them for other major deadlines (e.g. exams). Having other activities isn't a deal-breaker, but we don't want to be surprised.
- Will your project need more work and/or maintenance after the summer ends? What are the chances you will stick around and help out with that and other related projects?
- What is your ideal approach to keeping everybody informed of your progress, problems, and questions over the course of the project? Said another way, how much of a "manager" will you need your mentor to be?
- What school are you attending? What year are you, and what's your major/degree/focus? If you're part of a research group, which one?
- How can we contact you to ask you further questions? Google doesn't share your contact details with us automatically, so you should include that in your application. In addition, what's your IRC nickname? Interacting with us on IRC will help us get to know you, and help you get to know our community.
- Are you applying to other projects for GSoC and, if so, what would be your preference if you're accepted to both? Having a stated preference helps with the deduplication process and will not impact if we accept your application or not.
- Is there anything else that we should know that will make us like your project more?
We mostly pick mentors from the core Tor development team so we should be able to accommodate a wide variety of projects. These can range from work on Tor itself to work on supporting or peripheral projects.
All selected projects are assigned both a primary and assistant mentor to answer your questions and help you integrate with the broader Tor community. Though your mentors are a primary point of contact please use our public spaces (the #tor-dev irc channel and tor-dev@ email list) to discuss your project. We want you to become a part of the community by the end of the summer, not a stranger that's only known by your mentor.
If you're interested, you can either contact the tor-assistants list (a private list) with a brief summary of your proposal and we'll give you feedback, or just jump right in and post your ideas and goals to the tor-dev mailing list (which is open). Make sure to be responsive during the application selection period; if we like your application but you never answer our mails asking for more information, that's not a good sign.
We're always happy to have new contributors so if you haven't filled up your summer plans yet, please consider spending some time working with us to make Tor better!
Below are examples of some GSoC applications from previous years we liked. The best applications tend to go through several iterations so you're highly encouraged to send drafts early.
Ahmia.fi - Search Engine for Hidden Services by Juha Nurmi
Orbot & Orfox by Amogh Pradeep
Revamp GetTor by Israel Leiva
Weather Rewrite by Sreenatha Bhatlapenumarthi
BridgeDB Distributor by Kostas Jakeliunas
Searchable Tor descriptor archive by Kostas Jakeliunas
Create an Internet Censorship Virtual Machine Based Simulator by Johannes Fürmann
Stem Improvements and Arm port by Ravi Padmala
SOAT Expansion by John Schanck
GTK+ Frontend and Client Mode Improvements for arm by Kamran Khan
Orbot + ORLib by Sathya Gunasekaran
Blocking-resistant Transport Evaluation Framework by Brandon Wiley
Metadata Anonymisation Toolkit by Julien Voisin
Website Pootle Translation by Damian Johnson