Open Source Maintainer Interviews: Open Source Contributing (Part 1)
See all speakers
See all 3 speakers

Summarized using AI

Open Source Maintainer Interviews: Open Source Contributing (Part 1)

Aaron Patterson, Jonan Scheffler, and Rachael Wright-Munn • February 25, 2021 • online • Talk

The video titled "Open Source Maintainer Interviews: Open Source Contributing (Part 1)" features Aaron Patterson, a prominent figure on the Ruby and Rails core teams and an employee at Shopify, alongside hosts Jonan Scheffler and Rachael Wright-Munn. The main theme of this discussion revolves around the experiences and challenges faced by open source maintainers, as well as the dynamics of contributing to open source projects.

Key points discussed in the video include:

  • Introductions of Speakers: Aaron Patterson introduces himself as "tenderlove" and shares his involvement in the Ruby and Rails community, along with his cheese-making hobby. The hosts also introduce themselves, highlighting their interests and backgrounds in technology and open source.

  • Challenges of Open Source Maintenance: Aaron discusses the common frustrations that open source maintainers face, including the pressure to perform free work quickly and handling disgruntled users. This leads to the notion that vocal complaints represent a small minority of contributors.

  • Issue Management: When asked how maintainers prioritize issues and pull requests (PRs), Aaron mentions that it mainly depends on personal interest and face-to-face interactions with contributors at conferences, where urgency often drives action.

  • Organization in Open Source Projects: The conversation highlights how big projects often lack a stringent management structure. Maintainers focus on what they care about, leading to long wait times for PRs to be merged. Aaron notes the necessity of personal interest in projects and discusses how Ruby’s development is coordinated among individuals without a strict agenda, emphasizing the community-driven aspect of open source.

  • Community Dynamics: The discussion touches on the sense of community within the Ruby ecosystem, characterized by mutual support, beginner-friendly attitudes, and strong personal connections among developers. Aaron attributes this to a culture of mentorship and open communication within the Ruby community.

  • Encouraging New Contributors: Aaron emphasizes that newcomers should contribute to projects they already use, advising them to engage with the libraries or tools familiar to them. This approach fosters better contributions and makes the process less daunting for beginners.

In conclusion, the video illustrates the unpredictable yet rewarding nature of being an open source maintainer, emphasizing the importance of passion, community, and personal connections while addressing the challenges and dynamics within the field. Aaron's anecdotes about cheese-making intersperse the more serious themes, showcasing the personality that enriches the Ruby community.

Open Source Maintainer Interviews: Open Source Contributing (Part 1)
Aaron Patterson, Jonan Scheffler, and Rachael Wright-Munn • February 25, 2021 • online • Talk

For version 0.2 of Ruby Galaxy, we interviewed Open Source Maintainers ✨

Aaron Patterson (@tenderlove) is on the Ruby and Rails core team. He is currently working over at Shopify. He also makes a lot of cheese.

Hosted by Jonan Scheffler (@thejonanshow) and Rachael Wright-Munn(@ChaelCodes) 🛸

This was originally streamed on our Twitch channel where you can find our releases every last Thursday of the month (https://www.twitch.tv/therubygalaxy).

Interested in talking? Take a look at our CFP at rubygalaxy.io 🚀
We are always interested in talks of all sorts, whether you are an experienced presenter, or are looking for a great place to give your first talk ever.

Follow us on Twitter @therubygalaxy and visit our website at https://rubygalaxy.io/ 👽

Soundtrack for the game DojoKratos done with Game Boy. Available as CC-BY. Found on the Free Music Archive under Boss Splash by sawsquarenoise.

Background Space Video by Space Space from Pexels

Ruby Galaxy v0.2

00:00:07.279 all three voices are good we have audio
00:00:10.240 i sound fine can you hear that
00:00:14.400 yeah we did it yay
00:00:17.680 all right excellent this is exciting now
00:00:21.520 we have a stream and we can talk to
00:00:22.960 people and everyone and
00:00:23.920 they all did the emojis for us thank you
00:00:27.760 we're like fish in a stream they're made
00:00:30.080 like fish in a stream
00:00:31.840 and let the puns begin
00:00:36.559 well done erin aaron do you want to
00:00:38.960 introduce yourself
00:00:40.719 we should do introductions erin you go
00:00:42.879 first
00:00:44.480 okay hi uh my name is aaron
00:00:49.600 that was a really good you nailed it
00:00:52.719 i could tell that you've done this
00:00:54.160 before that was some expert
00:00:56.160 intro i'm gonna follow up hi all right
00:00:59.520 hi my name is aaron my name is aaron
00:01:01.359 patterson um i'm known on the internet
00:01:03.680 my my internet name is tenderlove
00:01:08.000 although on apparently on switch it's
00:01:09.680 tender love without an e
00:01:11.119 because somebody else took my name i
00:01:12.720 don't like
00:01:14.640 anyway um
00:01:18.000 what else i am on the ruby core team and
00:01:21.520 the rails core team and i work
00:01:23.360 at shopify doing ruby and rails score
00:01:26.960 stuff
00:01:27.680 that is what i do oh thank you i like so
00:01:32.640 someone says they like my chef's hat i
00:01:34.479 can't cult oh
00:01:35.759 kps kps
00:01:39.040 likes your chef hat thank you and your
00:01:41.920 video is out of sync but that is
00:01:43.520 technically impossible to fix
00:01:45.439 i will just pretend that's the case yes
00:01:47.439 this is some this is how streaming works
00:01:49.920 it's it's actually impossible to sync
00:01:51.520 video up to sound
00:01:53.680 we're having some technical difficulties
00:01:54.960 today we're just going to call it good
00:01:56.079 for now
00:01:57.680 aaron you commit to both ruby and rails
00:02:01.200 and some other things on this page here
00:02:03.040 and we're going to come back around and
00:02:04.000 talk about that for a second
00:02:05.280 but you also make a lot of cheese and i
00:02:07.840 think we should spend most of our time
00:02:09.039 talking about the cheese
00:02:10.640 yeah i do make cheese so i'm currently
00:02:13.599 making
00:02:14.319 i'm currently making camembert camembert
00:02:16.959 cheese
00:02:18.080 um and i just
00:02:21.599 like so so
00:02:24.800 it's kind of impacting my life right now
00:02:26.800 well it's impacting the family
00:02:28.239 family life right now because like it's
00:02:31.120 down
00:02:31.519 so it's downstairs i've got a our house
00:02:33.760 has central heating so we have one
00:02:35.680 like one heater that blows air through
00:02:38.160 the house
00:02:39.280 and i've got these curing fridges down
00:02:42.239 in the basement
00:02:43.360 and they're fairly close to like the air
00:02:46.000 intake
00:02:46.640 essentially and i have to flip these
00:02:49.120 cheeses twice
00:02:50.239 twice a day and like right now
00:02:53.680 they are particularly smelly so
00:02:58.400 whenever i open the fridge downstairs
00:03:02.159 the whole house becomes
00:03:05.200 cheese smell that's a nice question
00:03:09.280 i mean i enjoy it
00:03:12.400 but i understand how other people in the
00:03:14.640 house may not
00:03:15.760 enjoy i could see that
00:03:19.120 i could see that well um let's see what
00:03:22.319 cm gordon has to say here like we make
00:03:24.799 goat cheese it smells good though
00:03:27.760 because like i'm just i'm picturing just
00:03:30.480 like the smell
00:03:31.680 traveling throughout the house i'm
00:03:34.720 wondering does it ever get caught in the
00:03:36.159 filter and there's like a little bit of
00:03:37.440 a delayed release
00:03:38.799 it's just like lingering cheese smell
00:03:40.560 everywhere well
00:03:42.000 well when i went down i can tell you i
00:03:43.760 chafe i i flipped the cheese over
00:03:46.239 um time's at 11. i flipped it over maybe
00:03:49.760 90 minutes ago and i went downstairs
00:03:52.560 just now to get this hat and let me tell
00:03:54.480 you the basement it like
00:03:56.080 it still is
00:03:59.120 pungent cheesy yes
00:04:02.400 there is a pungent aroma rachel
00:04:05.920 would you like to introduce yourself
00:04:09.200 hi i'm gel codes i stream in the science
00:04:11.840 and technology category i focus my work
00:04:14.319 around
00:04:15.040 maintaining my open source repo hunter's
00:04:17.120 keepers which is used for managing games
00:04:18.799 of monster of the week
00:04:19.919 and i also play programming games it's a
00:04:21.600 lot of fun a couple of you here i
00:04:23.759 recognize and i'm so grateful to see
00:04:25.520 y'all here
00:04:26.400 thank you jonathan who are you
00:04:29.520 i'm jonah i took introduction classes
00:04:33.759 from aaron
00:04:38.000 i am the jonen show on the internet
00:04:41.199 and on twitch here and i have been
00:04:44.960 a member of the ruby community for i
00:04:47.520 don't know maybe 10 years
00:04:49.280 when i first came in i met a silly man
00:04:52.720 who
00:04:53.759 liked magic the gathering and puns and
00:04:56.080 eventually transitioned to making cheese
00:04:58.320 from making salami
00:04:59.919 i distinctly remember a talk about a
00:05:02.639 salami fridge that was well instrumented
00:05:04.960 with some raspberry pies
00:05:06.479 um i've known aaron for a while i've
00:05:08.320 been around in the ruby community
00:05:10.080 i don't maintain any major open source
00:05:12.320 projects
00:05:13.120 mostly i build silly robots and i talk
00:05:15.600 on the internet
00:05:16.560 but i know people who build things and i
00:05:19.520 am fascinated by the work that they do
00:05:21.120 and i know that they don't very often
00:05:22.560 get to share
00:05:23.680 the real life experience of of being an
00:05:26.240 open source maintainer
00:05:28.240 which i understand i'm just going to
00:05:30.320 just summarize real fast
00:05:32.479 people yell at you on the internet for
00:05:34.400 not doing free work
00:05:36.000 fast enough or particularly the free
00:05:38.000 work they would like you to have done
00:05:39.919 yesterday and then they rage quit your
00:05:43.199 project
00:05:44.000 well fine i'm gonna uninstall it i think
00:05:46.479 that's like a
00:05:47.600 effective summary is that pretty close
00:05:50.840 aaron
00:05:52.400 i mean yeah i guess i guess so like
00:05:54.800 there's there's some of that
00:05:56.160 but i don't know i'd say that's like a
00:06:00.319 vocal minority how's that that's good
00:06:03.199 vocal minority i think is a good way to
00:06:04.960 describe that i actually
00:06:06.880 i get the impression that by and large
00:06:08.479 this open source thing is working out
00:06:10.319 i think your career might be well on
00:06:12.880 track here
00:06:13.520 you are you worry that someday you might
00:06:14.960 have a hard time finding a job in
00:06:16.240 software
00:06:19.600 no i think i'll be able to find a job in
00:06:21.440 software hopefully yeah
00:06:22.960 i hope so i hope so
00:06:27.440 i think it'll be okay so
00:06:30.960 sometimes they gently guilt you about
00:06:32.800 not merging their pr
00:06:34.000 yes that so that resonates
00:06:37.440 that resonates a lot more than the rage
00:06:40.080 the rage quit thing
00:06:41.600 because like i what was it somebody
00:06:44.960 oh i don't remember his name one person
00:06:46.800 from the one person from the go team i
00:06:48.800 saw him tweet recently like
00:06:51.039 oh i just merged this like i just ran
00:06:53.840 into this bug i fixed this bug it was
00:06:56.080 two years old that's open source
00:07:01.759 which i think is more like that's more
00:07:05.120 i don't know i think that's like more
00:07:07.520 what it's like it's like oh i should do
00:07:09.280 this thing and then
00:07:10.319 it doesn't happen for years you're like
00:07:12.639 oh okay i did it
00:07:14.840 finally am i allowed to ask like serious
00:07:18.000 questions
00:07:18.800 yeah that's the goal the goal is well i
00:07:20.720 mean with aaron you're allowed to try i
00:07:22.960 should say
00:07:25.120 that's aaron's series on this one it is
00:07:28.160 kind of like a serious question because
00:07:29.759 there
00:07:30.000 are a lot of like repos that have these
00:07:32.960 very
00:07:33.919 long issue lists and like it's not like
00:07:37.039 it's not only specific repos it's it's a
00:07:39.039 lot of them like pretty much any
00:07:40.560 large open source project and they have
00:07:42.160 long lists of pr's like how do you
00:07:44.400 manage that workload and how do you like
00:07:46.720 prioritize which issues like you want
00:07:49.520 people
00:07:50.160 i have like a ton of questions around
00:07:51.440 this let's start with like how do you
00:07:53.039 prioritize like which issues to work on
00:07:55.440 and which prs to merge
00:07:59.599 oh my god
00:08:05.759 i think this is part of this is part of
00:08:07.680 the the problem of why
00:08:09.520 why we have ones that stay open for so
00:08:11.680 long it's like there's no
00:08:13.280 i don't know there's no like at least on
00:08:17.120 the teams i'm part of there's no like
00:08:20.240 we don't all coordinate we're like oh
00:08:21.840 yeah we gotta prioritize like this this
00:08:24.160 this
00:08:24.560 it's it's really up to individual i
00:08:27.520 guess
00:08:27.840 individual contributors to the
00:08:29.199 particular projects to decide which ones
00:08:31.120 that they
00:08:31.919 they prioritize so i think what happens
00:08:34.880 is a lot of it ends up being
00:08:37.120 um i don't know essentially
00:08:41.039 just like pet projects mostly stuff that
00:08:43.599 the particular maintainer is interested
00:08:45.360 in
00:08:46.320 uh but that's also why like matthew
00:08:48.959 brings up i don't know the nag
00:08:51.279 nag driven development which i think
00:08:54.800 it's like part of it too so like
00:08:59.279 i don't know i yeah that's
00:09:02.320 basically the way that i prioritize
00:09:04.000 stuff is whether or not it like if i'm
00:09:05.680 interested in it
00:09:07.279 so if it's something that i really like
00:09:08.640 working on um
00:09:11.120 or a very very good way
00:09:14.480 for me to work on a pull request is um
00:09:17.760 i'll go to a conference and then
00:09:19.680 there'll be somebody there and they're
00:09:21.120 like hey
00:09:22.480 i sent you this pull request why haven't
00:09:25.040 you merged it yet and like when it's
00:09:26.800 like face to face you're like
00:09:28.080 oh yeah i should have merged
00:09:35.600 and then it emerges so that's basically
00:09:38.880 the priority
00:09:41.920 or or actually also co-workers too
00:09:45.040 so if it's my free like if it's
00:09:46.959 something i'm doing in my free time it
00:09:48.399 has to be something i want to do or i'm
00:09:50.080 interested in
00:09:56.160 yes that is my priorities i hope that
00:09:58.560 answers the question
00:09:59.760 is it it does you have many projects
00:10:03.120 that you work on yeah you
00:10:06.240 across all of these you are just using
00:10:08.160 issues to manage all of that complexity
00:10:10.079 you don't have like a
00:10:12.000 your own internal asana jira
00:10:15.200 trello hybrid board that you have been
00:10:17.440 using to track this work
00:10:20.640 no but i do have one up here
00:10:26.320 i keep it all upstairs yes keep it up
00:10:28.959 keep it up here like
00:10:30.079 we use github issues and stuff for sure
00:10:32.240 but like um
00:10:33.680 i mean sometimes with the rails team
00:10:35.360 with the rails team will use
00:10:36.959 we'll use basecamp to plan some stuff um
00:10:41.120 with the ruby team we'll use redmine but
00:10:44.079 we also use issues and
00:10:45.760 issues and pull requests issues and pull
00:10:47.680 requests too
00:10:52.480 shame truth development is me to myself
00:11:00.880 yes i actually kind of have a funny
00:11:04.720 story about storing things in jira
00:11:06.720 so like ao3 as a project stores all of
00:11:09.040 their issues and everything that they'd
00:11:10.320 like people to work on inside jira
00:11:12.240 but they don't give anybody access to
00:11:13.760 the jira board
00:11:16.000 so you just kind of have to like guess
00:11:18.880 what it is that they want or email a
00:11:20.880 contributor and hope they add you to the
00:11:22.560 jira board
00:11:27.360 i kind of had a question though related
00:11:29.200 to organization
00:11:30.560 um i assume that you have like major
00:11:32.720 pushes and things that need to happen
00:11:34.320 like
00:11:35.120 ruby there's a ruby3 upgrade coming for
00:11:37.279 like reels and everything like how did
00:11:38.800 those get
00:11:39.360 coordinated and organized and chopped up
00:11:41.360 into little bits for people to handle
00:11:43.920 epic orchestra says did i hear a03 no
00:11:46.720 those words never left my mouth
00:11:54.839 uh rails project by the way
00:12:00.480 push towards the end uh let's see
00:12:04.160 so
00:12:08.320 it's kind of different um
00:12:12.320 i don't know i have an answer for that
00:12:13.519 but it's like not good
00:12:16.240 uh basically like so for
00:12:19.440 let's i'll talk about the rail or the
00:12:21.200 ruby team so
00:12:22.720 we have like essentially what happens is
00:12:26.240 mats will be like hey i'm gonna make
00:12:28.560 ruby three
00:12:29.360 three times fast or whatever and
00:12:32.720 uh he then he doesn't do any of the work
00:12:36.639 uh so basically like
00:12:41.920 it's it is what it is right like
00:12:45.200 it's like yeah basically it's up to the
00:12:48.800 rest of the team to figure out how to
00:12:49.920 make that
00:12:50.399 how to make that happen in particular um
00:12:53.120 but since like
00:12:54.000 since the team is like
00:12:57.360 i mean we have the team is just
00:12:59.760 different people from
00:13:01.120 all over the world it's i think it's a
00:13:03.760 lot harder to organize
00:13:05.839 into particular projects so like when
00:13:08.720 you're working together at a company
00:13:09.920 it's like okay we've got this
00:13:11.120 we got this project we want to focus on
00:13:12.880 we put together this team to do that
00:13:14.639 we don't have any like overall
00:13:16.720 management team in order to handle
00:13:18.880 a project like that so what ends up
00:13:21.040 happening is
00:13:22.160 a lot of the i think a lot of the
00:13:24.399 projects are
00:13:25.440 um it's maybe up to one or two people
00:13:29.440 like for example the raptor feature that
00:13:32.000 was put into ruby i think that's
00:13:33.600 basically all developed by koichi um
00:13:38.240 oh uh uh gc compaction was all
00:13:41.519 just me uh but
00:13:44.639 i don't know i think like i guess that's
00:13:47.760 basically the way it goes
00:13:49.680 um and we just have a push
00:13:52.720 towards like each person just pushes
00:13:54.800 their project forward until they can get
00:13:56.320 it done
00:13:57.519 um we're doing i think it's gonna change
00:14:01.279 a little bit
00:14:02.160 because like well
00:14:05.839 it'll kind of change a little bit
00:14:07.279 because at shopify we're doing a lot of
00:14:10.240 like we're investing a lot into
00:14:12.639 doing development on ruby so we actually
00:14:14.959 have a team of people that is working on
00:14:17.279 that are working on a particular feature
00:14:18.880 like we want right now one of the
00:14:20.880 projects we're working on is uh
00:14:22.560 a jit we're also working on a
00:14:27.360 doing some improvements to the memory
00:14:29.760 allocation and garbage collection
00:14:31.760 but we have particular teams working on
00:14:34.000 that though those teams are not part of
00:14:35.839 the ruby core team
00:14:37.279 what is the we have what's the new is it
00:14:39.760 a new jet
00:14:41.440 yeah yeah yeah yes interesting we're
00:14:45.199 yeah we're working on a j legit we call
00:14:47.519 it micro jit
00:14:48.720 that's what we're working on but this is
00:14:50.800 not part of the ruby core team itself
00:14:54.079 nope we're developing it independently
00:14:56.800 so we have
00:14:58.079 i i mean i'm on the team i'm helping
00:15:00.320 with it
00:15:01.279 so we're all working on it together and
00:15:03.199 we're focusing on that and then we're
00:15:04.720 going to like with the goal the goal is
00:15:06.720 to essentially push it upstream one of
00:15:08.480 these days
00:15:10.839 um that is i think that's the goal
00:15:13.920 but we're developing it as kind of a
00:15:16.320 research project
00:15:18.160 hitokidi wants to know how close we are
00:15:20.079 to strata
00:15:26.880 what is that what is strata he's a kitty
00:15:36.000 tito kitty's not going to tell us it's a
00:15:37.519 secret okay
00:15:39.440 yeah stratos is that kerry likes to make
00:15:41.600 anime jokes and stuff like that
00:15:43.440 i think this is that okay at first i
00:15:45.839 mistook it for stadia and
00:15:47.680 then i realized that it was a different
00:15:49.519 word when you said it out loud which
00:15:50.959 means that what i thought was the joke
00:15:52.480 in my head wasn't the joke in my head
00:15:53.839 but i promise you this is a different
00:15:55.279 joke
00:15:55.839 i'm sure it's a good one html over the
00:15:58.639 wire
00:15:59.680 hot wire oh hot wire yeah
00:16:03.759 yeah i have no idea yeah
00:16:08.079 it's good though we did it we nailed it
00:16:10.240 it's the third oh it's a real question
00:16:12.399 i'm sorry kerry yeah so strata is the
00:16:15.199 third portion
00:16:17.040 of hot wire
00:16:20.320 the the website wasn't hotwire it was a
00:16:23.440 news site
00:16:26.639 oh search engine what was hotwire this
00:16:28.720 used to be a thing
00:16:29.839 hotwire is the new thing um that's gonna
00:16:33.040 replace
00:16:33.759 like okay so you know how reels was like
00:16:37.279 okay we're going to integrate webpacker
00:16:38.720 and that's going to give us like cool
00:16:39.920 front end stuff that we can use
00:16:42.160 hotwire is the new version of that and
00:16:43.759 what it is is it passes around like
00:16:45.199 little bits of html versus like passing
00:16:47.199 around json and stuff
00:16:48.720 and it uses web sockets instead of http
00:16:52.160 and aaron is not interested i feel very
00:16:54.240 proud right now oh it's a travel website
00:16:56.720 it's also a travel website so it's these
00:16:59.120 two things
00:16:59.759 yes that's what it is hot wire i was
00:17:01.680 thinking hotwire.com
00:17:05.439 hotwire is a way for us to
00:17:09.199 kind of circumvent the need for
00:17:10.959 front-end frameworks to some degree
00:17:13.280 allowing us to just use html and css as
00:17:15.520 we would expect
00:17:16.480 but still have very fast responsive
00:17:19.199 websites without
00:17:20.480 a single page application structure
00:17:24.000 and book flights at low low prices and
00:17:26.799 you can
00:17:27.360 book flights at low low prices
00:17:30.720 i want to go to hotwire.dev and show
00:17:33.120 people that thing
00:17:35.280 can we go back to the coordination piece
00:17:37.039 first of all matthew d has a great
00:17:38.640 comment on this which is there's less
00:17:40.000 coordination than a lot of people expect
00:17:41.760 and the truth is that the content of a
00:17:43.200 release is 90
00:17:44.320 just whatever gets merged before someone
00:17:46.000 decides to release is overdue
00:17:48.160 i i have feelings about this as like
00:17:51.280 somebody who uses
00:17:52.559 and somebody who contributes but i'm
00:17:54.400 curious about what the experience is for
00:17:55.919 somebody who
00:17:56.880 maintains right like you don't have a pm
00:17:59.919 you don't have somebody telling you this
00:18:01.440 is the next task you will work on you
00:18:03.200 must do this you must do that it must
00:18:05.200 meet these guidelines
00:18:06.640 as a developer how does that feel
00:18:11.919 liberating yeah
00:18:18.320 it feels it feels good i mean okay so so
00:18:21.360 like
00:18:23.520 a lot of the stuff so a lot of the
00:18:24.960 changes we make to rails
00:18:26.720 or a lot of the changes i like to make
00:18:28.400 to rails are basically derived from our
00:18:30.880 application i do a lot of like
00:18:32.480 performance-based stuff
00:18:33.919 so most of the things i focus on are
00:18:35.600 like how can i make it faster
00:18:38.240 uh so we'll find like bottlenecks or
00:18:40.400 whatever in our application i'll push
00:18:42.000 those in to push those into rails what's
00:18:44.799 nice about rails is we don't have a
00:18:46.320 particular
00:18:47.120 release schedule like i think we try to
00:18:49.919 release around
00:18:51.039 rails cough but it doesn't always happen
00:18:53.760 so
00:18:54.720 like whatever we can get in whatever i
00:18:56.400 can get merged in before we cut that
00:18:57.919 release is good
00:18:59.440 um same thing with ruby
00:19:02.480 although it kind of like the downside
00:19:04.640 with ruby is we have a pretty strict
00:19:06.400 release schedule which is christmas
00:19:08.160 every year
00:19:09.120 so if you don't get it in before
00:19:11.120 christmas it doesn't go in until the
00:19:13.200 next year
00:19:14.400 where rails we could and have had
00:19:17.120 multiple
00:19:18.320 fairly major releases per year
00:19:22.320 so when you're deciding what to work on
00:19:23.919 it's just up to you to pick it out of
00:19:25.520 the
00:19:26.240 the crowd you get to kind of follow your
00:19:27.840 curiosity but at the same time then you
00:19:29.280 don't have anyone
00:19:30.559 in a role that's organizing the work
00:19:32.160 across team have you worked on a
00:19:33.760 an open source project where someone
00:19:35.200 existed in kind of a pm role because you
00:19:37.200 there are
00:19:37.679 plenty of people who work with
00:19:39.039 documentation and kind of like a
00:19:41.280 a release coordinator you have someone
00:19:44.080 in charge of the release every time you
00:19:45.679 do a release with rails right
00:19:48.080 yeah but they don't say so we have a
00:19:50.400 release like we have release managers
00:19:52.320 but they don't particularly say what
00:19:54.160 is um what's going to be in that like
00:19:57.600 if we're doing a major release they
00:19:59.200 don't they don't define what is in that
00:20:01.039 major release
00:20:02.000 like we define that as a team okay the
00:20:04.640 the um
00:20:06.480 release managers we have they're more in
00:20:08.559 charge of like what go
00:20:10.159 what goes into um like bug fix releases
00:20:15.039 so it'll be like oh hey we got a bug
00:20:17.039 fixed we got to backboard this so
00:20:18.480 they'll make sure that the back ports go
00:20:20.240 through and that we actually ship
00:20:21.760 ship that version that and that like
00:20:25.120 i think that's basically just raphael on
00:20:27.120 the rails
00:20:29.120 as if somebody does all that yeah as
00:20:31.840 with all of it yeah
00:20:34.240 because like doing the release doing the
00:20:36.240 release is not fun because as soon as
00:20:37.760 you release it somebody complains like
00:20:39.440 yeah
00:20:39.840 just it just that's life you broke my
00:20:43.919 windows 3.1 vm that i'm running on
00:20:46.640 solaris
00:20:47.360 yeah that's tough so what do you um
00:20:50.720 we have a question from oh i'm sorry go
00:20:53.120 ahead rachel
00:20:54.720 thank you i need to issue a correction
00:20:56.400 so hotwire is a base camp project it is
00:20:58.799 not a rails project
00:21:00.400 yes
00:21:05.760 has something to add on to that which is
00:21:07.120 i wrote a twitch overlay app in
00:21:08.960 24 lines of js i saw the original
00:21:11.840 version of this app and it had
00:21:14.000 significantly more lines of js in it
00:21:16.080 it's actually pretty cool it's like a
00:21:17.280 question app that like shows questions
00:21:18.880 on the screen
00:21:20.000 maybe you could help me level up my game
00:21:22.240 here with the uh
00:21:23.520 the screen sharing from zoom plan of
00:21:26.080 streaming is not working out great today
00:21:28.080 we had a bit of a last-minute shift into
00:21:31.039 who was responsible for producing this
00:21:32.640 stream and when these things fall to me
00:21:34.000 they go more poorly
00:21:35.200 um than some might expect but so uh
00:21:38.960 my question oh i wanted to point out too
00:21:40.960 that like though hotwire is a basecamp
00:21:43.200 project that should not stop you from
00:21:45.039 emailing or tweeting at aaron
00:21:46.880 about hotwire to get your bugs fixed
00:21:49.120 please
00:21:50.480 i could i could provide you with aaron's
00:21:52.400 home phone number if you'd like to call
00:21:53.840 him
00:21:54.480 um he'll let him go now i'm just going
00:21:56.000 to give you deals on on flights
00:22:03.360 flights that you can't fly right now
00:22:06.400 apocalypse says wow everyone seems to
00:22:08.640 know each other here i feel like the
00:22:09.600 whole ruby community is here
00:22:10.799 all 30 people that's a good joke that we
00:22:13.919 have a huge community
00:22:15.200 um of people who actually know each
00:22:16.880 other really well i
00:22:18.240 um i think that i i misread the all 30
00:22:20.960 people
00:22:21.440 they were saying all 30 people here all
00:22:23.200 know each other which is actually true
00:22:25.600 um
00:22:26.159 i think the ruby community as compared
00:22:28.000 to a lot of communities
00:22:29.360 is inordinately tight like there are a
00:22:31.120 lot of people who
00:22:32.640 um have described the ruby community as
00:22:34.559 the most welcoming community
00:22:36.000 that they've joined uh it certainly has
00:22:38.159 been my experience i think it's not a
00:22:39.520 fair comparison in my case because i
00:22:40.960 joined
00:22:41.919 early on in my career it was my one of
00:22:43.919 my first languages
00:22:45.200 but i want to actually hear from you
00:22:48.880 i think that you're a huge part of why
00:22:51.520 that's true like
00:22:53.120 i have a hard time even describing the
00:22:54.720 ethos that is tender love right
00:22:56.480 but like there is something about you
00:22:59.360 and the way you operate in the community
00:23:00.799 and the way other people who
00:23:02.400 feel a similar role for us operate that
00:23:04.799 makes it by far one of the most
00:23:06.159 welcoming communities i've ever been in
00:23:07.520 i wonder if you can just speak to that
00:23:08.640 for a moment
00:23:11.760 hmm
00:23:15.360 now i feel like i have to be mean to
00:23:16.799 somebody yeah like we have to dog on
00:23:19.120 another community not even that
00:23:20.799 i think that it's just is it the hat is
00:23:23.679 that why people like it
00:23:25.919 i don't know i don't know i think
00:23:29.600 i think probably the ruby community is
00:23:31.919 like um
00:23:36.000 what it's small enough that we still
00:23:37.600 have it's not
00:23:42.320 it's not as corporate as say like maybe
00:23:44.960 a java community or something we have a
00:23:47.039 good community of hackers
00:23:49.039 and fortunately our community of hackers
00:23:52.159 likes to teach each other new stuff so
00:23:56.000 at least i do anyway it's a lot of fun
00:23:58.480 like
00:23:59.520 for me in particular i like to show
00:24:00.960 people i don't know i like to work on
00:24:02.640 stuff and tell people about the things
00:24:04.000 that i'm working on
00:24:05.200 so so that they can do it too uh
00:24:09.120 also because like one day i'm one day
00:24:12.400 i'm not going to be part of the ruby
00:24:13.840 community
00:24:15.840 that's not possible i mean i mean one
00:24:18.400 day
00:24:18.960 like one day i'm gonna die right like
00:24:20.640 it's gonna happen and somebody else will
00:24:22.480 have to do it
00:24:23.200 so we're all doomed
00:24:26.400 i wonder yeah exactly
00:24:29.760 i wonder if there's like okay i was
00:24:32.480 gonna start with one thing but now i've
00:24:34.000 got like three different things that i
00:24:35.600 think
00:24:36.080 can like kind of push ruby right like
00:24:37.840 there's the keeper be weird aspect of it
00:24:40.320 then there's the fact that ruby as a
00:24:42.080 language was designed
00:24:43.520 to like help promote developer happiness
00:24:47.600 and then there's also like maths is nice
00:24:49.279 so we are nice so that's like
00:24:50.960 three like pillars of the language or
00:24:53.520 pillars of the language community
00:24:55.520 that are kind of driving it towards that
00:24:57.520 like cozy happy beautiful feeling that
00:24:59.919 ruby always gives me
00:25:02.159 and i think the sunglasses help i think
00:25:06.080 between the sunglasses and the hats
00:25:09.360 it's it is a much less corporate
00:25:10.960 community it's much warmer i think like
00:25:13.039 from a
00:25:14.640 open source perspective
00:25:18.159 that might work to our detriment
00:25:20.240 sometimes
00:25:21.279 that as a community like i know that
00:25:23.919 other languages have major corporate
00:25:26.880 involvement in a lot of their things
00:25:28.960 we've got shopify and github
00:25:32.240 really like actively contributing to our
00:25:34.720 projects
00:25:35.279 and and dumping money on us but
00:25:39.039 when you think about like the teams that
00:25:40.480 exist that work on
00:25:42.480 python development inside of google
00:25:44.480 right like
00:25:45.919 maybe if maybe there's an advantage
00:25:50.000 to being more corporate
00:25:54.799 ah yeah i guess i mean there's more
00:25:57.840 money
00:25:58.559 right yeah is that the goal i don't
00:26:00.559 think so i don't think it is for me or
00:26:02.320 for rubyists kind of i feel like it is
00:26:04.400 just kind of this hacker collective
00:26:08.840 well
00:26:10.320 i think about here like i don't know i
00:26:12.559 don't know that it's bad
00:26:14.159 i can't i can't say in particular that
00:26:16.400 it's bad necessarily to get more
00:26:18.799 get more corporate sponsors or more
00:26:20.400 money behind it
00:26:21.840 i mean i think
00:26:24.960 because like if you look for example if
00:26:26.640 you look at the linux kernel
00:26:28.159 like linux kernel development there's
00:26:29.840 tons of i
00:26:32.159 i think that might be considered
00:26:33.520 corporate maybe because there's tons of
00:26:35.760 companies behind that thing
00:26:37.520 yeah and if you try to contribute to the
00:26:40.320 linux kernel
00:26:41.520 like we we've all heard
00:26:44.720 stories about that so
00:26:47.760 uh i don't know i don't think that i
00:26:50.240 don't think that happened i mean that
00:26:52.159 that type of stuff definitely happens in
00:26:54.080 the ruby community just not as
00:26:55.919 i don't think it's as frequently yeah so
00:26:59.039 i think we we try to i mean
00:27:03.120 i know i try to like
00:27:07.120 target folks who are new to programming
00:27:10.320 or
00:27:10.640 new to the community and try to
00:27:12.799 essentially try to make a
00:27:14.159 welcoming environment so
00:27:17.440 i don't know i mean i don't know if it's
00:27:21.679 i don't know what makes a community what
00:27:23.840 it is
00:27:25.200 yeah i think if
00:27:28.720 i think there's there's we're having
00:27:31.200 worked in community for a long time
00:27:33.120 right this is effectively my job in deaf
00:27:35.120 rel is to figure out how communities
00:27:37.600 work and grow i kind of agree with you
00:27:40.880 there is something mysterious there's
00:27:43.120 like this this
00:27:44.880 x factor that is real hard to pin down
00:27:47.120 but i think it has something to do with
00:27:49.440 exactly people like you aaron that that
00:27:51.919 you go to a conference
00:27:53.440 i've watched you try to walk across a
00:27:55.200 conference hall with
00:27:56.640 with a podcast so comfortable right now
00:27:58.640 erin yeah
00:27:59.760 this is a very serious like when you go
00:28:02.399 to a conference and you go walking
00:28:03.520 across the conference hall you will get
00:28:04.880 stopped
00:28:06.159 over a 50-foot distance 50 times for
00:28:08.960 someone to like have a conversation and
00:28:10.559 you will stop every time
00:28:12.960 every time i think it's i think it's
00:28:14.720 just important to set a good example for
00:28:16.559 other people in the community
00:28:17.919 like that's basically like that's
00:28:21.039 basically it
00:28:22.559 i don't know i mean i will i like being
00:28:24.480 around so personally i like being around
00:28:26.640 nice people
00:28:27.520 yeah it's more it's more fun
00:28:31.600 right yeah yep yeah
00:28:35.360 so that's i don't know basically that's
00:28:37.600 something i want to encourage
00:28:39.120 yeah i'm sold
00:28:42.480 so all right yeah in in that vein then
00:28:45.760 if we want to help new people get into
00:28:48.080 working on open source should you think
00:28:51.600 they should jump into the kernel or they
00:28:53.279 should start maybe on a different
00:28:54.799 project
00:28:56.320 uh i think it depends on what you do i
00:28:58.720 think like the best place to start is
00:29:00.720 where
00:29:01.200 stuff that you're already working with
00:29:02.960 so if you're doing web development then
00:29:05.200 start with
00:29:06.080 you know start contributing to rails or
00:29:08.799 i don't know maybe
00:29:10.559 any of the like gems that you're using
00:29:13.760 uh just something that you work with day
00:29:15.279 to day because you'll have more
00:29:16.640 familiarity with it
Explore all talks recorded at Ruby Galaxy v0.2
+1