Using and Contributing to Open Source at Coursera

8 September 2014

At Coursera, we stand on the shoulders of many great open source projects like Scala, Django, Nginx, Ubuntu and countless other libraries and tools.

This allows us to focus on what we want to do best: build the best online education experience for learners, teachers and universities.

How We Give Back Now

Open source is a great philosophy that many of our engineers care deeply about. As a result, many of us have contributed to many popular projects that we use day to day, even while on the job.

With that said, many of us want to contribute even more, especially when we build tools that we think others might use in their own software projects.

Our Current Considerations

However, open sourcing some of the tools we build at Coursera isn’t always a clear choice for us. We are a young company that moves fast. We want to focus on building a great product for our users and releasing and maintaining an open-source project could be a distraction for us.

Aspects of open source we must consider:

  • Do we promise to maintain projects that are open for others to use?
  • Do we deliver on feature requests?
  • If we stop using a project, do we find another maintainer and transfer the project over?
  • What license do we release projects under?
  • Do we actively review pull requests?

Some of these questions seem easy to answer at first, but in the context of building out a really exciting and sustainable company, they can be showstoppers to releasing some great projects.

We have a lot to learn as we explore this path to answer these questions, but we will apply the same philosophy we use to build our products: optimize for iteration. We will try, make mistakes, learn, and try again.

Our Next Steps

To that end, we will be slowly open sourcing some of our projects and taking baby steps towards addressing some of the harder questions. For now, we are trying out a model where we will:

  • Release open source projects on github, but encourage forks for those who want to add new functionality that we don’t need or aren’t prepared to provide maintenance for
  • Follow in the footsteps of other larger companies and release our projects under the Apache 2.0 License
  • Update/maintain the projects as we update them internally to meet our needs

We’ve got some great projects out there already, from the funkily named triple-latte, yudi and abcdefghiJson to the straight-shooting bootstrap3-stylus and fontawesome4-stylus.

As we evolve our thoughts on how we can continue to participate in the open source community, we’ll document them here on We plan to also go into detail on some of the projects we are open sourcing to help spread the word of the great work we do here at Coursera.

If you want to help shape our open source use and efforts, all while delivering access to world-class education, consider joining Coursera today!

Product Engineering
Want to work with us? Join Us!