Open source is a huge part of Facebook engineering. Whether we’re building new data infrastructure tools like Corona and Presto to manage our warehouses on Hadoop, releasing a new mobile build tool like Buck, or improving PHP runtime with HHVM, open source projects are integral to our operations.
We also believe that contributing to open source projects is one of the best ways a student can prepare for a job in the industry. Software development as a profession has many features that are distinct from computer science as an academic subject. Projects are often larger than the people who participate in them; project management and interpersonal relationships can have as much impact on software design as technical issues; and systems are ultimately evaluated by user satisfaction rather than technical merit.
To help bridge this gap between school and industry, last spring Facebook teamed up with Jay Borenstein, a computer science professor at Stanford, to launch Open Academy. Open Academy is a program designed to provide a practical, applied software engineering experience as part of a university student’s CS education. The program works closely with key faculty members at top CS universities to launch a course that matches students with active open source projects and mentors and allows them to receive academic credit for their contributions to the open source code base.
At the beginning of the semester, students and mentors from open source projects come together for a weekend of learning and hacking. After this kickoff session, students return to their universities and continue to work in virtual teams. Open source mentors support their teams by helping students find and understand tasks and review code contributions. The course instructors at each university meet with student teams at regular intervals to review progress. Some instructors overlay a lecture series to provide further learning opportunities to students.
We piloted this program at Stanford in 2012 and expanded in 2013 to include MIT, University of Texas at Austin, Cornell Univeristy, University of Toronto, Waterloo University, University of Singapore, University of Tokyo, Imperial College of London, Jagiellonian University, University of Helsinki, and Tampere University of Technology.
To date, students and mentors have worked on open source projects like Freeseer, Kotlin, MongoDB, Mozilla Open Badge, Phabricator, Pouch DB, Socket IO, Review Board, and Ruby on Rails. The team working on Ruby on Rails included Noam Ben-Avi and Robert Hintz, two students from Jay Borenstein’s 202-10 CS class at Stanford. Aaron Patterson, an engineer at AT&T interactive and a member of the Rails core team, acted as their mentor during the class and worked with Noam and Robert on real projects, like creating apps on Rails and improving the framework. Between working on bugs and routing, by the end of the program they had significantly improved efficiency and reduced latency.
Since taking the class, Noam and Robert have started developing a new system to make onboarding for open source projects easier. It can be difficult for people new to programming to know how to start working on open source, so the goal of this system is to easier for new participant to figure out what to contribute, learn how to submit a patch, and find a mentor.
In an effort to give every CS student the opportunity to get involved in Open Source, we’re excited to announce the expansion of the program to University of Pennsylvania, UC San Diego, Columbia University, Carnegie Mellon University, UC Berkeley , Purdue, University of Warsaw, UIUC, UCLA, and University of Washington.
The winter 2014 course will officially begin in early February when all of the participating faculty, students, and open source mentors from around the world fly to Facebook’s headquarters for a three-day kickoff event. Here, students will get together with their teams and begin to dive into their project codebases. Faculty will also get together and discuss innovative approaches to improving computer science curriculum as a whole.
The winter 2014 classes are assembling now. To learn more about Open Academy and get involved, please visit the program’s Facebook page.