
good Monday morning it’s oh really sunny
this video is the second ever developer
discussion video which is a format that
I’m trying out an interview format for
fun fun function I’m putting all of them
in a playlist up here or here today
we’re having a developer discussion with
Tierney siren Tierney is a co-chair of
the nodejs community committee which is
a top-level committee in the node.js
foundation so if you want to talk about
nodejs and building communities in
general and writing documentation and
tutorials for node Tierney is the person
to talk to
Tierney talks to be about having a
mindset of helping other developers grow
and this is an attitude that I really
admire and that hits close to home
in in software development there is an
upper limit to how much code that one
brain and two hands can write and that
means that the most valuable type of
developer is one that spends a lot of
their time focused outwards helping the
developers around them to be the best
developers that they can possibly be so
turning me talk about why he loves
documentation so much the value of
batching communication we also talk
about how to delegate in open source
projects and he he also tells a great
story about IO Jas and how to be a
leader of big changes in a big software
development community before we get on
with the interview I would like to thank
today’s sponsor launch darkly as you
might know launch directly is a product
and company that helps you manage
feature flags now if you’ve worked with
the feature flags and feature rollout
you probably know this feeling when
you’re rolling a feature out and the
information about the feature or rollout
is in like five different places like an
Excel spreadsheet there and like some
chat there so what if the
a single place where developers have
more visibility and more control over
their features so launch darkly and
Atlassian have teamed up so that you can
see your features that are related to
your stories and issues in JIRA so you
can read up on how to combine JIRA with
launch darkly at launch darkly dot fun
fun function comm that link is also in
the episode description I mmm PJ this is
fun fun function and you for watching a
developer discussion with tire and Surin
I can’t watch movies anymore without
analyzing them because that was like
true my courses was like Howard it
attacked different things in like
building that stuff and I miss
practicing like I miss going in and
building it rather than just watching
other people’s stuff so that’s like the
editing part is the part I miss wow that
was a lot of fun anything is a lot of
fun like time-consuming and it’s very
unlike especially wouldn’t you do
something new it’s incredibly
unpredictable normally I spend like six
hours editing every episode but now with
the new format where we can like just
play along your and like just oh let’s
just build something yeah oh my god like
it took 26 hours so I didn’t sleep
between Sunday and Mona India’s
completely less threw me back I’m
starting to repair myself now yes I
ended up getting into development and
developer advocacy via contributing to
open source so when I ojs worked out
from node I actually started
contributing to the website because
Michael Rogers was a mentor of mine
reached out and said to a bunch of
people and said hey we’re looking for
non code contributions and those are
really important because those are some
of the hardest things to get so that’s
how I jumped in for the first
contribution I made actually got
rejected because I I was fixing a
problem that wasn’t a problem I was
changing markdown links
from two direct links so like hark
hard-coding the urls which wouldn’t work
locally yeah so it was it was a little
bit of rough on to that site but that
actually encouraged me to continue
contributing like writing documentation
and being focused on a community that is
I would say like a non-obvious route for
a developer that is it kind of it’s very
valuable it’s sort of like how are my
macron in theatre can be used for
something but but it’s also a little bit
weird like how did that come to be
so I’ve considered myself a technical
writer for a long time and I’m good at
writing and that was a gap that I
recognized over you know multiple
projects that there’s always a gap of
technical writers and people who can
come and write documentation because I’m
interested in open source and interested
in code it’s a good way for me to kind
of bridge that gap and help these
projects that are you know inherently
open source grow both their communities
and also grow my value to those
communities so why you say that you
consider yourself a technical writer
like writing to me and like it’s a skill
that takes a lot of time to develop like
being able to write code doesn’t mean
that you’re good at writing texts and
communicating and building like
something over of a narrative or a
pedagogical approach where did you learn
that so you know part of my college
education was around communication
information design and so I had to do it
kind of a lot through that so I actually
took a few technical writing courses but
those weren’t even necessarily part of
the core curriculum it was more just out
of interest but the way that I kind of
have developed that seal over time has
very much been just engaging with other
people and actually having them review
my writing and then give me feedback on
it some of the most disheartening
feedback has often been the most
constructive yeah what is the thing
about about it that you like what why is
it why something like this rewarding to
you documentation gets
very low on the priority list of a lot
of software project even though it’s so
extremely appreciated when it works well
when you dive into a project and there
is there is documentation that just
pulls you in and it’s just easy to work
with and there’s a getting started guide
part of the book and it’s so appreciated
yet it’s so uncommon so I think they’re
the reason that I love doing it so much
is because exactly what you said it’s
inherently helpful to developers and
that I’ve kind of found that that’s what
I care about I care about helping other
developers and helping them grow so I
care about tools that are for developers
I care about things that are for
developers and so that’s kind of where
my skillset existing skill set and my
passion kind of collides and so that’s
why it’s a it’s a it’s a good place for
so I like wants to switch gears a little
bit and like jump back to work days and
like and working as a software developer
or working in general in software what
is a habit or a skill that you
cultivated in the last few years
something that you started doing that
you didn’t do before and that you think
has been very valuable to you as a
developer and like yes so again I think
this largely comes out of communication
one of the things that I found about
myself early on when I was kind of
working in software and working on open
source projects was that I would have
the time to write a huge epic of like
you know what I thought or you know why
the reason we needed this over time that
had kind of gotten a little bit slimmer
and so I’ve been communicating a bit
shorter form and kind of trickling my
ideas in rather than directly
communicating them in like a blast and
so that kind of enables me to I had to
step back and kind of go back to the
previous approach of sharing a large
amount of information yes and that has
really actually helped me push my own
goals forward
and help me enable the rest of my team
to actually be a little bit more
effective and work together a bit more
effectively so I’m not sure if I
understand you’re talking about like
batching the comm check a communication
in in chunks and like allowing it to
build up a little bit more instead of
like writing a slack message here and
it’s like that’s exactly what I’m
talking about that’s I ended up doing
that like just us like kind of trickling
my ideas in over time rather than kind
of building them into a cohesive unit
and kind of sharing them at once to tell
the full story there and so that’s you
know what I’m doing now and I found it
to be a lot more effective in terms of
actually being able to push goals and
communicate more effectively with other
people it’s interesting that you talk
about how you read into another person’s
communication style because I’ve I’ve
thought a lot about this recently where
about how to communicate effectively and
in order to do that you need to spend a
lot of time listening first what you
talk about is listening to communication
style but there’s also one thing that I
feel is also important like figuring out
the context that that person lives in we
had one guy at Spotify who was amazing
at this he he had he was in charge of
these infrastructure projects that he
needed to promote inside the
organization like we have built this new
tool is regreat and stuff we’re building
it but whenever he arrived at the
obviously did you really talk about it
like he spent like two days in the
office like just talking to people
talking about check it out what their
needs were and like what are you doing
and then and only then he started
talking about it like sometimes he
didn’t talk about no oh yeah at all
because he just sounds like ah I think
we need to make a few tweaks to this
before we talk to these people
yeah or sometimes see you start talking
but he always did it like with a full
understanding of our contacts and I’ve
felt that that was very powerful is this
something that you have
work with us well or is it something
that you recognize yourself in yeah so I
think that definitely I can well you’re
kind of talking through that I can see a
lot of instances instances of that in
the the node project even like when we
had a discussion around changing build
tools which is a massive undertaking
feeling like you’re being heard and
being listened to actually helps build
consensus and it helps build empathy
toward whatever the person is gonna
suggest just the feeling of like yes I’m
being listened to they have heard me
like even if your needs are being
ignored at least they you know that they
okay they they understand them and they
have prioritized my needs and it seemed
like perhaps it was only me that had
this problem then I’m fine at least they
did prioritize correct yeah yeah and
even in that context like that that is
such a drain on time to actually go
through and do that for everyone who’s a
stakeholder everyone who is involved
like even if they’re not a stakeholder
you have to go and build that consensus
and go and build that relationship out
with people as much as possible takes a
lot of time and that’s honestly in the
the noj’s community committee that’s
where a lot of our work goes is doing
that kind of work of going and building
and since it’s going and building
relationships going in understanding
people so we can help them help
themselves if you like when you interact
with other open-source maintainer people
like that start out open-source projects
from your standpoint as like from what
you’ve learned as managing community for
so long what are some common
misconceptions that you feel are like
repeats themselves in open-source
maintain is like their expectations
about what it’s like to have a community
around your your project and that it’s
gonna be easy and that the first stab at
something is gonna be the hardest one
the the hard part of open source isn’t
launching something or isn’t doing
something initially it’s
actually maintain maintaining it over
the long haul
it’s a understanding that you’re making
a commitment longer than this initial
investment and that’s something I pretty
consistently see people tripping up over
is there’s a project that gets a lot of
attention it’s a good project like a
genuinely good tool but when the
maintainers are going into this for the
first time they’re they haven’t been
involved in other open source projects
and they don’t really have anyone to
talk to about that
or what to expect around it they get
caught up in oh now I have this massive
thing with a ton of attention that I
have to maintain and the the hardest
thing is kind of detaching yourself and
leveling up other people
so once you’ve launched initially then
you need to kind of step back a bit and
make sure you’re leveling up other
people who are expressing the most
interest otherwise you’re stuck in this
constantly constant torrent of
ever-increasing work and yeah you are
the only one that knows things you
become ever more important even if you
get deputies they are not autonomous
enough so they are gonna like divert
questions to you and you’re gonna feel
even more pressure even though you have
more deputies yeah it’s it becomes a
burden real quick and it’s a good way to
burn out of taking tak like it’s a
really good way to do that real fast and
so you know one of the ways you can
avoid that is give people a domain give
people a space that they can own and
give them the decision-making power
enable them to go make that decision
when it comes to it and let them be the
owner of oh this piece of your
open-source project what is important
whatever what are important things to
think about when when you want to give
someone the ownership of a domain how do
you instill that sense of ownership
especially in the cases where perhaps
this is a remote working situation
absolutely probably never met this
person I I think the important thing is
to make sure that they know they’re
supported and that comes in a variety of
formats one you
– you do have to make yourself available
to them you have to make sure that they
know they can talk to you if they need
to if they’re concerned about something
or if there is a problem that they don’t
know how to solve they can come to you
that said they are still the ones that
have the final decision-making power so
why is that important because that seems
counterintuitive to me like in order to
instill a sense of ownership I like I
kind of want to like my intuition is to
like just dump it on them so that they
feel like oh if I don’t do this
it’s gonna like fall down like a house
of cards
yeah so the the reason that’s important
is because it helps them make them it
helps them feel a sense of community in
this project and and I do get where
you’re coming from with that where it
they’re still kind of a deputy but the
the the thing that I’ve encountered most
often and I you know as chair of the
community committee I had to do this a
lot is I encountered people having the
power but still not feeling like they
were unable to go use it and so they
need to they need to be reassured that
they have that power so it’s not even
giving them context it’s saying yes this
is yours because they need to hear that
multiple times dumping something on
people and this happened a few times in
the community committee if you don’t
give them attention and kind of help
them level up to a point where they can
help level other people up into
maintaining it they end up dropping out
that happened several times
unfortunately and so if you get multiple
people so not just a single person but
actually end up getting a group I found
about three people is generally useful
like a good group size where you can
totally drop out but getting a few
people who are interested in this
specific domain this specific space and
let them kind of start paying off each
other so they have their own support
network that may owns this that’s a good
place where you can be like okay I’m
you still need to be there for them when
they’re you know if they’re totally new
to this project they they’re not
familiar with how your governance works
or even what your own ideal you
mentioned I ojs I think a lot of people
that have gone into development had
recently have no idea about that story I
think that you shoot can you tell the
story about I Oh Jess and what what yes
and what led up to it and like I feel
like it’s a juicy one yeah
so no js’ was originally a project under
a single company that company was the
the original goal of i ojs at 0.1 oh
sorry the original goal of nodejs at 0.1
was to be feature complete at one point
oh there was gonna be no additional
features it was perfect
realistically that never really happens
yeah that it was very weird the old to
have yeah it was also originally meant
to just be in a fast HTTP HTTP server so
yeah it’s gotten a lot bigger than that
so the kind of story they led to a ojs
was that the the company that was
maintaining it at the time was
continuously pushing 0.12 so node 0.12
out and this had been happening for two
years and that meant that new JavaScript
features like es6 features weren’t
actually landing because a upgraded
version of v8 would prevent it would be
like a major change even though it was
like pre 1.0 it wasn’t following sim for
very well so you know it would be a
major change and they just weren’t
making that because they were trying to
make it stable for the enterprise and so
a lot of the community members who had
been contributing and who had been
trying to contribute we’re actually
getting shut down on a lot of their
contributions because they were breaking
changes or they were major that led to a
lot of frustration and
eventually that frustration led to
something called node forward which was
a kind of underground initiative that
the contributors that were not at this
company it was their effort to try to
solve a lot of the problems that node
was seeing at the time from there one
specific individual Theodore and don t
in Dutton II never say that name right I
could never say his last name right so
on Thanksgiving Day heard or just said
it and he forked node into IO j s
at that point we actually had two
implementations of node and it felt like
you had to sort of commit to one yeah
and it also to me felt like in my mind
it felt like iOS io dot J’s was was
winning yep I don’t know if that was
view that everyone had but it felt like
yeah that it’s gonna be act yeah and I
think that was the view of most people I
think that the ones who didn’t feel like
that and felt a little bit of
uncertainty were the enterprises that
we’re trying to stick with yeah join and
try not to say the name and I did yeah
but they you know the ones that were
trying to stick with it were unsure and
so they they were the ones that kind of
had to be addressed in that solution and
it ended up working out we now have the
node.js Foundation and you know a pretty
solid governance model a lot of work and
that all came together when nodejs
merged back with i ojs and that created
node for but how did the work to get
this fork back like I’d like that’s it
you seen since insurmountable like you
have this these this seems like herding
sheep in space to me like they have like
these are people that go off and fork
node
and they get people to follow them they
seem like the kind of people that are
tricky to get back into the fold leg but
how how did that even who did that even
so honestly it was a lot of the people
who were doing note forward those same
contributors who were the ones who were
really dedicating a lot of work to note
and they were the ones who went and
contributed a bunch to ojs and made it
kind of more forward those were the
people who were having discussions with
the company that owned no js’ to go and
kind of merge everything back together
in a way that everyone was as happy as
possible with and that there wasn’t this
dramatic fork in the community that was
splitting everyone but more so we could
have a unified a group of people again
so why do you think they succeeded while
other project like what’s the CIC Hudson
and Jenkins you know that story I don’t
know that like it’s because they were
they forked off no no it was a CIA
system called Jenkins I think it was IBM
that maintained it and then was forked
up off into a another open-source
version called Hudson and I don’t know
exactly one happens there or why they
never managed to merge him back but I
don’t know maybe somebody knows in the
comments I can make
okay like knows why but he has found its
fascinating that that seemed to me like
a remarkable feat to get them back on
the track so I think one of the biggest
reasons was that the intent of Io gist
was never to be a fork
it was never to be separate it was to be
merged back that was one of the original
goals oh I didn’t know that yeah and so
there was never any kind of adversarial
miss around oh where i oj s and oh
you’re no js’ it’s more we want these
things for anode and these are what’s
gonna be useful for the project and like
the community often knows best when it’s
a lot of people trying to say the same
thing and there’s certain people that
are holding back because of whatever
beliefs they have that’s such it like I
think that
also very like it’s very good example of
good leadership I think I have this
quote that I pick up pick up from think
it’s from Omaha is seven Habits of
Highly Effective People which is be
alight not a judge be a model not a
critic and I try to remember that as
much as possible and not try to yell at
people doing things instead like just
roll up your sleeves and and go do it
and I think that that I urge as now
given that I understand the history well
with like this is gonna be a fork that
will go back yeah it’s that’s a
fantastic way I’m changing the minds of
the leadership I think yeah and I mean
that it’s you know the intent was there
they had you know at the beginning there
was no known reciprocation like I I
don’t think that was wanted from the
nodejs side but it was kind of twisted
their arm got twisted a bit into doing
it and it was I I agree it was very
effective leadership on a lot of levels
but I mean they needed that wake-up call
it felt like they have gotten stuck in a
situation where they didn’t listen to as
much 2 their community as I needed to
and yeah sometimes sometimes you just
get there like you just forget that
you’re doing this for that there are
people use your on your product and you
just start listening a little too too
little and get a little bit too focus on
the vision that you had from the start
and not look at well what is this what
is this actually now what is what are
people using it for what is that what is
that context yeah and honestly like node
has become such a massive platform that
like I at this point even has it
hesitate to say the note no denote
community you have to say the node
ecosystem because there are so many
distinct communities in node and there
even were back then
there are you know HDPE HTTP servers
which was
the original use for it then there was
build to cooling then CLI tooling like
there’s so many different uses and even
now like you have webpack which uses
note heavily there’s every single tool
in javascript ends up using node at some
point in its life cycle and you have to
think of it that as an ecosystem rather
than a single community because there’s
too many people and too many passions
and needs represented for it to be
singular as a community yeah like I have
this tirade then I’m really interested
now web assembly is arriving because
then we will finally know if javascript
is actually actually a good language or
not because there’s so many people going
on our JavaScript because it’s in
browsers but I I think that it’s
actually a very good language in many
ways it’s just it’s just something about
it it’s very you get things done it
doesn’t get in your way and it’s as like
functional programming is so many good
like nice things about it if you like
don’t look at the overt warts of it so I
have this you know that they at Woods
law that if something can be written in
JavaScript it will eventually be
JavaScript I have this other like mpj
slaw that that if if something can run
JavaScript it will run JavaScript and
like you can’t stuff node on everything
like there’s so many things running
JavaScript now like all the phones have
JavaScript engines and it’s so popular
in IOT devices and it’s it’s just it’s
just such a it’s like a it’s the JVM is
very popular because it’s such a good
runtime and JavaScript now has like
these enormous amounts of different
runtime all the APS here are running
note what yeah all the APS at Nordic yes
well so in the event
those are running note what are other
weird things on run node do you know
McDonald’s yes so all the I don’t know
if they have them here but the digital
like the TV menus all are built with web
components
node in yarn is the back end tooling all
the APS of the we’re at the point of
sales those all use node I actually just
started a Twitter thread every almost
everything at Adobe uses node there’s a
there’s so many there’s this is one that
is a little freaky to me there’s a
device for I believe it’s insulin
distribution that uses node and it’s all
the components are open-source that one
is that that one went a little too far
that like yeah if there’s a security
vulnerability we could stop someone from
getting insulin that’s so little little
bit too much oh wow but they
appropriately evaluated it yeah make its
I mean you have to pick some technology
yeah exactly and like that’s it there
are legitimate reasons why it is a good
choice for that it’s just like a weird
thing that something I’m working on or
contributing to has is in someone’s
physical body that’s that’s a weird
thing to me yeah but it’s also a quality
I think is sometimes self reinforcing
like somebody use it starts using it to
something really important and then you
become aware of it and it’s kind of like
it creates it’s like this culture like
oh my god we can’t up culture which
might be bad for the flexibility and
speed of a project to be fair but I
think it’s might be very good for like
the the robustness of the project yeah
and I don’t think many people know about
that yet so don’t don’t tell anyone that
contributes to node that yeah don’t tell
them that there’s so many weird places
that it’s been shoved into like I mean
all of the you know johnny-five stuff
that’s super cool
there’s a bunch of use cases like I was
it Phil ejs a year ago and one it was in
a museum and one of the presenters was
from
a company that does display digital
displays for museums so they ship all
their displays our chromium with node
and so it’s a very interesting thing
where like there’s a bunch of museums in
the US that if you go to them you’re
interacting with node when you’re
interacting with the digital displays
super cool stuff yeah let’s go because
everywhere yes it also means if there’s
so many jobs there’s so many different
ways that no matter what your interests
are you can apply JavaScript to them oh
I didn’t think about like that is one of
the very cool things about being a
programmer is that especially a
JavaScript programmer now that you
mention it that allows you to contribute
to whatever feel you like where can
people find you online so you can find
me on twitter at bit and bang be ITA and
DB ang brilliant anything else that you
would like to add any final words of
wisdom that are important so I’d say if
you want to start contributing to node
feel free to reach out to me I’d be
happy to help get you started or just
hop into the repos and look for the good
first issue label it’s our link that we
consent people to wear like a good
getting started thing I can send that I
can give you that link yeah we will put
that in the happy so description note
there that that’s the camera like I’m
not looking at that one out of habit
yeah thank you so much for coming this
I’ve seen such a great conversation I’ve
it’s been such a pleasure yeah that is
you can find information about how to
follow tyranny and how to get involved
with contributing to node in the episode
description another thing that you can
find in the episode description is our
sponsor launch Gartley is now integrated
with JIRA so that you can track your
issues and your feature flags in
parallel if you use JIRA or launch
directly you should really check it out
at launch darkly don’t fund one function
comm you have just watched an episode of
fun fun function I release these every
Monday morning or wait hundred GMT but
you will forget that you you can
subscribe by clicking here or you can
check out another episode right now by
clicking here
ah mmm PJ that’s the Sun until next Monday morning stay curious
this video is the second ever developer
discussion video which is a format that
I’m trying out an interview format for
fun fun function I’m putting all of them
in a playlist up here or here today
we’re having a developer discussion with
Tierney siren Tierney is a co-chair of
the nodejs community committee which is
a top-level committee in the node.js
foundation so if you want to talk about
nodejs and building communities in
general and writing documentation and
tutorials for node Tierney is the person
to talk to
Tierney talks to be about having a
mindset of helping other developers grow
and this is an attitude that I really
admire and that hits close to home
in in software development there is an
upper limit to how much code that one
brain and two hands can write and that
means that the most valuable type of
developer is one that spends a lot of
their time focused outwards helping the
developers around them to be the best
developers that they can possibly be so
turning me talk about why he loves
documentation so much the value of
batching communication we also talk
about how to delegate in open source
projects and he he also tells a great
story about IO Jas and how to be a
leader of big changes in a big software
development community before we get on
with the interview I would like to thank
today’s sponsor launch darkly as you
might know launch directly is a product
and company that helps you manage
feature flags now if you’ve worked with
the feature flags and feature rollout
you probably know this feeling when
you’re rolling a feature out and the
information about the feature or rollout
is in like five different places like an
Excel spreadsheet there and like some
chat there so what if the
a single place where developers have
more visibility and more control over
their features so launch darkly and
Atlassian have teamed up so that you can
see your features that are related to
your stories and issues in JIRA so you
can read up on how to combine JIRA with
launch darkly at launch darkly dot fun
fun function comm that link is also in
the episode description I mmm PJ this is
fun fun function and you for watching a
developer discussion with tire and Surin
I can’t watch movies anymore without
analyzing them because that was like
true my courses was like Howard it
attacked different things in like
building that stuff and I miss
practicing like I miss going in and
building it rather than just watching
other people’s stuff so that’s like the
editing part is the part I miss wow that
was a lot of fun anything is a lot of
fun like time-consuming and it’s very
unlike especially wouldn’t you do
something new it’s incredibly
unpredictable normally I spend like six
hours editing every episode but now with
the new format where we can like just
play along your and like just oh let’s
just build something yeah oh my god like
it took 26 hours so I didn’t sleep
between Sunday and Mona India’s
completely less threw me back I’m
starting to repair myself now yes I
ended up getting into development and
developer advocacy via contributing to
open source so when I ojs worked out
from node I actually started
contributing to the website because
Michael Rogers was a mentor of mine
reached out and said to a bunch of
people and said hey we’re looking for
non code contributions and those are
really important because those are some
of the hardest things to get so that’s
how I jumped in for the first
contribution I made actually got
rejected because I I was fixing a
problem that wasn’t a problem I was
changing markdown links
from two direct links so like hark
hard-coding the urls which wouldn’t work
locally yeah so it was it was a little
bit of rough on to that site but that
actually encouraged me to continue
contributing like writing documentation
and being focused on a community that is
I would say like a non-obvious route for
a developer that is it kind of it’s very
valuable it’s sort of like how are my
macron in theatre can be used for
something but but it’s also a little bit
weird like how did that come to be
so I’ve considered myself a technical
writer for a long time and I’m good at
writing and that was a gap that I
recognized over you know multiple
projects that there’s always a gap of
technical writers and people who can
come and write documentation because I’m
interested in open source and interested
in code it’s a good way for me to kind
of bridge that gap and help these
projects that are you know inherently
open source grow both their communities
and also grow my value to those
communities so why you say that you
consider yourself a technical writer
like writing to me and like it’s a skill
that takes a lot of time to develop like
being able to write code doesn’t mean
that you’re good at writing texts and
communicating and building like
something over of a narrative or a
pedagogical approach where did you learn
that so you know part of my college
education was around communication
information design and so I had to do it
kind of a lot through that so I actually
took a few technical writing courses but
those weren’t even necessarily part of
the core curriculum it was more just out
of interest but the way that I kind of
have developed that seal over time has
very much been just engaging with other
people and actually having them review
my writing and then give me feedback on
it some of the most disheartening
feedback has often been the most
constructive yeah what is the thing
about about it that you like what why is
it why something like this rewarding to
you documentation gets
very low on the priority list of a lot
of software project even though it’s so
extremely appreciated when it works well
when you dive into a project and there
is there is documentation that just
pulls you in and it’s just easy to work
with and there’s a getting started guide
part of the book and it’s so appreciated
yet it’s so uncommon so I think they’re
the reason that I love doing it so much
is because exactly what you said it’s
inherently helpful to developers and
that I’ve kind of found that that’s what
I care about I care about helping other
developers and helping them grow so I
care about tools that are for developers
I care about things that are for
developers and so that’s kind of where
my skillset existing skill set and my
passion kind of collides and so that’s
why it’s a it’s a it’s a good place for
so I like wants to switch gears a little
bit and like jump back to work days and
like and working as a software developer
or working in general in software what
is a habit or a skill that you
cultivated in the last few years
something that you started doing that
you didn’t do before and that you think
has been very valuable to you as a
developer and like yes so again I think
this largely comes out of communication
one of the things that I found about
myself early on when I was kind of
working in software and working on open
source projects was that I would have
the time to write a huge epic of like
you know what I thought or you know why
the reason we needed this over time that
had kind of gotten a little bit slimmer
and so I’ve been communicating a bit
shorter form and kind of trickling my
ideas in rather than directly
communicating them in like a blast and
so that kind of enables me to I had to
step back and kind of go back to the
previous approach of sharing a large
amount of information yes and that has
really actually helped me push my own
goals forward
and help me enable the rest of my team
to actually be a little bit more
effective and work together a bit more
effectively so I’m not sure if I
understand you’re talking about like
batching the comm check a communication
in in chunks and like allowing it to
build up a little bit more instead of
like writing a slack message here and
it’s like that’s exactly what I’m
talking about that’s I ended up doing
that like just us like kind of trickling
my ideas in over time rather than kind
of building them into a cohesive unit
and kind of sharing them at once to tell
the full story there and so that’s you
know what I’m doing now and I found it
to be a lot more effective in terms of
actually being able to push goals and
communicate more effectively with other
people it’s interesting that you talk
about how you read into another person’s
communication style because I’ve I’ve
thought a lot about this recently where
about how to communicate effectively and
in order to do that you need to spend a
lot of time listening first what you
talk about is listening to communication
style but there’s also one thing that I
feel is also important like figuring out
the context that that person lives in we
had one guy at Spotify who was amazing
at this he he had he was in charge of
these infrastructure projects that he
needed to promote inside the
organization like we have built this new
tool is regreat and stuff we’re building
it but whenever he arrived at the
obviously did you really talk about it
like he spent like two days in the
office like just talking to people
talking about check it out what their
needs were and like what are you doing
and then and only then he started
talking about it like sometimes he
didn’t talk about no oh yeah at all
because he just sounds like ah I think
we need to make a few tweaks to this
before we talk to these people
yeah or sometimes see you start talking
but he always did it like with a full
understanding of our contacts and I’ve
felt that that was very powerful is this
something that you have
work with us well or is it something
that you recognize yourself in yeah so I
think that definitely I can well you’re
kind of talking through that I can see a
lot of instances instances of that in
the the node project even like when we
had a discussion around changing build
tools which is a massive undertaking
feeling like you’re being heard and
being listened to actually helps build
consensus and it helps build empathy
toward whatever the person is gonna
suggest just the feeling of like yes I’m
being listened to they have heard me
like even if your needs are being
ignored at least they you know that they
okay they they understand them and they
have prioritized my needs and it seemed
like perhaps it was only me that had
this problem then I’m fine at least they
did prioritize correct yeah yeah and
even in that context like that that is
such a drain on time to actually go
through and do that for everyone who’s a
stakeholder everyone who is involved
like even if they’re not a stakeholder
you have to go and build that consensus
and go and build that relationship out
with people as much as possible takes a
lot of time and that’s honestly in the
the noj’s community committee that’s
where a lot of our work goes is doing
that kind of work of going and building
and since it’s going and building
relationships going in understanding
people so we can help them help
themselves if you like when you interact
with other open-source maintainer people
like that start out open-source projects
from your standpoint as like from what
you’ve learned as managing community for
so long what are some common
misconceptions that you feel are like
repeats themselves in open-source
maintain is like their expectations
about what it’s like to have a community
around your your project and that it’s
gonna be easy and that the first stab at
something is gonna be the hardest one
the the hard part of open source isn’t
launching something or isn’t doing
something initially it’s
actually maintain maintaining it over
the long haul
it’s a understanding that you’re making
a commitment longer than this initial
investment and that’s something I pretty
consistently see people tripping up over
is there’s a project that gets a lot of
attention it’s a good project like a
genuinely good tool but when the
maintainers are going into this for the
first time they’re they haven’t been
involved in other open source projects
and they don’t really have anyone to
talk to about that
or what to expect around it they get
caught up in oh now I have this massive
thing with a ton of attention that I
have to maintain and the the hardest
thing is kind of detaching yourself and
leveling up other people
so once you’ve launched initially then
you need to kind of step back a bit and
make sure you’re leveling up other
people who are expressing the most
interest otherwise you’re stuck in this
constantly constant torrent of
ever-increasing work and yeah you are
the only one that knows things you
become ever more important even if you
get deputies they are not autonomous
enough so they are gonna like divert
questions to you and you’re gonna feel
even more pressure even though you have
more deputies yeah it’s it becomes a
burden real quick and it’s a good way to
burn out of taking tak like it’s a
really good way to do that real fast and
so you know one of the ways you can
avoid that is give people a domain give
people a space that they can own and
give them the decision-making power
enable them to go make that decision
when it comes to it and let them be the
owner of oh this piece of your
open-source project what is important
whatever what are important things to
think about when when you want to give
someone the ownership of a domain how do
you instill that sense of ownership
especially in the cases where perhaps
this is a remote working situation
absolutely probably never met this
person I I think the important thing is
to make sure that they know they’re
supported and that comes in a variety of
formats one you
– you do have to make yourself available
to them you have to make sure that they
know they can talk to you if they need
to if they’re concerned about something
or if there is a problem that they don’t
know how to solve they can come to you
that said they are still the ones that
have the final decision-making power so
why is that important because that seems
counterintuitive to me like in order to
instill a sense of ownership I like I
kind of want to like my intuition is to
like just dump it on them so that they
feel like oh if I don’t do this
it’s gonna like fall down like a house
of cards
yeah so the the reason that’s important
is because it helps them make them it
helps them feel a sense of community in
this project and and I do get where
you’re coming from with that where it
they’re still kind of a deputy but the
the the thing that I’ve encountered most
often and I you know as chair of the
community committee I had to do this a
lot is I encountered people having the
power but still not feeling like they
were unable to go use it and so they
need to they need to be reassured that
they have that power so it’s not even
giving them context it’s saying yes this
is yours because they need to hear that
multiple times dumping something on
people and this happened a few times in
the community committee if you don’t
give them attention and kind of help
them level up to a point where they can
help level other people up into
maintaining it they end up dropping out
that happened several times
unfortunately and so if you get multiple
people so not just a single person but
actually end up getting a group I found
about three people is generally useful
like a good group size where you can
totally drop out but getting a few
people who are interested in this
specific domain this specific space and
let them kind of start paying off each
other so they have their own support
network that may owns this that’s a good
place where you can be like okay I’m
you still need to be there for them when
they’re you know if they’re totally new
to this project they they’re not
familiar with how your governance works
or even what your own ideal you
mentioned I ojs I think a lot of people
that have gone into development had
recently have no idea about that story I
think that you shoot can you tell the
story about I Oh Jess and what what yes
and what led up to it and like I feel
like it’s a juicy one yeah
so no js’ was originally a project under
a single company that company was the
the original goal of i ojs at 0.1 oh
sorry the original goal of nodejs at 0.1
was to be feature complete at one point
oh there was gonna be no additional
features it was perfect
realistically that never really happens
yeah that it was very weird the old to
have yeah it was also originally meant
to just be in a fast HTTP HTTP server so
yeah it’s gotten a lot bigger than that
so the kind of story they led to a ojs
was that the the company that was
maintaining it at the time was
continuously pushing 0.12 so node 0.12
out and this had been happening for two
years and that meant that new JavaScript
features like es6 features weren’t
actually landing because a upgraded
version of v8 would prevent it would be
like a major change even though it was
like pre 1.0 it wasn’t following sim for
very well so you know it would be a
major change and they just weren’t
making that because they were trying to
make it stable for the enterprise and so
a lot of the community members who had
been contributing and who had been
trying to contribute we’re actually
getting shut down on a lot of their
contributions because they were breaking
changes or they were major that led to a
lot of frustration and
eventually that frustration led to
something called node forward which was
a kind of underground initiative that
the contributors that were not at this
company it was their effort to try to
solve a lot of the problems that node
was seeing at the time from there one
specific individual Theodore and don t
in Dutton II never say that name right I
could never say his last name right so
on Thanksgiving Day heard or just said
it and he forked node into IO j s
at that point we actually had two
implementations of node and it felt like
you had to sort of commit to one yeah
and it also to me felt like in my mind
it felt like iOS io dot J’s was was
winning yep I don’t know if that was
view that everyone had but it felt like
yeah that it’s gonna be act yeah and I
think that was the view of most people I
think that the ones who didn’t feel like
that and felt a little bit of
uncertainty were the enterprises that
we’re trying to stick with yeah join and
try not to say the name and I did yeah
but they you know the ones that were
trying to stick with it were unsure and
so they they were the ones that kind of
had to be addressed in that solution and
it ended up working out we now have the
node.js Foundation and you know a pretty
solid governance model a lot of work and
that all came together when nodejs
merged back with i ojs and that created
node for but how did the work to get
this fork back like I’d like that’s it
you seen since insurmountable like you
have this these this seems like herding
sheep in space to me like they have like
these are people that go off and fork
node
and they get people to follow them they
seem like the kind of people that are
tricky to get back into the fold leg but
how how did that even who did that even
so honestly it was a lot of the people
who were doing note forward those same
contributors who were the ones who were
really dedicating a lot of work to note
and they were the ones who went and
contributed a bunch to ojs and made it
kind of more forward those were the
people who were having discussions with
the company that owned no js’ to go and
kind of merge everything back together
in a way that everyone was as happy as
possible with and that there wasn’t this
dramatic fork in the community that was
splitting everyone but more so we could
have a unified a group of people again
so why do you think they succeeded while
other project like what’s the CIC Hudson
and Jenkins you know that story I don’t
know that like it’s because they were
they forked off no no it was a CIA
system called Jenkins I think it was IBM
that maintained it and then was forked
up off into a another open-source
version called Hudson and I don’t know
exactly one happens there or why they
never managed to merge him back but I
don’t know maybe somebody knows in the
comments I can make
okay like knows why but he has found its
fascinating that that seemed to me like
a remarkable feat to get them back on
the track so I think one of the biggest
reasons was that the intent of Io gist
was never to be a fork
it was never to be separate it was to be
merged back that was one of the original
goals oh I didn’t know that yeah and so
there was never any kind of adversarial
miss around oh where i oj s and oh
you’re no js’ it’s more we want these
things for anode and these are what’s
gonna be useful for the project and like
the community often knows best when it’s
a lot of people trying to say the same
thing and there’s certain people that
are holding back because of whatever
beliefs they have that’s such it like I
think that
also very like it’s very good example of
good leadership I think I have this
quote that I pick up pick up from think
it’s from Omaha is seven Habits of
Highly Effective People which is be
alight not a judge be a model not a
critic and I try to remember that as
much as possible and not try to yell at
people doing things instead like just
roll up your sleeves and and go do it
and I think that that I urge as now
given that I understand the history well
with like this is gonna be a fork that
will go back yeah it’s that’s a
fantastic way I’m changing the minds of
the leadership I think yeah and I mean
that it’s you know the intent was there
they had you know at the beginning there
was no known reciprocation like I I
don’t think that was wanted from the
nodejs side but it was kind of twisted
their arm got twisted a bit into doing
it and it was I I agree it was very
effective leadership on a lot of levels
but I mean they needed that wake-up call
it felt like they have gotten stuck in a
situation where they didn’t listen to as
much 2 their community as I needed to
and yeah sometimes sometimes you just
get there like you just forget that
you’re doing this for that there are
people use your on your product and you
just start listening a little too too
little and get a little bit too focus on
the vision that you had from the start
and not look at well what is this what
is this actually now what is what are
people using it for what is that what is
that context yeah and honestly like node
has become such a massive platform that
like I at this point even has it
hesitate to say the note no denote
community you have to say the node
ecosystem because there are so many
distinct communities in node and there
even were back then
there are you know HDPE HTTP servers
which was
the original use for it then there was
build to cooling then CLI tooling like
there’s so many different uses and even
now like you have webpack which uses
note heavily there’s every single tool
in javascript ends up using node at some
point in its life cycle and you have to
think of it that as an ecosystem rather
than a single community because there’s
too many people and too many passions
and needs represented for it to be
singular as a community yeah like I have
this tirade then I’m really interested
now web assembly is arriving because
then we will finally know if javascript
is actually actually a good language or
not because there’s so many people going
on our JavaScript because it’s in
browsers but I I think that it’s
actually a very good language in many
ways it’s just it’s just something about
it it’s very you get things done it
doesn’t get in your way and it’s as like
functional programming is so many good
like nice things about it if you like
don’t look at the overt warts of it so I
have this you know that they at Woods
law that if something can be written in
JavaScript it will eventually be
JavaScript I have this other like mpj
slaw that that if if something can run
JavaScript it will run JavaScript and
like you can’t stuff node on everything
like there’s so many things running
JavaScript now like all the phones have
JavaScript engines and it’s so popular
in IOT devices and it’s it’s just it’s
just such a it’s like a it’s the JVM is
very popular because it’s such a good
runtime and JavaScript now has like
these enormous amounts of different
runtime all the APS here are running
note what yeah all the APS at Nordic yes
well so in the event
those are running note what are other
weird things on run node do you know
McDonald’s yes so all the I don’t know
if they have them here but the digital
like the TV menus all are built with web
components
node in yarn is the back end tooling all
the APS of the we’re at the point of
sales those all use node I actually just
started a Twitter thread every almost
everything at Adobe uses node there’s a
there’s so many there’s this is one that
is a little freaky to me there’s a
device for I believe it’s insulin
distribution that uses node and it’s all
the components are open-source that one
is that that one went a little too far
that like yeah if there’s a security
vulnerability we could stop someone from
getting insulin that’s so little little
bit too much oh wow but they
appropriately evaluated it yeah make its
I mean you have to pick some technology
yeah exactly and like that’s it there
are legitimate reasons why it is a good
choice for that it’s just like a weird
thing that something I’m working on or
contributing to has is in someone’s
physical body that’s that’s a weird
thing to me yeah but it’s also a quality
I think is sometimes self reinforcing
like somebody use it starts using it to
something really important and then you
become aware of it and it’s kind of like
it creates it’s like this culture like
oh my god we can’t up culture which
might be bad for the flexibility and
speed of a project to be fair but I
think it’s might be very good for like
the the robustness of the project yeah
and I don’t think many people know about
that yet so don’t don’t tell anyone that
contributes to node that yeah don’t tell
them that there’s so many weird places
that it’s been shoved into like I mean
all of the you know johnny-five stuff
that’s super cool
there’s a bunch of use cases like I was
it Phil ejs a year ago and one it was in
a museum and one of the presenters was
from
a company that does display digital
displays for museums so they ship all
their displays our chromium with node
and so it’s a very interesting thing
where like there’s a bunch of museums in
the US that if you go to them you’re
interacting with node when you’re
interacting with the digital displays
super cool stuff yeah let’s go because
everywhere yes it also means if there’s
so many jobs there’s so many different
ways that no matter what your interests
are you can apply JavaScript to them oh
I didn’t think about like that is one of
the very cool things about being a
programmer is that especially a
JavaScript programmer now that you
mention it that allows you to contribute
to whatever feel you like where can
people find you online so you can find
me on twitter at bit and bang be ITA and
DB ang brilliant anything else that you
would like to add any final words of
wisdom that are important so I’d say if
you want to start contributing to node
feel free to reach out to me I’d be
happy to help get you started or just
hop into the repos and look for the good
first issue label it’s our link that we
consent people to wear like a good
getting started thing I can send that I
can give you that link yeah we will put
that in the happy so description note
there that that’s the camera like I’m
not looking at that one out of habit
yeah thank you so much for coming this
I’ve seen such a great conversation I’ve
it’s been such a pleasure yeah that is
you can find information about how to
follow tyranny and how to get involved
with contributing to node in the episode
description another thing that you can
find in the episode description is our
sponsor launch Gartley is now integrated
with JIRA so that you can track your
issues and your feature flags in
parallel if you use JIRA or launch
directly you should really check it out
at launch darkly don’t fund one function
comm you have just watched an episode of
fun fun function I release these every
Monday morning or wait hundred GMT but
you will forget that you you can
subscribe by clicking here or you can
check out another episode right now by
clicking here
ah mmm PJ that’s the Sun until next Monday morning stay curious
Please follow and like us: