Need help with OM-Welcome-Package?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

198 Stars 20 Forks Apache License 2.0 353 Commits 10 Opened issues


Everything you need to know to contribute to OpenMined!

Services available


Need anything else?

Contributors list

OpenMined Logo

OpenMined Welcome Package

Welcome to OpenMined! The goal of this Welcome Package is to help you:

get to know who we are and what we do,
find the best place for you to fit into the community,
and get started on your path to contributing in your unique way!

We're happy you're here. :)

Table of Contents

Who We Are

Before getting started, it's important to understand OpenMined's mission:
To lower the barrier to entry to privacy preserving technology.

This means that we want to help you by both making your products and research better, and protecting you along the way.

Check out OpenMined's 2020 Roadmap for more about how we plan to make this happen!

We also want to make sure that OpenMined is a welcoming community to anyone who wants to join. To that end, check out our code of conduct for information on how to make sure we continue to be such.


OpenMined's teams are split into 3 categories: development, community, and research, so there is room for everyone to contribute!

OM Teams Diagram

For more detailed information on each of our teams, click the links below:

Projects And Repositories

OpenMined's teams work together on many different projects and repositories. Here is a short overview of our main development projects and what they do:

  • PySyft: A library for encrypted, privacy preserving machine learning (in Python)
  • PyGrid: A Peer-to-peer Platform for Secure, Privacy-preserving, Decentralized Data Science (in Python)
  • PyDP: A python wrapper for (in C++ and Python)
  • SyferText: A privacy preserving NLP framework (in Python)
  • syft.js: The official Syft worker for Web and Node (in Javascript)
  • And many more! Check out all of our projects here.

Check out these charts for more detailed information about how all of these projects work together:

To see which project(s) each team actually works on: - click here for Development Projects, - click here for Community Projects, - and click here for Research Projects.

To get started working on these projects, check out our tutorials below.

Getting Started

Step 1: Join Slack

The first thing you should do is join our Slack community. This is the best place to ask questions, meet other team members, and stay up to date on what's going on in the community.

Once you have joined the Slack organization, there are many channels that you can join for help and community, including:

  • Location Based Channels: Search for the closest major city or your country name to chat with others from your area!
  • Topic Based Channels: Start your search with topic, for instance, *#topicbeginnerquestions* or *#topicjobsinai*
  • Community Channels: Start your search with community, for instance, *#communityudacitycourse* or *#communitywomen-of-om*
  • Education Channels: Start your search with edu, for instance, *#edulearners* for info from the Learning Team, or #edu_mentorship for info from the Mentorship Team.
  • Library Channels: For questions/communication about specific OpenMined libraries. Start your search with lib, for instance, *#libpysyft, #libpygrid, #libpydp, #libsyftjs, #lib_syfertext,* etc.

Step 2: Apply for Mentorship

Next, you should join our mentorship program. OpenMined Mentors are here to help you get started, and to walk you through the steps to becoming an active member of OpenMined.

To get an idea of what you can expect on joining the mentorship program, check out our Mentorship Program infographic.

This is the program that your mentor will walk you through, from choosing a goal team to join, submitting your first pull request, working your way through our learning materials, applying for a team, to what comes after joining a team.

If you're interested in this type of guidance, Click Here to Receive Mentorship!

Step 3: Learning Initiatives

The OpenMined Learning Team is here to help you get started and work through the materials. To join our community of learners (and any of our cohorts, bootcamps, or study/discussion groups), join our Slack team and join the channel #edulearners_!

For more help from the community as you work through these materials, check out our other Slack channels above. You can ask for help in the #topicbeginnerquestions channel, or the specific channel for the library you're working on (beginning with #lib), and join the _**#gettingstarted**_ channel for more helpful resources!


Step 4: Introductory Videos

A good way to get an overview of the technology OpenMined uses, is to watch one of Andrew Trask's presentations. Here are two examples, one shorter and one longer, that will give you a good starting point:

Step 5: Udacity Course

If you're interested in taking a deep dive into these technologies, we have also released a free Udacity course! Check out our Udacity course here.

Step 6: Tutorials

Once you have an understanding of the technologies used, our tutorials are the best places you can get started. Here are links to our tutorials, once you're ready to jump in:

For more information about what each of these libraries does, check out the Projects and Repositories section above.

Step 7: Good First Issues

Once you have a bit of an idea of how these libraries work, our Good First Issues are a great place to start contributing:

Step 8: Join A Team

The learning materials above prepare you to join a team and become a contributing member of OpenMined! Once you have gotten to know our code base a bit, check out the links below for information on how to join the team you're most interested in!

Helpful Links

For more resources to help you learn about the specific technologies used in our projects, check out our collection of Educational Tools here.

We also understand that many people within our community are not machine learning engineers professionally, so we have put together a list of Beginner Friendly OpenMined Terminology that one might hear when working inside this community. Check that out here, and feel free to create issues for any terms you would like to see added to this list!

Social Media Links

If you're interested in seeing what's going on in the world of OpenMined feel free to follow on the OpenMined Social Media channels!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.