Contributing back to the tools we use

Over the last couple of weeks I was able to make a (very minor) contribution to the TensorFlow project and since it was a very positive experience, I figured I’d encourage everyone contribute back to the tools we use. I know there’s a lot of impostor syndrome out here, where we don’t always feel like we’re up to the task, or we’re afraid our attempts to help will be judged very harshly (which sadly is something that still happens all too often in open-source :disappointed:).

My contribution is nothing big, just 3 lines of code, but I figured I’d try to get it merged upstream anyway, since it has the net effect of knocking 1 or 2MB off the binary size of TensorFlow on Android. (This allows TensorFlow to fit < 10MB on ARM devices, which might be useful in for deep learning applications in emerging markets or in embedded devices, where bandwidth/storage/memory can be very limited.)

I wanted to share this because my experience trying to get this contribution merged was amazingly pleasant. The TensorFlow team was very responsive by email, and eager to engage on the topic and answer my questions. The process was very painless. They have a well-organized GitHub project with clear contribution guidelines, an automated Contributor License Agreement process (you basically sign away your rights to the code you contribute so others can use it as part of the open-source project), and their automated testing made it easy to figure out if my changes were breaking anything.

Anyway, I’d highly encourage everyone contribute their local enhancements back to the projects they use. If you’d like to help but don’t have anything to contribute yet, don’t hesitate to follow project leaders on Twitter — they’ll sometime point out issues or ask for help with some simple/specific tasks such as testing, API changes, documentation, etc.


Well said @timanglade . I remember when @rachel contributed her first code to an open source project a few years ago. As a math PhD and ex-quant, it wasn’t something she’d done before, but we found a bug in a python project, and rather than just fixing it on her copy, I suggested she create a pull request (PR) on the github project.

Within a day, it had been merged, which meant both that life was now easier for her (she didn’t have to maintain her fix as the project got updated in the future), and helped everyone else who used that functionality. It feels great, and takes just a few minutes. And in the future, you’ll be even faster, since you know how it works…

Thanks for sharing Tim :slight_smile: