Skip to article frontmatterSkip to article content

Why I’m running for the Jupyter Executive Council

2i2c
Project Jupyter

This year, I decided to nominate myself for the Jupyter Executive Council. This is a brief post explaining my rationale for doing so, the kind of service I’d hope to provide the project, and where I imagine the project moving.

What is the Jupyter Executive Council?

The Jupyter Executive Council is the highest governing body within the Jupyter ecosystem. It was created two years ago, and is the group that is ultimately responsible for the health of Jupyter as a whole. For example, last year the Executive Council oversaw the effort to move Jupyter into the Linux Foundation, and to set up its own Jupyter Foundation.

Why serve on the Executive Council now?

In the past, I’ve decided not to run for the Executive Council (JEC). This is different, and here are a few reasons why:

I have more bandwidth because my kids are older. The creation of the Executive Council started with the birth of my second daughter, and the last two years were, frankly, a total whirlwind of chaos. Trying to balance a demanding job with two very young kids is hard, and frankly I still struggle to find a balance (that’s a whole other blog post). However I am in a better place now than I was then. I know this isn’t strictly related to Jupyter, but I think it’s important to be honest with ourselves about our capacity, and ensure we still have time to dedicate to the things that really matter (which to me, is my family).

The Jupyter Foundation is an opportunity to drive tangible resources to the project. I applaud all of the work that it took the JEC to transition Jupyter under the Linux Foundation, and to set up the Jupyter Foundation. The existence of this group has the ability to both generate actual financial resources for the project - something that it has been lacking for years - as well as provide a way for Jupyter’s corporate and organizational stakeholders to provide input and direction in a more structured way. This is both a big opportunity and really complex to do well, and I’d like to do what I can to help this group take its first steps productively. If we can grow the number of stakeholders in the Jupyter Foundation, and ensure that it aligns with Jupyter’s overall mission and values, it could be really impactful.

Jupyter now has a new home, and has more capacity to think about its own priorities and structure. Another side effect of moving to the Linux Foundation (LF) is that, during the move, Jupyter had far less bandwidth at an executive level to think about anything else. This was a necessary spend of effort to get it done, but it means there are still a lot of things to improve throughout the Jupyter community. Whether you agree with the decision to move to LF or not, it’s a step that has been made, and a kind of new beginning. I think there’s opportunity to leverage the skills and resources of the LF to have more impact than we’ve been able to have before in improving the project, and I hope the JEC can guide the group productively. If the last year was spent thinking about the external relationship between Jupyter and LF, the next year should be spent thinking about the internal dynamics of the project, and how to leverage LF to accomplish our goals.

The JEC needs more representation from the public sector. With Fernando Perez ending his term on the JEC, there’s a need for more representation from the “public sector” (e.g., non-profits, university research, government, etc). Given that 2i2c explicitly represents these stakeholders in its own mission and service model, I think I’m in a good position to represent their interests at a strategic level within Jupyter as well. It’s critical for Jupyter to have representation from many kinds of organizations, individuals, and parts of the world, and I hope that I can play a part in that diversity at an executive level.

This is part of 2i2c’s mission. Finally, 2i2c’s mission is to help communities create and share knowledge broadly, and a key part of that is supporting the open communities that underlie the infrastructure we provide. As the Executive Director of the organization, I often struggle to find the right “kind” of contributions to make in upstream projects like Jupyter - I’m too senior to be doing a lot of code contributions (it’s literally not my job), so where should I put my time? Serving on a strategic body like the JEC feels like a good match between my role in 2i2c, and the kind of support that’s needed to serve on the JEC.

What are my hopes for the JEC and Jupyter?

Here are a few things that I’d hope to improve within the Jupyter ecosystem, leveraging my role on the JEC to do so.

(re)center Jupyter’s mission, goals, and strategy. As Jupyter has grown in its ecosystem of stakeholders, sub-projects, and developers, I think it has understandably lost a collective definition of Jupyter’s driving purpose and goals. Doing this with such a large and distributed community is fundamentally difficult, but I think it’s going to be key in order to have a framework for deciding things like where to spend money from the foundation, what kinds of initiatives to support with limited resources, etc.

(re)build a relationship with a fiscal sponsor with the goal of focusing Jupyter members on mission-critical work. Something we’ve discussed a lot within 2i2c is the idea of matching someone’s work to their “Zone of Genius” - that is, ensuring that people spend their time working on things they are uniquely positioned to accomplish well. Fiscal sponsors should be a way to offload as much work as possible that doesn’t require the unique skills of an open source community member or leader. Historically I’ve seen that this isn’t true within Jupyter - many efforts (like organizing JupyterCon) have required an enormous amount of work from Jupyter team members that wasn’t within their zone of genius. I’m keen to explore how the Linux Foundation can help to improve this ratio, and how Jupyter can leverage LF’s resources (and those of the Jupyter Foundation) to relieve some of the burden that the community has carried historically.

Drive more resources to Jupyter services. A key part of Jupyter’s success has been the creation of a few services that serve a strategic role in the discovery and adoption of Jupyter’s tools. For example, nbviewer was originally the only way you could easily browse notebooks on the web and normalized the “idea” of a notebook as a common artifact to share. mybinder.org was originally the only way you could share reproducible environments using entirely open infrastructure (and in many ways, it still is), and is a key way that users can leverage the full Jupyter stack into a coherent service. Both of these services have been incredibly impactful, and are also struggling to stay afloat because of limited resources. For example, mybinder.org has slowly lost sources of cloud credits over time, and neither it nor nbviewer have any dedicated resources to operate and maintain, much less improve, their services. I’d like to explore how the JEC and the Jupyter Foundation can breathe some life into these projects in a way that is sustainable and strategic.

Encourage more cross-Jupyter coordination and thinking. The biggest challenge that Jupyter has faced is also its greatest strength: it is a large and distributed project, both at a technical, social, economic, and geographic level. As Jupyter has grown, each sub-project has tended to develop as insular, independent communities (with a lot of variability). To a degree, this is good and expected - a project like Jupyter needs to give autonomy to sub-projects to lead in their own way. However, I also think there’s a lot of missed potential at facilitating coordination between the projects, and agreeing on high-level principles and goals for Jupyter as a whole so that we can have the most impact across the ecosystem. I’d like to explore how the JEC can encourage this kind of cross-project communication to happen. For example, how can we improve and encourage the use of Real-Time Collaboration in JupyterHub? What if nbviewer used the new MyST Document Engine for rendering notebooks? What if we improved the JupyterLab UX for publishing analyses for Binder, or for sharing with nbgitpuller?

Encourage more transparency and sharing from the JEC in general. Finally, I’d like to use my position on the Executive Council to share what the experience is like and provide a broader community view into the project’s dynamics and direction. I find Jupyter to be a fascinating project from a socio-technical perspective, but also often impenetrable to outsiders. I’d hope that we can improve both our communication with external stakeholders and the project’s documentation to help others navigate the project and keep up with it.

Biggest risks

Finally, I’d be remiss if I didn’t mention that there are risks associated with serving in this role as well.

Primarily, I worry about my own bandwidth and mental health associated with being in a role like this. As I noted - having two young kids at home means that the chaos can pop up at any moment, and running a small, ambitious organization that still hasn’t nailed down its sustainability model is a constant exercise in stress and anxiety. However, I am hopeful that being thoughtful about my own capacity and being realistic about what I can give to Jupyter will allow me to be strategic about where I spend my time to ensure I maximize my impact.

Secondarily, I worry about feeling inner conflict between my hat as the Executive Director of a non-profit that runs and develops interactive computing infrastructure for communities, and my hat on the Executive Council of Jupyter. I think that the goals of 2i2c and Jupyter are largely aligned (2i2c was designed from the beginning to support projects like Jupyter), but I can see how this role will lead to conflicts of interest as well. For example:

  • What happens if Jupyter is deciding how to disburse funds to get work done that I think 2i2c is well-positioned to do?
  • What if there’s a grant that Jupyter wants to apply for, and that I also think 2i2c should apply for?
  • What if other stakeholders in the Jupyter Foundation want something to happen that I think is in the interests of Jupyter, but not of the research and education community?

I think it’s important to be honest about the different hats we wear when we work in open source, because your home organization’s goals are always different from those of the upstream community (they might be aligned, but they are still different). I’ll try to be as mindful of this tension as I can, and resolve it in a transparent way.

Thanks for reading, reach out to me if you have any questions

This has been just a quick take on my thinking as I’ve decided to run for this role within Jupyter. I think the project has a lot to improve, and also that there is now more leverage to create change than I’ve seen in the last several years. I’d be excited to serve in this role[1], and to do what I can to help guide Jupyter in a direction where it can have impact, live up to its values, and thrive as a collective community and as individual contributors. If you have any questions for me, feel free to send an e-mail at <my-github-handle> at 2i2c.org.

Footnotes
  1. And just to be clear, I’ve seen the list of others running for the JEC this time around, and I think they’re all excellent candidates. I’ll be happy with the outcome regardless of who is elected.