Steering Council Nomination: Peter Wang

election

(Steve Dower) #1

Peter attempted to make his own post yesterday but apparently it has been locked in a spam filter. So consider this notice that @tiran and I have both independently nominated him, and his introduction will follow.


Twitter thread re: Big Picture
(Christian Heimes) #2

@brettcannon @ambv Could you please check the spam folder for Peter’s message?


(Peter Wang) #3

(In the interest of expediency, I will just post a reply here…)

I am humbled and honored to be nominated to serve on the Steering Council.

Since I am not a core developer, and there are many voters whom I haven’t worked closely with, I have written up a somewhat lengthier nomination than most other candidates, so people can better understand how I would conduct myself as a member of the Council.

Background

  • Co-Founder & CTO of Anaconda Inc. (formerly Continuum Analytics)
  • Conceived and guided development of the Anaconda distribution, conda package manager, and Anaconda.org. We we now serve ~3 million users and 1 PB of traffic monthly, and ~1 billion pkg downloads annually (excluding internal corporate mirrors)
  • Founder and initial organizer of PyData community & conferences, which have now grown to 120+ meetups all over the world, with over 100,000 members. The 9 conferences last year drew over 4,000 attendees.
  • Have significantly consulted on Python usage at almost every major US investment bank; prominent hedge funds; US military & intelligence agencies; the FBI; DARPA; NASA; oil & gas companies; insurance companies; SEC, FINRA, Freddie Mac
  • Have discussed technical Python product integration or given internal presentations at numerous firms including Microsoft, IBM, SAP, Amazon, Google, Redhat, Cloudera, Samsung, Databricks, Tesla, Walmart, Disney, Target, USAA, and countless startups
  • Delivered hands-on Python training, at all levels, to many hundreds of people.
  • Austin Python organizer for 10+ yrs; have been to nearly every PyCon since 2005

Technical Expertise

  • Python user for 20 years (>= 1.5.2)
  • Specialized knowledge in Python for numerical, scientific, data-intensive applications
  • Deep knowledge and memory of Python’s colorful history with “packaging”
  • Experience with performance optimization, distributed computing, some web & browser internals. Not as familiar with modern asyncio, but did unnatural things with greenlets and coroutines before the yield statement was added.
  • Familiar with low-level system details across platforms and hardware architectures, since conda supports multiple CPU, GPU, OSes, compilers, and language runtimes
  • Deep domain knowledge of computer graphics, high performance simulation, dataflow architectures, advanced OOP patterns, metaprogramming, and some CPython interpreter internal details.
  • UI frameworks for rich client applications, and design patterns for GUIs
  • Architectures & patterns of modern business data processing, including machine learning, deep learning, business intelligence, and on-prem & cloud integrations

Vision for Steering Council

  • Use power lightly, defaulting to delegating power and facilitating robust, trustful collaboration in the core team
  • Advise & serve the PSF, the core team, and the community
  • Avoid becoming a platform for agendas. Defend the deep values & principles that have made our language & community great.

More Detailed Background

I have been in love with Python for almost 20 years now, and I have been using it professionally for 15. Almost all of my time has been spent in the scientific & numerical Python community, although I am fairly well-versed in doing traditional software development (with Python or with other languages).

In the mid-2000s, I became an active participant in the Scipy/NumPy ecosystem, helping to organize conferences as well as maintaining several open source projects at Enthought. Seven years ago, I co-founded Anaconda, Inc. (then Continuum Analytics) with Travis Oliphant, in order to push the use of Python as a data analysis language in the broader business world, outside of science & engineering. We created NumFOCUS, a non-profit that houses many important Python data analysis projects, and I created the term “PyData” to coalesce a global community and build a movement around the use of Python for data science.

In March of 2012, I came up with the idea to create the Anaconda distribution & the conda package manager, and since then I have been involved to varying degrees in its development. Around the same time, I also started the Bokeh and Datashader visualization libraries, and since then I have contributed to or helped steer our company’s contributions to Numba, Dask, Spyder, and Jupyter.

I am a frequent speaker at Python conferences, including keynotes at PyData, EuroScipy, PyCon JP, and PyCon India. I also evangelize Python for data science and AI at industry conferences like Strata, Gartner, ODSC, and QCon.

My Views on the Steering Council’s mandates

Maintain the quality and stability of the Python language and CPython interpreter

I believe that at this point, stability, performance, and quality are the largest risk factors for the success of our language. I advocate creating tools that give us better awareness of broader use cases, so we can assess the impact of proposed changes. I fundamentally believe that the survival of Python depends on our ability to scale the product management capacity of the core team.

I do not have any particular technical agendas, other than a great sensitivity to the fact that Python’s success can largely be attributed to its unique and consistent focus on “pleasant to use” and “readability counts”. Over the next decade, I believe that Python has an unrivaled potential to become the de facto data analysis language for a hundred million people. Thus, I will always bear in mind the user population of neophytes, students, casual programmers, and I will generally avoid reasoning from “envy” of other languages. We should unapologetically continue to excel in the areas that we’re good at. Even as we navigate complex technical trade-offs, our north star should be that the language is a joy to use.

At the same time, I am deeply aware of the technical challenges we face from competing languages such as Rust, Go, Javascript, Swift, and Julia. As a language community, we will need to find productive ways to strategize about mindshare, interop, and marketing. I think we would greatly benefit from having several healthy interpreters besides CPython, including Jython, Pypy, and hopefully even one targeting WASM.

Make contributing as accessible, inclusive, and sustainable as possible

I think that open source projects are best viewed as experiments in human ecology. Seemingly “soft” concerns like values, communications, and trust are absolutely paramount. Based on my experience as a technical manager, startup founder, and community leader, I think that defending this flame is one of the chief responsibilities of the Steering Council.

I think we need to deliberately mentor new core developers, and foster a diversity of perspectives within the core development team. I am encouraged by how much the global Python community has embraced the spirit of inclusiveness, but there is still more work to be done.

On the issue of sustainability, I personally believe that our community critically needs to create a formal vehicle for engaging with the thousands of corporations that depend on Python, but do not contribute back. Regardless of whether I am elected to the Steering Council, I will be advocating for the formation of some type of “Python commercial consortium” that serves under the PSF and engages our commercial users for feedback, developer time, and hard dollars.

Formalize and maintain the relationship between the core team and the PSF

Although I have not directly worked with the PSF in many years, I believe my hands-on experience with both the Scipy and PyData communities has given me a broad background in many of the community-oriented issues that can arise, from matters of operational finance to questions of governance and strategic growth.

Establish appropriate decision-making processes for PEPs;
Seek consensus among contributors and the core team before acting in a formal capacity

For these two, I would actively and strongly defer to the core devs. I have watched the Python community decision-making process for almost two decades as a lurker, and deeply respect the weight of the gavel which I would be 20% responsible for.

However, I would apply my decades of software team dev management and facilitation experience to help people get “unstuck” or find ways to novel compromise solutions.

Act as a “court of final appeal” for decisions where all other methods have failed

As a business founder and operator, I am experienced in making tough decisions when pragmatism calls for it. It seems to me that many of the most contentious, irreversible decisions tend to be around language features. Thus, I will reiterate that my general outlook towards language features at this point is fairly conservative. In general, any given change runs a much greater risk of ruining things than improving things. (I do see the justification for a much greater range of improvements on the various interpreter implementations, tooling, etc.)

In Summary

Whether we like it or not, this inaugural Steering Council will likely set precedent for Python governance for many years. Thus, it must be very intentional in crafting a positive and productive interaction dynamic with the core developers, the PSF, and the broader community.

To me, the most important line in the Steering Council’s charter is that it “should look for ways to use [its] powers as little as possible" . The Steering Council must avoid becoming a venue to drive a technical or social agenda, but rather it should help the community self-moderate and come to a consensus. Additionally, when it does need to correct or act as a circuit-breaker, it should do so with a light touch, and always consider that its decisions may need to be revisited or course-corrected down the road.

I fundamentally see the Steering Council’s role as one of advisement and facilitation. It should aid the core devs and the PSF rather than try to rule over them, and I would conduct myself in accord with this principle.

References