Skip to content

Outreach Program for Women (Winter 2014)

davelester edited this page Nov 15, 2014 · 11 revisions

@TwitterOSS is a proud participant of the Free and Open Source Outreach Program for Women, which runs two editions every year. In this program we connect women with open source projects and mentors in a three-month, full-time internship.

Information for Applicants

These ideas were contributed by our developers and our community, they are only meant to be a starting point. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

Timeline

Check all the details about this round at the program page.

  • October 1: application period opens
  • December 10 - March 10: internship period

Accepted Projects

We accepted 1 project for the 2014 Winter OPW term!

IPv6 support

  • Brief explanation: From the Mesos CLI down through the various layers of tech we should support IPv6.
  • Expected results: Ability to run mesos masters and slaves in an IPv6 only environment.
  • JIRA Issue: https://issues.apache.org/jira/browse/MESOS-1027
  • Knowledge Prerequisite: Networking, IPv6, C++
  • Mentor: Dominic Hamon (dhamon@twitter.com)
  • Student: Evelina Dumitrescu

Adding a Proposal

Please follow this template:

  • Brief explanation:
  • Expected results:
  • Knowledge Prerequisite:
  • Mentor:

See here for more information: https://wiki.gnome.org/OutreachProgramForWomen#Send_in_an_Application

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first or @TwitterOSS.

Project Ideas

  • Description: Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation.
  • Aurora Mailing List: http://aurora.apache.org/community/
  • Aurora IRC: #aurora
  • Aurora on Twitter: @ApacheAurora
  • Where to start: The project also has several tickets labeled newbie if you'd like to introduce yourself by submitting a patch.

Out-of-the-box Aurora Service Discovery

  • Brief explanation: Aurora provides out-of-the box service registration, but no answer for discovery. Implement a ServerSet-compatible haproxy updater to provide service discovery in Aurora.
  • Mentor: Bill Farner (wfarner@twitter.com)

Improved Aurora Tutorials, Website, and Support

  • Brief explanation: Provide documentation, sample scripts, and training video for setting up a mesos/aurora cluster on a cloud service such as Amazon EC2 or Google Cloud Platform.
  • Knowledge Prerequisite: An interest and ability to pick up Aurora, HTML/CSS and Ruby are nice to have
  • Mentor: Bill Farner (wfarner@twitter.com)

Improvements to Pesos

  • Brief explanation: Pesos is a pure python implementation of the Mesos API, and in order to productionize Pesos and make it the default Mesos library binding for the Aurora/Thermos executor there are a few tasks. These include things like making installation, and overall simpler to get up and running building new Mesos frameworks in Python.
  • Knowledge Prerequisite: Python
  • Co-Mentors: Brian Wickman (wickman@twitter.com) and Kacie Houser (kacie.houser@rackspace.com)

Improvements to Pystachio

  • Brief explanation: Pystachio is the DSL we use to write .aurora files, and there are opportunities to make Pystachio schemas pluggable and simplified. This work is also a requirement for Aurora to cleanly integrate with upcoming features like Docker support in Aurora.
  • Knowledge Prerequisite: Python
  • Co-Mentors: Brian Wickman (wickman@twitter.com) and Kacie Houser (kacie.houser@rackspace.com)

(Mentors for Finagle projects still subject to change.)

Netty Migration

  • Brief explanation: Assist in the process of migrating Finagle from Netty 3 to Netty 4
  • Expected results: Improved Finagle APIs that do not expose Netty types
  • Knowledge prerequisites: Scala, Java, an interest in learning about Netty and Finagle
  • Mentors: Travis Brown (@travisbrown)

New Endpoints for Twitter-Server

  • Brief explanation: Twitter-Server currently exposes a lot of information that can be difficult to digest
  • Expected results: New Twitter-Server endpoints for examining histograms and other stats
  • Knowledge prerequisites: Scala, Jackson (or other JSON libraries), an interest in learning about Finagle
  • Mentors: Travis Brown (@travisbrown)

Better Testing Tools and Documentation

  • Brief explanation: Finagle's tests are in the process of being migrated from specs to ScalaTest, and there’s room for improving our use of ScalaTest
  • Expected results: Better tools and guidelines for testing both Finagle itself and Finagle applications
  • Knowledge prerequisites: Scala, ScalaTest, an interest in learning about Finagle
  • Mentors: Travis Brown (@travisbrown)
  • Description: Apache Mesos is a cluster manager that abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.
  • Mesos Mailing List: http://mesos.apache.org/community/
  • Mesos IRC: #mesos
  • Mesos on Twitter: @ApacheMesos
  • Where to start: The project also has several tickets labeled newbie if you'd like to introduce yourself by submitting a patch.

IPv6 support

  • Brief explanation: From the Mesos CLI down through the various layers of tech we should support IPv6.
  • Expected results: Ability to run mesos masters and slaves in an IPv6 only environment.
  • JIRA ticket: https://issues.apache.org/jira/browse/MESOS-1027
  • Knowledge Prerequisite: Networking, IPv6, C++
  • Mentor: Dominic Hamon (dhamon@twitter.com)

Updating FrameworkInfo

  • Brief explanation: Allow frameworks to update their FrameworkInfo without having to restart masters or slaves or tasks/executors. In other words, the updated FrameworkInfo should be properly reconciled across the cluster in a seamless fashion.
  • Expected results: A working implementation that allows all fields of FrameworkInfo to be updated.
  • JIRA ticket: https://issues.apache.org/jira/browse/MESOS-1784
  • Knowledge Prerequisite: C++, Ability to understand Mesos architecture/codebase
  • Mentor: Vinod Kone (vinod@twitter.com)

Mesos Getting Started Page and Documentation

  • Focused on improving the 'Getting Started' page and overall project documentation
  • Will fill in gaps of project documentation, including stout/libprocess/mesos
  • Knowledge Prerequisite: C++ and interest in documentation
  • Mentors: Dave Lester (@davelester) and Vinod Kone (@vinodkone)

Mesos Tutorials, Website, and Support

  • Focused on an end-to-end tutorials (creating one or two) that walk user through running Mesos frameworks. * May be in the form of screencasts (video) or written form
  • Participates in Mesos community mailing lists to help field community questions
  • Additional focus on improving the Mesos website and what new users see
  • Knowledge prereq: An interest and ability to pick up Mesos, HTML/CSS and Ruby are nice to have
  • Mentors: Dave Lester (@davelester) and Vinod Kone (@vinodkone)

IntelliJ Integration

Android Integration Polish

  • Brief explanation: Improve Android support
  • Expected results: A working app-store app built and deployed by Pants
  • Knowledge Prerequisite: Python, Java, Android
  • Mentor: Ity Kaul ity@twitter.com

Update the Report Server

  • Brief explanation: The Report Server needs improvements and polish
  • Expected results: ix the render for payloads; there are broken header/footer windows; make UI match docsite; easily host the docsite locally
  • Knowledge Prerequisite: Python, Java, Android
  • Mentor: Ity Kaul ity@twitter.com

Ivy Improvements

  • Brief explanation: Improve Ivy support and dependency resolution support
  • Expected results: add parallel fetch support to ivy and get this posted upstream; replace ivy with ether or some other dep resolver backend
  • Knowledge Prerequisite: Python, Java, Android
  • Mentor: Ity Kaul ity@twitter.com

Eclipse Integration

  • Brief explanation: Add Eclipse integration to Pants
  • Expected results: Create a classpath container based on integrating with Pants and a launcher.
  • Knowledge Prerequisite: Python, Java, Eclipse
  • Mentor: Chris Aniszczyk (@cra)