I used Django for an independent study project during my senior year of college to develop a web app. Then one of my classes required students to do an ethnographic study of an online community. Looking for a way to add a technical aspect to the course, I chose to study the Django community. I was fairly new to Django and Python but there were a lot of small documentation tickets that I contributed to as part of my research for the course. I’ve been hooked on contributing since then.
After about eight months of submitting documentation patches, I got an invitation to join the Django team as a documentation committer. I accepted the invite and continued contributing exclusively to the documentation for several years. In the summer of 2013, I wanted to get more involved in Django development, so I started reviewing and merging pull requests in areas besides documentation.
The idea of a Django Fellowship, where the Django Software Foundation would pay someone to shepherd Django’s development, had been floating around for some time. The work I did as a volunteer showed the idea’s merit enough to inspire the DSF board to start a three-month pilot program.
The pilot started in October 2014 and the program was renewed on a “fundraising-permitting” basis shortly thereafter. I’ve full-time as a fellow for a little over two years now.
You can read my retrospective of 2016 to learn more about what I’ve done recently, including:
The Django community is a group of smart and caring people. I’m blessed to work with them (everyone else, a volunteer). The last three years, an annual trip to Amsterdam for the Django: Under the Hood conference has been a social highlight that recharges my enthusiasm for the project.
“The Django community is a group of smart and caring people. I’m blessed to work with them.”
Patch reviewers. Everyone loves to write code but reviewing code is less glamorous. I think many contributors feel that code reviews from anyone not on the Django team don’t make a difference but this is not true. I created a patch review checklist so that reviewers can follow the same process that I use. Anyone is welcome to review a patch and mark the ticket as “Ready for checkin” if it looks good to them.
One member of the Django team, Loïc Bistuer, gave up on contributing to Django after several non-trivial pull requests he sent went unreviewed. Fortunately, that was around the time when I started reviewing patches. He was extremely responsive to my review comments and we merged his initial contributions and later, many more patches followed. This year, he gave a talk about his work on validation at Django: Under the Hood. I was proud to see him on stage.
Don’t do it alone. Your interests may change or life may get in the way and you’ll risk burnout if you don’t form a team to shepherd your project when you’re unavailable. Moving a project’s ownership from “me” to “we” might be a step outside your comfort zone, but in the long run, most successful projects navigate this transition, as Django did.
“Moving a project’s ownership from ‘me’ to ‘we’ might be a step outside your comfort zone, but in the long run, most successful projects navigate this transition.”
Start collaborating with your team on GitHub
Advanced collaboration for
individuals and organizations
and flexible deployment
Want to use GitHub on your own? Check out our plans for individuals