Skip to content

Google Summer of Code 2012

camertron edited this page Mar 17, 2012 · 35 revisions

Google Summer of Code 2012

At Twitter, we love Open Source, working with students and Google Summer of Code (GSOC)! What is GSOC? Every year, Google invites students to come up with interesting problems for their favorite open-source projects and work on them over the summer. Participants get support from the community, plus a mentor who makes sure you don't get lost and that you meet your goals. Aside from the satisfaction of solving challenging problems and contributing to the open source community, students get paid and get some sweet swag for their work! In our opinion, this is a great opportunity to get involved with open source, improve your skills and help out the community!

We hope to participate in GSOC for the first time this year.

Information for Students

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.

Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.

If there is no specific contact given you can ask questions via @TwitterOSS or via the twitter-gsoc mailing list.

Adding a Proposal

Please follow this template:

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

When adding an idea to this section, please try to include the following data.

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

Improved Bootstrap Customize Experience

  • Brief explanation: New Bootstrap Customize Experience, see the old one: http://twitter.github.com/bootstrap/download.html
  • Expected results: A more full featured and dynamic builder page. Thinking something which handles dependencies, has more variables, color pickers, sliders, etc. Should be the best custom download page on the internet basically. This would also include improving the backend (performance & flexibility - currently written in Node, could rewrite in something else). The backend should be opensourced at the end of the project as well.
  • Knowledge Prerequisite: Javascript, CSS, (Node, or something similar)
  • Mentor: Jacob Thornton (@fat) & Mark Otto (@mdo)

Event-driven Framework for Twitter4J

  • Brief explanation: This is a proposal to build an event-driven framework to make Twitter-integrated app development more easier. The framework will cover (1) Timeline retrieval - efficiently and transparently retrieve user timelines using the REST API, Search API and Streaming API (2) Persistence / cache - store Tweet, User, Avatar, Direct Message in persistent store and|or cache (3) Event dispatch - dispatch events to application classes

  • Expected results: A set of test cases, a framework and an example code of the framework.

  • Knowledge Prerequisite: Java language, Java thread model, JUnit (optional: Maven, git, GitHub, Object Oriented Design)

  • Mentor: Yusuke Yamamoto (@yusuke)

MySQL codec

  • Brief explanation: Implement the MySQL protocol as a codec in finagle.
  • Knowledge Prerequisite: Scala, familiarity with asynchronous IO, network protocols.
  • Mentor: Marius Eriksen (@marius)

Graph compression and new algorithms

  • Brief explanation: Experiment and innovate with graph compression in Cassovary. Also implement some new algorithms, and explore performance trade-offs with compression.
  • Expected results: A compression version of the graph data structure contributed to Cassovary, and a study of performance trade-offs from compression.
  • Knowledge Prerequisite: Scala, algorithms, basic graph theory.
  • Mentor: Pankaj Gupta (@pankaj) and Aneesh Sharma (@aneeshs)

https://github.com/twitter/twitter_cldr

Bringing awesome internationalization capabilities to Ruby.

  • Explanation
    • Research and implement several algorithms specified by the ICU (International Components for Unicode), an industry standard, by augmenting the twitter_cldr Ruby Gem. Algorithms include text normalization, collation (sorting/searching), and casing (upper, lower) in any locale.
    • Use data from the Unicode Consortium's CLDR (Common Locale Data Repository) to make plurals, lists, and currencies easy to format in any locale.
    • Add pseudo-Unicode capabilities to Ruby 1.8 strings (1.9 has much better Unicode support).
  • Expected results: Completion of 2 or 3 of the aforementioned algorithms, plenty of good unit tests.
  • Knowledge Prerequisite:
    • Ruby or similar scripting language
    • Ruby Gems
    • Knowledge of Unicode a plus
    • Familiarity with a foreign language a plus
  • Mentor: Cameron Dutro (@camertron)

Project

Project URL

Project Idea (e.g., New Feature)

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

General Proposal Requirements

Proposals will be submitted via http://socghop.appspot.com, therefore plain text is the best way to go. We expect your application to be in the range of 1000 words. Anything less than that will probably not contain enough information for us to determine whether you are the right person for the job. Your proposal should contain at least the following information, but feel free to include anything that you think is relevant:

  • Please include your name and twitter handle!
  • Title of your proposal
  • Abstract of your proposal
  • Detailed description of your idea including explanation on why is it innovative
  • Description of previous work, existing solutions (links to prototypes, bibliography are more than welcome)
  • Mention the details of your academic studies, any previous work, internships
  • Any relevant skills that will help you to achieve the goal (programming languages, frameworks)?
  • Any previous open-source projects (or even previous GSoC) you have contributed to?
  • Do you plan to have any other commitments during SoC that may affect you work? Any vacations/holidays planned?
  • Contact details

Good luck!

Clone this wiki locally