Why apply to Outreachy?
> Outreachy Eligibility Rules
> Find a Mentor and Internship Project
> Past Outreachy Rounds
Outreachy December 2017 to March 2018 Internships
For the current list of internships, see the current round page
Timeline
Sept. 7, 2017 at 4pm UTC | Initial applications open |
Oct. 30, 2017 at 4pm UTC | Initial application deadline |
Oct. 16, 2017 | Project list finalized |
Sept. 7, 2017 at 4pm UTC | Initial application results available |
Sept. 7, 2017 to Oct. 30, 2017 | Contribute to projects |
Oct. 30, 2017 at 4pm UTC | Final application deadline |
Nov. 9, 2017 at 4pm UTC | Accepted interns announced |
Dec. 5, 2017 to March 5, 2018 | Internships period |
Intern Payment Schedule
Dec. 5, 2017 | Internships starts |
Dec. 15, 2017 | Feedback #1 due |
Jan. 16, 2018 | Feedback #2 due |
Jan. 14, 2018 | $500 stipend will be issued to interns with successful feedback #1 |
None | Feedback #3 feedback due |
April 11, 2018 | $2750 stipend will be issued to interns with successful feedback #3 |
March 12, 2018 | Feedback #4 feedback due |
March 5, 2018 | Internships end |
Participating Communities & Projects
Below is a list of the communities and the projects they offer. Sometimes this project listing gets out of date, so check the community landing page for the most current projects offered.
For each community, an approximate number of internship slots are listed. Please note that many communities find additional funding from the Outreachy general fund, so they may end up taking more interns than they have funding for. Don't avoid applying to a community just because it has a small number of internship slots! Please note that although communities like Mozilla and Linux Kernel often accept more interns, those communities have the most competitive projects. If you want to apply for either Mozilla or the Linux Kernel, please consider applying to a second project as well.
Each project has a list of skills they would like applicants to have basic experience with. Some project mentors are willing to teach applicants and interns new skills, so it never hurts to ask mentors what skills are required and which skills are optional. People from backgrounds who are under-represented in tech often feel impostor syndrome, which makes them under-estimate their skills. If you feel you "aren't experienced enough" or you only have some of the listed skills, it's important to apply anyway! Outreachy mentors are welcoming and willing to help.
Where ever possible, please try to communicate with mentors and send contributions to the public issue trackers or mailing lists that projects list on their landing pages. Some projects use a group chat tool called IRC. IRC can be a complex tool, but there are good beginner tutorials and notes on IRC etiquette and IRC clients. If you have trouble getting a hold of a mentor, you can send email to mentors@lists.outreachy.org. If you have a question about eligibility or can't find a project that you're interested in, you can send email to organizers@outreachy.org.
Late Applications Were Open until October 30
The projects listed below had an extended deadline of October 30.
CNCF Tracing - 1 internship spot - Applications Closed
Cloud Native Computing Foundation (CNCF) tracing landing page.
People building microservices at scale need tracing across distributed
systems to understand how and
why a system is misbehaving. Source code instrumentation can been
complex,
fragile, expensive, and difficult to maintain, which is why the CNCF has
two tracing projects: OpenTracing and Jaeger. OpenTracing is a
vendor-neutral open standard for distributed tracing. Jaeger is a
concrete set of tracers and a trace storage backend, for usage on
applications and microservices
instrumented with OpenTracing.
- Add instrumentation for tracing mobile applications.
- Split the JavaScript OT library: NodeJS and Browser
- Drive consensus on a common format for reporting trace/span data
- Improve OpenTracing MockTracer JUnit tests
- Move community Jaeger tracers to the jaegertracing organization
- Create OpenTracing API for a language not currently supported
- Write Jaeger tracer implementation for any OpenTracing API
Desired skills: C#
Kubernetes - 1 internship spot - Applications Closed
Kubernetes landing page. Kubernetes is an open-source system for automating deployment, scaling,
and management of containerized applications.
It groups containers that make up an application into logical units for
easy management and discovery. Kubernetes builds upon 15 years of
experience of running production workloads at Google, combined with
best-of-breed ideas and practices from the community.
- Develop kubectl create commands to make it easy to create Kubernetes resources
- Develop kubectl set commands to modify Kubernetes resources
Required Skills: Go
Applications and Contributions Due October 23
The rest of the projects had a deadline of October 23. The projects that are listed first had an initially low number of applicants.
Debian - 2 internship spots - Applications Closed
Debian landing page. Debian is a volunteer-driven project building "the Universal Operating System",
a 100% free and open source distribution, based on the Linux, FreeBSD
and Hurd kernels, for all devices, ranging from mobile phones, personal
computers, to mainframes and distributed cluster. The following projects currently have a low number of applicants (other Debian projects which are still accepting applicants are listed below):
- Improve continuous integration testing for Debian Med bioinformatics applications.
Desirable skills: background in bioinformatics.
Discourse - 1 internship spot - Applications Closed
Discourse landing page.
Discourse is a from-scratch reboot; an attempt to reimagine what a
modern Internet discussion platform should be today, in a world of
ubiquitous smartphones, tablets, Facebook, and Twitter. We're building
Discourse (with Rails and Ember.js) for the next decade of the Internet.
It works as a mailing list; a discussion forum; a long-form chat room.
Discourse is offering the following projects, which may use Rails or
Ember.js:
- Add support for new chatroom integrations (Stride, Basecamp Chat, Flock, IRC Cloud).
- Add
support to convert GIFs to MP4/WebP. GIFs can be extremely bandwidth
intensive. This could be mitigated by building a lightweight service
that converts GIFs to the .mp4 or .webp (for supported browsers) format.
- Add topic list tabs for user-customizeable saved filters. On some forums with a large variety of content, users will be most
interested in topics that fall into a subset of the categories or tags
available.
- Add support to mute a user's posts. Discourse
already supports muting users, but it will only prevent them from
sending you PMs. An extended version of muting would add an option to
hide a muted users post from view.
- Work on user data and authentication tasks.
- Improve Discourse user experience.
Optional: some prior UX experience.
- Improve Discourse email notifications.
- Improve Discourse search.
GNOME - 1 internship spot - Applications Closed
GNOME landing page. GNOME is a GNU/Linux-based innovative desktop that is design-driven and easy to use.
- Add network and power analysis to GNOME Usage, a new application that offers system resources analysis.
Required skills: Understanding of operating system resources and object-oriented programming. You will program in Vala, which is a high-level
language designed for GNOME that is similar to C#. - Add new features and polish the user experience for the GNOME photos application.
Desired skills: C, GLib, and GTK+
Play Framework - 1 internship spot - Applications Closed
Play Framework landing page. Play Framework makes it easy to build web applications with Java & Scala.
- Create
a Play module directory. Currently an ad-hoc module directory is
maintained in the markdown documentation. This quickly gets out of date,
and is missing features such as the ability to search for modules, as
well as listing different module versions and compatibility matrices.
This project will create a better module directory.
Ceph - 2 internship spots - Applications Closed
Ceph landing page.
Ceph is distributed, software-defined storage that allows users to turn
commodity hardware into a massively scalable storage cluster with no
single point of failure. This storage solution is able to speak object,
block, and file which unifies all storage needs under a single system
with self-managing and self-healing characteristics. Ceph is already
integrated with many systems, including the ever-growing world of cloud
offerings like OpenStack, CloudStack, OpenNebula, Ganeti, and others.
- Improve Ceph's radosgw-admin command's argument parsing implementation.
Desired skills: C++, Python, comfortable using a Linux development environment
- Add data visualization capabilites for the Ceph Bench Marking Tool (CBT).
Desired skills: Python, knowledge of Graphing tools, experience with data visualization, comfortable using a linux development environment
- Make a variety of improvements to Ceph's Messenger (ceph-mgr) dashboard.
Desired skills: Python (Intermediate), Javascript/HTML/CSS (Basic), experience with basic Linux administration
Debian - 2 internship spots - Applications Closed
Debian landing page. Debian is a volunteer-driven project building "the Universal Operating System",
a 100% free and open source distribution, based on the Linux, FreeBSD
and Hurd kernels, for all devices, ranging from mobile phones, personal
computers, to mainframes and distributed cluster. Debian is offering the following projects:
- Help create a fully free software development environment for the Android SDK Tools in Debian.
Desirable skills: Building and packaging C and Java code, Android development, an understanding of git and git-buildpackage.
- Develop helper scripts to manage the filesystems for private key storage for PGP and X.509 (PKI) Key Management
Desirable skills: Python, Newt, PGP, X.509, Cryptography, Shell scripting, User interface design
- Improve Debian mobile communications software and tools that implement GSM, GPRS, EDGE, UMTS, HSPA, LTE and their associated interfaces and protocol stacks.
Desirable skills: C, git
- Improve Debian reproducible builds (the ability to create byte-for-byte identical packages from the same source). Work on individual packages, toolchain issues, infrastructure, debugging tools, and documentation.
Optional skills: Python, Perl, Shell, web design, HTML, markdown
- Develop a calendar database of FOSS social events and conferences
Desirable skills: Python, Ruby, PHP.
Optional skills: Front-end web development skills may also be relevant (HTML, JavaScript, CSS)
- Improve testing Debian with OpenQA.
Required skills: a fresh perspective with which to notice which things don't work without
cheating (i.e. using a root login on the server), and a willingness to
work together in eliminating those cases.
Optional skills: simple Perl scripting for writing the tests is needed, but should be easy to learn.
- (Non-coding) Coordinate attendees and speakers representing Debian at Open Source conferences. Managing the Debian bursary effectively in order to help them attend conference if they face any financial issue.
Desirable skills: Good communication and coordinating skills.
- (Non-coding) Verify and improve the documentation and the website content in Debian.
Due to its sheer size and variety, many parts of the Debian wiki and
websites are in dire need of upgrades and fact-checking. Another goal is
to create beginner-friendly docs to various sections of the Debian
project to encourage more first-time contributions.
Desirable skills: Good communication skills and writing skills
- (Non-coding) Create a survey of Real-time Communications (RTC) services in use. Survey the free (like Ring or Jitsi), semi-proprietary (like Telegram) and proprietary (like Skype and ?WhatsApp) communications software that people use, and find which features they most desire in a free software alternative.
Git - 1 internship spot - Applications Closed
Git landing page. Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
- Speed up history traversals with caches
Required skills: C - Unify Git’s format languages
Required skills: C
Linux Kernel - 4 internship spots - Applications Closed
Linux kernel landing page. The Linux kernel is the most basic layer of the Linux operating system. It encompasses many things: hardware drivers, file systems, security, task scheduling, and much more. Most projects involve coding in C, and may require some operating system knowledge.
- Help out with the kernel's graphics subsystem, dri-devel.
- Develop tools automatically to document the kernel's configurable parameters, and create additional documentation.
- Improve nftables (network filtration tool)
- Write a driver for a sensor using the Industrial I/O interface
Mozilla - 4 internship spots - Applications Closed
Mozilla landing page. Mozilla creates software that promotes the goals of the Open Web. (Note that you may need to create an account on Mozillians.org and log in before you can see some mentor contact information.)
- Improve a new templating language, JSON-e, which was written for Taskcluster, a task-execution platform which will soon handle all build, test, and release work for Mozilla projects.
Required: Python, Javascript
- (Non-coding and Coding) Support localization of the Mozilla add-ons linter (a tool that aims to find common issues within with a Mozilla web-extension).
- Improve the add-ons linter (a tool that aims to find common issues within with a Mozilla web-extension) by improving validation, migrating to await/async, improving feedback about icons and add-on permissions, and improve schema validation.
Required: JavaScript and be familiar with ES2015+ syntax
Optional: Node.js
- Update Android WebExtensions to the latest Mozilla API. WebExtensions have been working on Android for many releases, but the API is a little bit behind the Desktop version of Firefox. We’d like to improve the API on Android so that we can get some great extensions on Android. This is a cool opportunity to contribute to a mobile project that ships to millions of users.
Required: JavaScript
Optional: Java or C++
Open Data Kit - 2 internship spots - Applications Closed
Open Data Kit landing page. Open Data Kit (ODK) is a free and open-source set of tools which help organizations author,
field, and manage mobile data collection solutions. Data collection is a
key component of social good efforts ranging from polio elimination to
rainforest conservation and ODK helps thousands of organizations collect
data quickly, accurately, offline, and at scale.
- (Non-Coding and Coding) Improve documentation and general communication about the ODK project. This project could involve different components depending on the interests, skills and goals of the intern and the needs of the community at the time. The overall goal is to help make sure that users can start their important data collection work as smoothly as possible and that new contributors can easily get started!
Optional skills: Python, Java
OpenStack - 3 internship spots - Applications Closed
OpenStack landing page. OpenStack is open source software for building public and private clouds. What does that mean? We're a collection of open source projects that integrate to help organizations deploy and run clouds for computing, networking, and storage (both block storage for providing volumes to VMs and object storage for storing objects such as images or music files). With OpenStack, you can control large pools of compute, storage, and networking resources throughout a data center, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface
- Work on Go and Container related projects in OpenStack.
Required skills: Python, Go
- Add introspection HTTP REST points to the Kubernetes API watchers.
Required skills: Python
Optional skills: API design
- Improve Keystone testing jobs in Jenkins cover the new features on Keystone, such as fernet tokens, v3 API and functional tests
Required skills: Python
Optional skills: Tests on CI, but we'll teach you
Systers - 3 internship spots - Applications Closed
Systers landing page. Systers is an Anita Borg Institute (ABI) Community for all women involved in the technical aspects of computing. The community has over 7,000 members from at least 65 countries around the world. Systers is looking to improve their web applications (Portal, VMS, & Meetup) and mobile applications (PowerUp: Android, iOS, & Design). Portal, VMS, and Meetup work together to provide at least 18 affinity communities a platform to coordinate, collaborate, and launch events (http://portal-beta.systers.org/). PowerUp is a female empowerment educational mobile game app that will allow young girls to learn about reproductive health and self-esteem by navigating the life of their avatar.
- Improve or add new features to Systers Portal
Desirable skills: Python, Django
- Improve or add new features to Systers VMS (Volunteer Management System)
Desirable skills: Python, Django
- Expand Selenium test coverage for the Systers Portal, VMS, or Meetup.
Desirable skills: Java, Python, Experience using Selenium
- (Non-Coding) Coordinate and create processes for all 43 Systers project repos. Some projects are active, some are not. Work includes collaborating with the Program Manager of Technical Programs at ABI to create consistent processes throughout each repo. As Systers is involved with open source programs all year round, each repo needs an update. Another goal would be to gather all old documentation and post publicly on the respective GitHub repo.
Desirable skills: Good communication, good coordinating skills, and good time management.
Tor Project - 1 internship spot - Applications Closed
Tor Project landing page. The Tor Project is a US 501(c)(3) non-profit organization advancing human rights and freedoms by creating and deploying free and open source anonymity and privacy technologies, supporting their unrestricted availability and use, and furthering their scientific and popular understanding.
- (Non-Coding) Become a user advocate to serve as a bridge between Tor’s non-technical users and Tor’s team
of developers. We are looking for a user advocate — someone who can see
how users interact with the Tor network and where there are issues, and
then relay this information to developers. This person will also help
the communications and community teams craft responses to highly
technical questions from users, researchers, and the press. This person
must be comfortable explaining technical concepts to non-technical
people.
Wikimedia - 4 internship spots - Applications Closed
Wikimedia landing page. Wikimedia is a global movement whose mission is to bring free educational content to the world, via Wikipedia and other projects. Help improve our technical backstage! Note: unlike other participating organizations Wikimedia asks applicants to post their applications publicly and the information on whether someone was accepted or not is also posted publicly as a comment to the application.
- Translation outreach for user guides on MediaWiki.org
Required skills: Localization of technical documentation
- Develop a tool for displaying a user contribution summary
Required skills: Sitebuilding (HTML, CSS, JS), familiarity with atleast one backend language
- Automatically detect spambot registration using machine learning like invisible reCAPTCHA
Required skills: Basic PHP/Javascript, Python, Machine Learning
- Improvements to Grants Review and Wikimania Scholarships web applications
Required skills: Basic web application development with PHP, Familiarity with Wikimedia universe
- Localize one or more major Wikimedia Foundation software products related to new editor retention to Hungarian Wikipedia
Required skills: Has to speak Hungarian, community engagement, coding skills (optional)
- Improve Toolforge (a hosting environment for Wikimedia developers) 'webservice' python application.
Required skills: Familiarity with Python, Toolforge and Wikimedia movement
- Improve the Wikimedia user watchlist feature so it shows edits made on Wikimedia Commons.
Required skills: Database (SQL), Familiarity with MediaWiki
Zulip - 3 internship spots - Applications Closed
Zulip landing page. Zulip is a powerful open source group chat application. Projects include:
- Writing bots and integrations -- e.g., a better IRC mirror or Jabber mirror or Mailman integration.
Required skills: Python
- Making it easier to import data from Slack into Zulip.
Required skills: Python
- Working on engineering for our React Native mobile app for iOS. This is a pressing need for us, since our current iOS app is very out of date.
Required skills: mobile development (ideally react native, but other languages are possible)
- Merging some of our Django extensions into upstream. Lots of projects on the core Zulip server and web frontend. The backend is written in Python and uses the Django framework, and the frontend is written in vanilla jQuery/javascript.
- Time-tracking of database and memcached profiling data and including in logs, and adding support for doing the same with time spent rendering templates (may be worth looking at https://github.com/dropbox/stopwatch as a potential replacement)
Required skills: Python
- Zulip’s caching extensions (zerver/lib/cache*.py)
Required skills: Python
- Improving our Electron-based desktop client application with better design, notifications, and cooler desktop integrations.
Required: Javascript, front-end development
- (Non-Coding) Writing more development tutorials, and especially testing/documenting/expanding the Zulip API bindings -- we'd probably want to go for an approach that involves auto-generated documentation.
- (Non-Coding) Writing technical blog posts for the Zulip blog.
Projects That Closed Applications Early
The projects in this section already have many strong candidates they have worked with. If you are just starting out with the Outreachy application process, we don't suggest you apply for these projects. If you have been working with the project mentors, please continue to work with them, and make sure to submit your application in the Outreachy application system.
- Ceph - Feed hard drive wear data back to the central Ceph cluster's “manager” daemons.
Desired skills: C, C++, Python, experience with basic Linux administration
- Fedora - Develop
administrative tools for the 389 Directory Server, an enterprise class
LDAP server, used in businesses globally to authenticate and identify
people.
We are working hard to improve our usability and accessibility to the
server, especially in how the server is administered. Your project would
be to help us improve our python command line tools.
Our framework already has the base classes designed and written, but we
need help to knit together the high level administrative functionality.
Required skills: Python, git
Optional skills: C
Fedora - Fedora
Hubs is a web application that will provide a communication and
collaboration center for Fedora contributors of all types. It aims to
integrate with all the various tools teams use and provide a consistent
experience for contributors across projects and teams. By design, it
will accumulate a lot of data from all around the Fedora project, and it
would be very useful to be able to search that data. This proposal
consists in implementing the frontend and the backend for the search
feature.
Required skills: Python/Flask for the backend and HTML/CSS/Javascript for the front end.
- Systers - Improve or add new features to Meetups
Desirable skills: Python, Django
- Systers - Add more mini-games or engaging elements to Systers PowerUp (Android or iOS)
Desirable skills: Java, Android SDK, XCode, iOS SDK
- Systers - (Non-Coding) Design more PowerUp elements such as
avatar accessories or customization, backgrounds for scenarios, or mini
game elements.
Desirable skills: Photoshop, Adobe Illustrator
- Wikipedia - Improve Programs & Events Dashboard support for Art+Feminism 2018
Required skills: Ruby on Rails, JavaScript, CSS, React.js and Redux, Web design