Outreach Program for Women


Once again we are participating in the Outreach Program for Women. The program will be running from December 9, 2014 to March 9, 2015. The application deadline is October 22nd 2014.

The main program page contains general information about the program such as the timeline, background information, eligibility, requirements, and details of the application process.

We would encourage potential interns to start getting involved with their communities and and to start thinking about project ideas now.

Interns are encouraged to come up with their own project ideas. We will, however, but putting together a list of suggestions and possible mentors.

Program Coordinators:

  • Karen Pauley - karen at perlfoundation.org
  • Ya'akov Sloman - yaakov at perlfoundation.org

Project Ideas

Working on Dancer


Dancer is a simple but powerful web application framework for Perl. We have a list of possible tasks that you could take on if you want to work on this project:

Documentation overhaul:

Dancer2 has its documentation copied almost verbatim from Dancer version 1. The documentation is not up-to-date, is not accurate, and unfortunately confusing to new-comers. The project contains going over the entirety of the documentation, deciding on a structure (between the manual, tutorial, cookbook, and more items), cleaning it up, and then restructuring it. This might entail rewriting the tutorial. It means going over all the documentation and making sure it's up-to-date and correct. This also includes the new migration document.

This project is at its core a way to help people adopt Dancer2 as a new framework.

Testing overhaul:

The testing suite for Dancer2 provides good testing coverage, but, in its core, a random assortment of testing files. Plans for overhauling the tests concentrate on associating the tests with the specific classes that are used. There is an entire file structure waiting or it (with a few tests already waiting as patches to be integrated). This project entails covering the core classes, at the very least.

Plugin architecture:

The introduction of Dancer2 introduced a problem in the plugins architecture. We went through various attempts at sorting this out, but unfortunately failed. Each approach had a problem that we did not have enough time to step back and fix. This project involved separating the core of the DSL implementation to an API and then provide a cleaner plugins interface. Previous plugins implementers have expressed their approval in helping with this.

Rewrite the error objects:

The core error object class is deficient in multiple ways. We would like to rewrite it from scratch to be more flexible and smart. This has a smaller scope than other tasks, but has many benefits, and will solve a problem we've wanted to fix for a long while now.

For more information about the possibilities and to begin contributing please contact the mentor for this project: sawyer x - xsawyerx at cpan.org.

Working on MetaCPAN

About MetaCPAN

http://metacpan.org is an open source search engine for the Comprehensive Perl Archive Network (CPAN), an ever growing archive of code and documentation for
the Perl programming language.

MetaCPAN is a community effort, with all the code freely available on GitHub. We are a relatively young open source project. At this point, MetaCPAN is about 2.5 years old. It's old enough to have become an important and well utilized part of the Perl world, but it's also young enough to have lots of room to evolve. As you will see we have many ideas and encourage more suggestions. You'll find one a current list of our many code contributors here: https://metacpan.org/about/contributors

Our code base is based on current best practices and modern web technologies. Our stack includes Catalyst, Plack, ElasticSearch, jQuery, Bootstrap and nginx. We also use Puppet for deployment and Vagrant + VirtualBox for development VMs. We have integration with Twitter, Github, PAUSE, Facebook and Google. All code is managed on Github and we have an active channel (#metacpan) on irc.perl.org.

The project list is ever growing and subject to change as volunteers take items on, but here's a sampling of what we'd love for you to consider working on.

Improve Search

metacpan.org already has workable search functionality, but it could be improved a lot. This is our main pain point. We need help in the following areas:

  • Porting our Elasticsearch from 0.21 to 1.x
  • Optimizing current searches so that they return results faster
  • Improving the current search to return more relevant results
  • Adding the ability to search on other things, like authors
  • Including TRIAL releases in search results

You do not need to have any working knowledge of Elasticsearch in order to take this on. We are here to point you at the resources you need to be successful with this. Taking this on means you'll learn a lot about Elasticsearch and you'll get experience working with a lot of data at once. These are skills which can benefity you greatly in your professional life working in IT.

Bug Fixes

There are hundreds of outstanding issues waiting to be resolved. The large number of tickets is not indicative of a lack of response on the part of MetaCPAN developers (we try to stay on top of them), but it indicates the enthusiasm with which people are helping us track ways to improve. Starting with some open issues would be a good way to familiarize yourself with our codebase.

API Documentation

Because things traditionally have changed so rapidly, our documentation has either not kept up or not been written to completion. You can help us (and many Perl developers) by documenting the API and posting example code for both new and experienced MetaCPAN users. For example, most people do not know that MetaCPAN can function as an OAuth provider and could, therefore, be used for authenticating users across a range of Perl services. You could post example code for this use case and help facilitate MetaCPAN OAuth integrations.

MetaCPAN is used by web, command line, Android and iOS apps, so there are many kinds of examples which could be documented.

What Can We Offer you?

It's already clear from the materials above that there are many ways for you to make your mark on MetaCPAN, but what can we offer you? You will have the chance to be mentored by experienced (and employed) Perl developers. We will carefully review all of your code and give you constructive (and kind) feedback. We will help you improve your code and your coding practices. MetaCPAN is a positive place. We will help you get from A to B with your code, but your work won't be trashed and you won't be insulted. We value all contributions and we want every contributor to know that she or he is appreciated. There are some harsh places on the Internet and in Open Source. This is not one of them.

You'll have the chance to learn about the technologies as listed in our "stack" above. You will have help and guidance in working with these technologies from people who are quite familiar with them. Your code will deploy on robust hardware (think 30+ GB of RAM). Your code will often deploy within hours or even minutes of being submitted. Your work will immediately be put to the test by our many users on our very busy services. You'll gain experience in NoSQL (ElasticSearch), git, and also in participating in an Open Source project which functions as a highly available web service. You will gain experience not just in writing code, but in participating in the full cycle of code deployment, skills which are quite valuable in the real world.

If any of this sounds remotely interesting to you, please don't hesitate to get in touch. You can contact me directly via the information listed below. If you just want to see how you like the project, feel free to get involved via github, IRC or both. We'll guide you through the process and you can decide for yourself if it's a good fit for you. We look forward to hearing from you.


Olaf Alders
Twitter: @wundercounter
IRC: oalders (always in #metacpan on irc.perl.org)

Our github org: https://github.com/CPAN-API/

Front end: https://github.com/CPAN-API/metacpan-web
API: https://github.com/CPAN-API/cpan-api

(On IRC you can ping me ("oalders"), or "mo", "ranguard" or "rwstauner" to get the most up to date information, but there are also many others in the channel who are very helpful.)


September 22nd application period opens
September 12th - October 22nd applicants need to get in touch with at least one project and make a contribution to it
October 22nd application deadline at 7pm UTC
November 12th accepted participants announced on this page at 7pm UTC
December 9th - March 9th internship period

Payments Schedule

The GNOME Foundation will be administering the payments of the $5,500 (USD) stipends. In addition, $500 (USD) travel allowance will be available to the interns.

December 16th $500 will be sent to participants who have begun their internships by this date
January 29th $2250 will be sent to participants in good standing with their mentors by this date
March 12th $2750 will be sent to participants who have successfully completed their internships by this date

The decision about good standing and successful completion will be made by the mentor in consultation with the program coordinators. An intern can request the coordinators to re-review this decision.