What We Owe to Each Other

Rate this content
Bookmark

Open source has won, and it's the center of gravity for our community. Whether we're contributors to open source projects, commercial product engineers, companies, developer advocates, or something else, we're all a part of this community. And we owe it to each other, and to ourselves, to leave the community better than we found it.


But how do we do that? What responsibilities do companies have to the community? Or developer advocates? Or OSS contributors? How are we failing those responsibilities, and how can we do better?


In short, what do we owe to each other? Let's find out.

This talk has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

Brian Hughes has contributed to the open source community in various roles including starting his own projects, being actively involved in the Node.js project, working in developer relations, and presenting at numerous conferences.

Brian Hughes views the relationship between companies and the open source community as symbiotic. He emphasizes that companies benefit significantly from open source and should support these projects with time and money to foster mutual growth and improvement.

Companies can contribute to open source projects by providing financial support, sponsoring projects, becoming members of relevant foundations, and allowing developers to spend a portion of their work time contributing to open source projects used by the company.

Developer relations, or DevRel, is a field that connects companies and the open source community. DevRel professionals engage in activities like attending conferences, giving talks, and running workshops to promote products and gather community feedback, facilitating a two-way communication between the community and companies.

Open source project maintainers are crucial for the development and sustainability of projects. Their responsibilities include ensuring the project is well-documented, inclusive, and adaptable to changes. They also play a key role in welcoming new contributors and managing the project’s growth.

Individuals can contribute by engaging respectfully with projects, such as reporting bugs kindly and constructively, and by fostering inclusivity. Developers in DevRel roles should strive for transparency, avoid exploiting relationships, and ensure their activities benefit both the company and the community.

DevRel professionals may face ethical challenges such as balancing company interests with community benefits, resisting pressure to exploit personal relationships for business gains, and ensuring they convey community feedback effectively to their companies.

Documentation is critically important in open source projects. It ensures that the code is usable and accessible to others, facilitating easier adoption and contribution, which are essential for the project’s success and longevity.

Bryan Hughes
Bryan Hughes
24 min
05 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
The Talk discusses building and supporting the JavaScript community, the role of companies in open source, the importance of time and collaboration, reporting bugs with kindness, the challenges of developer relations, the role of maintainers and documentation, the importance of inclusivity, embracing change in project development, supporting ourselves and the community, and finding hope for a better community.
Available in Español: Lo que le debemos a los demás

1. Building a Thriving JavaScript Community

Short description:

Hi, JS Nation. I'm Brian Hughes, a staff front end engineer at Patreon. I've been part of the open source community for a decade, playing various roles and contributing to projects like Node.js. In this talk, I'll discuss how we can grow and support our community and what it means to be an upstanding citizen.

Hi, JS Nation. My name is Brian Hughes and I'm a staff front end engineer at Patreon. I've been a part of the open source community for about a decade now, which is kind of wild to think about. You know, I've seen this community grow so much during that time.

And you know, I've been fortunate that I've been able to play a variety of roles within the community. You know, I've started my own smaller open source projects. I used to be pretty involved in the Node.js project. I've also been working as developer relations in the community. I presented at lots of conferences, and, you know, I've used open source in my day-to-day work a lot.

And like over this time, I've thought a lot about like what it takes to build a good community and how we can help this community thrive because we really are independent at the end of the day. So I want to spend this talk talking about exactly that. How do we help grow this community? How do we help each other out? Basically, you know, what do we owe to each other?

So this talk is inspired by this book of the same title by T. M. Scanlon. Scanlon's a moral philosophy professor, wrote this book about 25 years ago. I don't expect many of you have actually read this book. Admittedly, I'm only about a third of the way through this book myself, but a lot of you have seen this show, The Good Place. So it turns out The Good Place is actually inspired by T. M. Scanlons book and it kind of has that philosophy at the core of the show and the show. I love the show so much because it's all about growing and becoming better than we were yesterday and how we come together, support each other. And it's, you know, through all of these characters growing closer together that they end up, you know, succeeding with all of their wild adventures they go on. And it's just all about community. You know, that's what they do is they form their own small community. And you know what? We're a community, too. It may not always necessarily seem like that, but we really are. Even if we're just using open source, we're still taking part in this community. And, of course, for all of you listening right now, this is a conference for us to come together as a community. And I think this is so important. And it's led me to ruminate on this question of what does it mean to be a good community an upstanding citizen in the JavaScript community.

2. The Role of Companies in the JavaScript Community

Short description:

This is a complicated question. And there's no one-size-fits-all answer to it. A lot of it depends on what kind of role you have within the community. I'm going to focus on three in specific: the role of companies, developer relations, and project maintainers. Companies stand on the shoulders of open source giants and benefit from open source. It's important for companies to give back by supporting open source with time and money. Companies and the open source community have a symbiotic relationship. A good example is Observable sponsoring the CodeMirror project, which improved their product and helped the project grow. Companies should consider contributing to open source projects like becoming members of the OpenJS Foundation.

This is a complicated question. And there's no one-size-fits-all answer to it. A lot of it depends on what kind of role you have within the community. And we could spend all day talking about there's so many different kinds of roles people can play. But we only have so much time together, so I'm going to focus on three in specific. I'm going to focus on the role of companies, focus on the role of developer relations, and on that of project maintainers themselves.

Let's start by talking about companies and the role they have to play in the JavaScript community. Because really these days, companies stand on the shoulders of open source giants. Every single web app I can think of that's out there today I'm sure has open source at the heart of it. How many web apps that companies have created are getting out there, getting customers and all of that, how many of those products are based on top of Node.js in the or Python or some of the other open source server runtimes? How many apps are written using React? How many are written using Webpack to build? How many use TypeScript? VS Code? All of these are open source. Some of these were created by companies, yes, but not all of them. But they're all open source regardless. And so, you know, the fact that we can build code so much faster, we can build more complicated apps faster than we used to be able to, even if it still feels like it's, you know, pulling teeth at times, there's so many options. We have improved so much because of open source. And companies benefit from this. And so, you know, I think it's really important for companies to give back. And the main way that companies can do this is supporting with time and money. And, you know, I know this sounds like, you know, companies should be altruistic, but it's not really the case. There's a symbiosis between companies and the open source community. And companies supporting open source ultimately helps them, too.

As a good example, I used to work at a startup called Observable. And we based our code editor on the open source project CodeMirror, which is a great project, by the way. Just a lot of great work from Ren, the lead maintainer, and everyone else who worked on it. And because we were using this as such a core part of our product, Observable actually ended up sponsoring the project. You know, donating money to it specifically so that, you know, all of the maintainers on the project could focus on it full-time. And by doing so, the project grew faster, it became more reliable, bug fixes, all of that that ended up helping us in return. We didn't have to hire someone to do it ourselves because we could, like, you know, enable the project to do it for us. It was a great symbiotic relationship between the two. I think all companies, at least if there's, like, open source was a really core part of what you do, if there's especially one or two projects that are at the heart of what you do, you know, think about how you can contribute. With the Node.js project, for example, companies can become members of the OpenJS Foundation, which oversees the project.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

How to Build Your Own Open Source Project
React Advanced 2022React Advanced 2022
16 min
How to Build Your Own Open Source Project
Hello my friend, in this talk, I wanna share with you how to build your own open source project. Building an open source software project can be challenging. I receive a lot of things randomly in a day, like thank you messages for making my life easier, which motivates me. To choose an open source project to work on, pick one you use every day. Your software is being used when people report issues and send pull requests.
The Hidden Cost of Open Source
Vue.js London 2023Vue.js London 2023
11 min
The Hidden Cost of Open Source
Today's Talk discusses the hidden costs of open source software and the importance of estate planning for open source stacks. It highlights the challenges faced by product managers in terms of library upgrades and conflicting priorities. The Talk also emphasizes the steps to establish an end-of-life policy for open source stacks, including monitoring, inventorying, ranking, and outlining upgrade plans. It further emphasizes the need to consider risk, dependencies, and business impact when identifying support dates and upgrade options. The Talk concludes by stressing the importance of being proactive in formalizing an end-of-life policy to avoid costly migration projects.
Lessons from Maintaining TypeScript Libraries
TypeScript Congress 2022TypeScript Congress 2022
30 min
Lessons from Maintaining TypeScript Libraries
Top Content
Mark Erickson, a Senior Frontend Engineer at Replay, discusses JavaScript libraries and their support for TypeScript, including migration, versioning, and debugging. He also explores the challenges of supporting multiple TypeScript versions and designing APIs for use with TypeScript. Additionally, he shares advanced Redux type tricks and insights into maintaining a TypeScript library. The poll results reveal the widespread usage of TypeScript among developers, with many gradually migrating their codebases. Lastly, he provides tips for upgrading TypeScript and verifying functionality.
Patterns for Large Scale Vue.js Applications
Vue.js London 2023Vue.js London 2023
24 min
Patterns for Large Scale Vue.js Applications
Top Content
In this Talk, Daniel Kelly discusses patterns for large-scale Vue.js app development, emphasizing the importance of following standards and using officially recommended tooling. He highlights the Vue.js style guide as a valuable resource for styling standards and suggests using TypeScript and Nuxt 3 to enhance development capabilities. He also mentions the benefits of having a naming convention for routes and the concept of wrapping third-party dependencies for flexibility. Additionally, he mentions the app-icon component for a generic icon solution and the advantages of interacting with backends via an SDK.
Nuxt 3 Modules and Open-Source
Vue.js London 2023Vue.js London 2023
31 min
Nuxt 3 Modules and Open-Source
Nuxt.js modules are a central part of Nuxt and have had 14 million downloads. Creating Nuxt modules is easy with Nuxt 3. Modules can provide assets, CSS injection, plugins, and auto imports. Learning Nuxt modules gives a deeper understanding of Nuxt and extends its functionalities. The Nuxt community is friendly to newcomers and encourages module creation.
Break the Race: Easy Race Condition Detection for React
React Day Berlin 2023React Day Berlin 2023
31 min
Break the Race: Easy Race Condition Detection for React
Watch video: Break the Race: Easy Race Condition Detection for React
Race conditions can be complex to debug and reproduce, causing frustration for users. The speaker discusses examples of race conditions and ways to fix and avoid them. They demonstrate an example of an auto-completion field in React and how to handle race conditions in API calls. The speaker introduces the FastCheck framework for property-based testing to address race conditions and improve tests. Randomizing inputs and outputs can help uncover bugs specific to certain scenarios. The speaker also discusses mitigating race conditions in React and handling test overhead and reproducibility.

Workshops on related topic

Node.js: Landing your first Open Source contribution & how the Node.js project works
Node Congress 2023Node Congress 2023
85 min
Node.js: Landing your first Open Source contribution & how the Node.js project works
Workshop
 Claudio Wunder
Claudio Wunder
This workshop aims to give you an introductory module on the general aspects of Open Source. Follow Claudio Wunder from the OpenJS Foundation to guide you on how the governance model of Node.js work, how high-level decisions are made, and how to land your very first contribution. At the end of the workshop, you'll have a general understanding of all the kinds of work that the Node.js project does (From Bug triage to deciding the Next-10 years of Node.js) and how you can be part of the bigger picture of the JavaScript ecosystem.

The following technologies and soft skills might be needed):
  - Basic understanding of Git & GitHub interface
  - Professional/Intermediate English knowledge for communication and for allowing you to contribute to the Node.js org (As all contributions require communication within GitHub Issues/PRs)
  - The workshop requires you to have a computer (Otherwise, it becomes difficult to collaborate, but tablets are also OK) with an IDE setup, and we recommend VS Code and we recommend the GitHub Pull Requests & Issues Extension for collaborating with Issues and Pull Requests straight from the IDE.

The following themes will be covered during the workshop:
- A recap of some of GitHub UI features, such as GitHub projects and GitHub Issues
- We will cover the basics of Open Source and go through Open Source Guide
- We will recap Markdown
- We will cover Open Source governance and how the Node.js project works and talk about the OpenJS Foundation
  - Including all the ways one might contribute to the Node.js project and how their contributions can be valued
- During this Workshop, we will cover Issues from the nodejs/nodejs.dev as most of them are entry-level and do not require C++ or deep technical knowledge of Node.js.
  - Having that said, we still recommend enthusiast attendees that want to challenge themselves to "Good First Issues" from the nodejs/node (core repository) if they wish.
  - We're going to allow each attendee to choose an issue or to sit together with other attendees and tackle issues together with Pair Programming through VS Code Live Share feature
    - We can also do Zoom breakrooms for people that want to collaborate together
  - Claudio will be there to give support to all attendees and, of course, answer any questions regarding Issues and technical challenges they might face
  - The technologies used within nodejs/nodejs.dev are React/JSX, Markdown, MDX and Gatsby. (No need any knowledge of Gatsby, as most of the issues are platform agnostic)
- By the end of the Workshop, we'll collect all (make a list) the contributors who successfully opened a Pull Request (even if it's a draft) and recognise their participation on Social media.