Steering Council nomination: Nick Coghlan

[Since external folks can be nominated by a core developer, I’m following Brett’s lead in posting this to the Users category rather than the Committers one. That way we’ll be able to keep all the topics in the same category, while also allowing any external candidates to answer questions in their nomination threads]

Nominated by …

… myself. (While I stated during the governance discussions that I didn’t think it was viable for a volunteer to serve as a standalone BDFL, I think the likely workload associated with the 5-person Steering Council model is going to be far more sustainable)

Online presence

From the perspective of the Council’s mandate

  • Maintain the quality and stability of the Python language and CPython interpreter,
    • Core developer for more than a decade (received commit privileges in October 2005)
  • Make contributing as accessible, inclusive, and sustainable as possible,
    • September 2011 PSF Community Service Award included recognition of my contributions to the establishment of the Python Core Mentorship program
    • Various presentations and articles attempting to demystify the core development process
    • Set clear boundaries on what’s reasonable to expect of volunteers, and what expectations can only be met by paid contributors
  • Formalize and maintain the relationship between the core team and the PSF,
    • Served on the Board of Directors for the Python Software Foundation from 2014 to 2016
    • Founding (and current) member of the PSF’s Packaging Working Group, which advises the PSF on funding decisions related the Python packaging ecosystem (including the successful MOSS grant that allowed for completion of the migration from the legacy service at to the updated
  • Establish appropriate decision-making processes for PEPs,
    • Author or co-author of 15 Final or Active PEPs
    • BDFL-Delegate for 27 PEPs
    • Became a co-author of PEP 1 in May 2012
    • Proposed a number of accepted amendments to the PEP process since then
  • Seek consensus among contributors and the core team before acting in a formal capacity,
    • I served in a similar role for a number of years as the standing BDFL-Delegate for Python packaging interoperability PEPs
  • Act as a “court of final appeal” for decisions where all other methods have failed.
    • In addition to getting to see Guido handle this as BDFL, this kind of decision making in the face of incomplete information is a routine part of my day job as a software architect

Selected Qualifications

Following the example Brett Cannon set in his nomination thread, I’m covering both the project leadership role that the steering council will definitely have based on its mandate and the language design role that some have suggested the council may take on.

Project leadership

  • Core developer for well over 10 years now (got commit privileges in October 2005, first contributed in 2004, working on both the -m switch and the decimal module for Python 2.4)
  • Served on the Board of Directors for the Python Software Foundation
  • PSF Fellow since the creation of the membership level
  • Served as the standing BDFL-Delegate for Python packaging interoperability PEPs for a number of years
  • Served as BDFL-Delegate and/or implementation reviewer for several other PEPs
  • Wrote (and maintained for a number of years) an extensive Python 3 Q&A
  • Founded the PyCon Australia Education Seminar in 2015, and co-organised it in each of the subsequent years, with a significant proportion of the presenters and attendees being professional educators

Language & developer experience design

  • Author or co-author of 15 Final or Active PEPs
  • Most prolific author of Withdrawn or Deferred PEPs (just because it’s my idea doesn’t mean it’s a good idea, and the virtue of the PEP review process is that it helps reveal potential problems regardless of who the PEP author is)
  • Helped persuade Guido to split the complex and brainbending blocks proposal in PEP 340 into multiple simpler proposals (including PEP 343’s now ubiquitous context management protocol and with statement)
  • maintainer or co-maintainer of multiple standard library modules (e.g. contextlib, runpy)
  • Successfully advocated for the inclusion of pip as a default user level package manager
  • Resolved assorted text encoding handling issues as part of the Python 3 migration

External Factors

  • I work as a software architect for a hardware company (Tritium) that makes electric vehicle DC fastchargers, so my employer is a Python user, rather than a Python redistributor or software development platform provider
  • The primary Python use cases I routinely encounter through my day job are Linux system management, software builds & deployment, hardware integration testing, and web development
  • I’m nominating for Steering Council membership as a personal activity on my own time, and would hence be looking to define our governance procedures in such a way that it’s feasible for a volunteer to sustain that (both for me personally, and for other potential community volunteers in the future)

Edit: question moved to Question for Steering Council candidates