What is a Python Core Developer?

I gave this talk at PyCon US 2018.

I didn’t think this talk would have any audience outside of PyCon US, so I didn’t submit it anywhere else. After I was finished with the talk, I realized that this it was too emotionally difficult to give a second time.


I didn’t seek help with the writing of this proposal. I think it was one of the reasons why I was feeling unsure about this giving this talk, even after it was accepted at PyCon.


The following was the proposal I submitted to PyCon US 2018. Yes, I deviated from the outline in the actual talk. There was an important topic that I had left out from the proposal. I didn’t actually want to touch upon it myself, but days before the conference, I decided I had to talk about it.


45 minutes slot


How do you become a Python core developer? How can I become one? What is it like to be a Python core developer? These are the questions I often receive ever since I became a Python core developer a year ago. Contributing to Python is a long journey that does not end when one earns the commit privilege. There are responsibilities to bear and expectations to live up to. In the past year, I’ve been learning more about what it really means to be a Python core developer. Let me share all of that with you.


This talk is for those wanting to contribute to Python, or existing contributors to Python, so they’ll gain insights from the maintainer’s perspective. Other members from wider Python community will learn the challenges of maintaining an open source project with 7 million users.


Who am I (3 minutes)

  • Parent
  • Software Engineer
  • Conference organizer
  • PyLadies organizer
  • Open source contributor
  • Python core developer
  • (really busy)

What is a Python Core Developer (2 minute)

  • Technically, those with commit right to Python
  • Since February 2017: only 30 active Python Core devs, handling 4000+ pull requests from almost 600 contributors.

What do you do once you have commit right? (3 minutes)

  • As little, or as as much as you can
  • Ideally, continue contributing to Python

Ways to contribute to Python, before the commit right (5 minutes)

  • Make pull requests (docs, code, tests)
  • Review code (but you can’t merge)
  • Report bugs
  • Propose ideas
  • Give talk or write blog posts about Python
  • Be open, considerate, and respectful

Ways to contribute to Python, after the commit right (5 minutes)

  • All of the above, plus
  • Help other core devs and contributors to contribute
  • Approve pull requests and merge them
  • Make decisions (accepting/rejecting ideas)
  • Owning decisions
  • Follow and respond to mailing lists
  • Be open, considerate, and respectful even when the person you’re dealing with is not.

What I’ve been doing (5 minutes)

  • Made 450+ pull requests to Python (not just CPython, but also to the bots, and Dev Guide)
  • 200+ more to other open source projects
  • Participate in several mailing lists: core-mentorship, core-workflow, occasionally python-dev
  • Reviewed 600+ pull requests, focusing on pull requests from first time contributors.

What other core devs do:

  • quite similar to the above, in addition to contributing to Python and CPython, they’re also active in the community and maintainers of other open source projects.

Challenges (3):

  • Doing all of the above for free (and justifying doing so)
  • Not everyone is open, considerate, respectful
  • With 7 millions users, not everyone will agree or happy with decision made

The Big Questions

How did I become a Python core developer? (2 minutes)

  • I can’t answer this. I just feel really lucky.
  • I received a lot of support and mentorship from existing core devs.
  • The actual question is really, why did the core devs before me granted me the commit access. Only my mentor and other core devs can answer that

What it’s like to be a Python core developer? (1 minute)

  • really busy

How can another person be a Python core developer? (3 minutes)

  • perhaps my path is not one you should follow
  • earn the trust from existing core devs
  • earn the trust from the community

After thoughts ( 3):

  • Becoming a core developer is not the goal. It is not the end of the journey. It is the beginning.
  • The real goal is to earn the trust from the community. When they trust you, they’ll stick around and continue using Python.
  • Perpetual goal: how to make Python - the code and the community- better