 Thank you so much for coming. We've got a really great panel of people who have some wonderful information to share with you. We all know, so we're here today to talk about developer happiness. And we all know that the best way to make developers happy is kittens, right? Very, very cute kittens. So we have to include some kittens. But beyond that, we can get involved in our community and giving up your time to do a great thing for somebody else is a really awesome way to keep you happy and keep you from burning out in your job. I'm lucky to have these wonderful panelists to give us some information about how to get started. So I'm Polly Shandorf. During my last week of boot camp, I went to an event called Ruby for Good. And it's a three-day sort of retreat. And we work on projects for nonprofits during the day. And then we have dinner together. And in the evenings, we play games, we meet people, we build community, we find mentors. That's where I found my mentor. And it's just a really amazing place to be. And so I met some of these people through Ruby for Good. And I was really excited about that experience. I've gone several times this year. I'm actually going to run a project. And it's just something I feel really passionate about. And I wanted to share it with some of you guys. So I'm going to have the panelists introduce themselves. Hello. I'm Terri and Cossack. And I met Polly at Ruby for Good and also Sean and some other people, I think, here from Ruby for Good. I work for GitHub. And other ways that I get involved are, I'm a co-organizer of Django Girls in Portland. And what else do I do? I write intermediate programming workshops, like one that's coming up later today. I'm Sean. I organize at Ruby for Good thing. But this isn't just a Ruby for Good panel. I work for the government. I try to make things better for the government, despite the new person in charge. Hi. Whoa. Whoa. Hi, I'm Sarah. I have actually no connection to Ruby for Good at all. I've never been. It's been on my list of things to do for years, and I've never actually been to it. Maybe next year. This year it's during the last week of school for my kids. So it's always something. No connection yet. Right. I am the chief consultant at DevMind. And my nonprofit work tends to take the form of this conference and RubyConf. I am part of the organizing team for that. And I also, in 2009, founded an organization called RailsBridge, which was one of the first groups that started to do workshops aiming to get women and other sort of underrepresented folks into the Rails community through workshops. And so since then, there's been a lot of other groups that have taken that model and done really interesting things with it, both within the Ruby community, like with Rails Girls, but then also outside of the Ruby community. So for example, the Django Girls is a similar idea. There have been similar ones for like JavaScript and so on. And recently, we formed an umbrella organization because if you're a developer, you don't really want to figure out how to be a nonprofit organization. You just want to do a workshop, right? And so now we've got an umbrella organization. So now we've got, like, GoBridge and MobileBridge, and we just did our first ScalaBridge. So we've been trying to help other communities take that model and do that also. So now we're going to chat. I just have everyone's names up there so we can remember. So Sarah, can we start with you? And can you give us all some advice on how do we figure out something to get started with? I mean, yeah, so it's a really interesting question. I think that for me, I wanted to create the workshop that I wish had existed a couple years previously. So I was coming back into the workforce after my daughter was born. And I had been a Java developer. And I had a couple of years gap on my resume and suddenly no one would interview me. And I was like, oh, wouldn't it be awesome if there was a workshop where I could direct all of my mom friends that are in very similar situations once they get to the point where they want to work again so that they could update their skills and then they could come back into the workforce and do this hot new thing. And so that's where RailsBridge basically came from for me, was like, I want this to, I wish that this had existed two years ago. So I think I want to make it now. And that's where a lot of the motivation for my stuff comes from. Sure. I'd like to say, too, that it's really easy to get involved. If you're in a boot camp, you have the skills right now. We've worked with a lot of nonprofits. And generally the kind of things we're building them are just really, really simple crud apps. We're replacing processes that are being down on pen and paper and just horrible processes. Like I could tell stories that would just make your heads all shake. So as far as getting started volunteering, my experience coming out of college and really, really wanting to get involved in getting more women and other underrepresented folks into tech, I just went to a million meetups and asked people who needed help. And that was a little too much initially. But I went to all those meetups. I found out the things that I liked doing and the things I did not like doing and did more of the things I liked and lots of the things I didn't like. I think that's a really good point. So finding things that spark your fire and get you excited are really good ideas. So Tyrion, have you ever experienced some obstacles getting involved in something that you were excited to get involved with, but then you came across some obstacles and what did you do? I guess obstacles, the first groups that I got involved with were mostly dealing with getting young girls interested in tech, which I really care about. But I realized after doing that for a couple of years that I do not have the energy level for getting little girls into tech and keeping them away from scissors and all that fun stuff. So that was kind of an obstacle. Ultimately, now I work with grown women who know how to use scissors. So an obstacle or a learning situation, I guess, is what I would call that. Yeah, I think for me, so I started out in my volunteer work by doing, working with an organization that does a summer camp for high school girls. And it was really rewarding in some ways, but then on the other ways, they wanted me to write a curriculum for a class and then, again, in a similar situation, it was like high school girls are their own species, I feel like, almost. And I almost have one, so yeah, that's gonna be exciting. My daughter's 11 right now. And I found that there was a lot for me to learn just about dealing with kids. At the same time that I was trying to learn about how do you teach technical topics? Because I had not done that before either. And so I kept at it for a while because I felt like I was sort of obligated to or because I said I would. And then I just started getting less and less out of it and then eventually just decided, you know what? I should probably just let someone do it who's got, who wants to do this, right? Who's got the energy and the drive to specifically do this and they're gonna be way better at it than I am. So Sean, we have heard a lot about Ruby for Good and how awesome it is, but it's sold out for this year. And so if people wanna do Ruby for Good, they have to wait all the way until next year. So do you have some ideas for other things that people can get involved in? So you can get involved remotely. Like we have, like if helping nonprofits, this is the kind of thing that does float your boat. Hop on our SOC channel. We have, or go to our GitHub page, just look at all the issues. We tag them help wanted and try and tag them as well. Like newbie, good first commit and jump in there because yeah, like in all our stakeholders, we try and get them in their commenting as well. So you'll see Rachel from the diaper bank saying like, hey, is this possible? And it's just really wonderful and fulfilling to, you know, getting that direct interaction. I think Teri has an idea too. I do. I think you're referring to what I think you're referring to. There is a Python offshoot of Ruby for Good happening in Portland in July. I can't remember the website. I think it's codeforgood.io. So that's happening soon. I think that's what you were talking about, I'm not sure. Okay. So sometimes when you get started in something, it's a little difficult to figure out how much commitment is involved and how much time you might have to dedicate to it. So Sarah, do you have any tips for sort of up front trying to figure out what level of commitment is gonna be required? I think that, so one thing that I found helpful in the number of the groups that I've worked with is that they have these things like you were saying that's like good first commit or like easy thing to start with. I find that really useful. What it says to me is not necessarily that like I wanna do that thing, but what it says to me is that they've thought about which pieces of work they could sort of break off and give to someone who's new, which I think is a thought process that a lot of groups, a lot of times, don't really go through. And at RailsBridge we've been, we've tried hard to have a revolving door, meaning like if you're a student this time, we explicitly encourage them to come back the next time as a TA. And as a TA, you don't have to teach the class. You're just sitting in the class with the instructor and your role is just to provide another voice, another interpretation, another way of thinking about the concept that they're trying to work on. And we found that to be incredibly valuable just because a lot of times the folks who come back the very next time as a TA are, they're closer in mindset to the people in the class than the instructor is. And so they can offer a perspective so that the teacher can't offer anymore. And so we tried hard to make that a fairly low commitment deal, right? You just show up for the day and you sit in the class and you sort of comment on things. And the teacher may ask you to give your perspective on things once in a while. And so we try and have this sort of ratcheting up level of commitment as you want to do it. And I also think it's okay for you to come and go in a project, in volunteer work in general. Sometimes I have a bunch of room for it in my life and sometimes I don't. And so I go through cycles for sure of like, I'm really involved, I'm on the board, I'm going to every meeting. And then there'll be six months or a year where I'm just like, okay, y'all can handle this for a while, right? Because I've got a kid in middle school or something like that, something will happen. And I think that it's a lot like an open source project, a lot of these things, and that we do need to be cognizant of people's waxing and waning availability and energy and interest in helping. And so I think that if you've got a group that has thought through that, and a lot of the times these groups that are run like open source projects because open source has already sort of gone through that thought process, a lot of times that that does actually exist. And so for me, it's a process of like sort of looking for these levels that they've set up. I think that's really good. And like being honest with yourself with how much time you actually have. And I recently went through a situation with a group that I volunteer for and I'd volunteered to help run a class and it kept getting delayed and then it was running into other things I had volunteered for. So at some point I had to say, you know what, I'm not gonna be available to do this for this time, maybe I can do it next time or something like that. And so I think being honest with yourself and then just being really open with other organizers of the thing that you're doing is really helpful. I'd also add like lean on your community. Like we have probably the best community out of any like DHH talked about that. Like the Ruby community, the Rails community just full of awesome people. And so like if it's an open source project like ask the person maintaining it like, you know, is this too hard for me? Can I do this? This is my skill level. If you wanna build something for someone, you know, go to a meetup, ask people like, hey, I'm trying to figure out how to build this. There's a lot of helpful people and everyone's gonna help you. Also sometimes it's good to pick the thing that's too hard and then find someone who will pair with you and then you can learn and it's like a win-win situation because you're helping someone, you're learning, you're growing and you're developing a mentor relationship so it can be helpful all around. I just wanted to add a thing about through Django Girls we really try to push, not like show but like encourage people who just went through the tutorial that they should become TAs like Sarah mentioned at the next workshop and there's a lot of reluctance there but people who are very close to like the beginning of learning a program are often the best resource because they know what it's like to be a beginner and they might, they're less inclined to be like why don't you know this, like don't you know what Stack Overflow is? So that's like, our teaching especially is a really great way for someone who's starting out in tech to get involved. The first time that I did a real spiritual workshop was the first time I'd ever really taught anybody programming and we went along for about 20 minutes before one of the women in my class was like, can I ask a dumb question? I was like, sure and no question is dumb, blah, blah, she's like, what's a variable? And I was like, well, it's a thing in your program with a name and that was pretty much the quality of my explanation but fortunately there was another person in the room who had more recently, you know because at that point it had been 20 years since I had processed what a variable was and I just couldn't really undig it out from underneath everything but the person in the room who was more recently become a programmer was able to just be like, okay, so imagine you're in preschool and you've got a big wall of cubbies and one for each kid, right? And like what it is is you can put different things in it and I was just like, wow, that's a great explanation actually, that's really cool. I didn't resonate with the people there and so I learned a bunch about how to teach these things just based on listening to other people explain it. Cool, so our next question is for Terian, you can get us started. How do you recognize when it's time to take a break and why is that really important? I feel like this doesn't really apply to programming specifically but in your life when you're doing something that makes you unhappy you should probably stop doing it and that sounds really obvious but like I feel like as programmers and people who wanna help it's hard for us to take that step back and you can see like okay, this is not good for us but I think someone mentioned already that like you can take a step back from open source and the community and it will continue to survive without you and you can always come back. I also feel especially as programmers, we're under a lot of pressure, there's always something new to learn, new JavaScript framework, new language, new everything and you see those charts of what it takes to be a full stack developer and it's like all these interconnected things and it can get pretty overwhelming and we put a lot of pressure on ourselves to feel like we have to know all these things but I don't, I think it's good just to disconnect, read a book, read a lot of books and yeah, like Terian said. I think that it, one of the things that's been interesting for me is to figure out that there's a lot of different ways to help and that some of them I'm better at than I am at others and the ones that give me, and over time, I think especially because it's not, oftentimes there are issues with our job or on a project we don't like, like things are making me grumpy, like work is sort of taking energy out of my life and a lot of times the volunteer work I do is part of what puts that energy back, it's part of what gets me interested again just in tech in general and keeps me going when parts of my life are draining energy which happens at any job, right? There'll be periods where that'll happen and one thing that it took me a while to figure out though is that like that drain can go the other way. If I'm working on a volunteer project that is not giving me energy, there's always gonna be periods where you're like, okay, I'm just gonna go through these 8 billion issues and like tag them all or whatever but I think that overall it's good to sort of assess once in a while, like is this work that I'm doing still feeding into that energy cycle in a positive way or does it feel like it's draining? Oh, I was just reminded by what Sarah was saying by DHH this morning talking about the Juicero and how there's an element of Juicero work and everything that you do and I feel like that's often less so in community involvement so you can go to work and work on your juice robot and then volunteer and know that okay, I'm helping someone's life become better and that's very useful. So, Sean, can you talk about some of the benefits to the person themselves or to their career maybe? So I'm a big proponent of, yeah, the benefits of getting involved and stuff like this and I think the most tangible one is it's open source and whether we like it or not kind of GitHub is our resume now and so, people laughing, but it's true, you know, like you, well, to an extent, like you're gonna go, you're gonna apply for a job and like if you're just out of boot camp or something, you know, this is something tangible you can point to that they can look at because it's really hard to get value from, you know, doing the coding Fibonacci or something with someone and, you know, if you've actually built something that they can look at and you can talk about, you know, like you're, sorry, it's disagreeing with me. But like, if there's real code you have out there in the world and people, you can have a conversation with someone, but I think... I do think that it is really useful, especially as you're starting out, right, to have some stuff up on GitHub that is not programming challenges or school, you know, boot camp projects and things like that. I do think, though, that we tend to overvalue code contributions just in general in terms of when we talk about volunteer work, when we talk about giving back, when we talk about public personas. I remember that we used to do a thing called the Ruby Heroes Award and one thing they would do is they would put up everyone's GitHub contribution graph of the people that won the award. And typically it was all green, meaning like they had contributed all this stuff to all these projects and that's super cool. And then I won one and they put up my GitHub contribution graph and there was like one little green square on there for like the last year. And you know, we don't necessarily have ways to measure sometimes the impact of the work that people do outside of contributing code. And I know that GitHub is thinking about this and I don't know, who knows, you would know better than I do. Yeah, why don't you take over at this point and you can back with that. Now this is like outside of the realm of GitHub at this point because everyone uses it, but GitHub does not want you to treat your contribution graph as like a measure of your worth as a human being. It's supposed to be like a fun little game or like oh look at the line of green squares but it's like gotten out of hand. So Sarah, you talked a little bit about contributing to projects that are draining you instead of fulfilling you. So what do you do when you get involved in a project and it's just not a good fit anymore? I mean I think that a lot of projects are used to the idea because we all are coming from this open source world, we're used to the idea of like contributors are gonna come and go. And the project itself needs to be resilient to that movement. Just like our projects at work need to be resilient to turnover, right, in the same way. And I think that there's certainly been occasions when people will just sort of drop out and just stop showing up in the Slack channel and stop returning emails and stuff. And I generally tend to take that as a sign that they're just overwhelmed. That I let it get to the point without checking in with them that they got overwhelmed. So I don't tend to think that they're like bad people or whatever but I tend to think that they're, they just got overwhelmed and they couldn't handle it anymore and they checked out. And so I try to check in with people as a result of that and be like, hey, so how does this feeling for you? Do you want, are you enjoying what you're doing? Do you want to do something different? I think that more and more projects, people that run these projects are in that boat, right? So they're gonna be pretty sympathetic to being like, hey, I'm overwhelmed right now. I can't really take this on. I'm having trouble keeping up with whatever it is. I would love to just hand this off and do a clean handoff and if you find someone and you want me to sit with them for a couple hours and I can show them what I do or whatever. But I think that most project maintainers I feel like both in sort of open source code related things but then also in teaching and other things are not necessarily expecting you're gonna stay forever. But I think it's just like anything else it's a communication cycle. Yeah and I think a lot of times I'll be grateful to hear like okay, you're overwhelmed. You didn't just disappear on me and you've had enough notice to try and find someone else. So we wanted to make sure we left enough time if you guys have questions. So are there any questions? I have some more questions if you guys don't want. You can ask us anything you want. Okay, so the question was where do you start when you're in a community that's not obvious where to start? So I recently visited my college which is in the middle of Iowa and there's not a whole lot of tech going on there. So I told students there if they wanna get more involved in programming stuff that there's lots of things you can do remotely because they're college students and care a lot about video games. But for the most part I've pointed them at like mobile game jams and things of that nature but there's also non-video game things like that. I also think you might be surprised if you held a meetup. In the DC area we scheduled a meetup for out in the Eastern Shore of Maryland which was like 200 miles away just to hold a meetup with a friend of ours who lived out there. And so it was like the meetup was coming to him rather than him coming to the meetup. But like the strangest thing happened because we held a meetup out there and it showed up on meetup.com all these local people just showed up too. So you may be surprised that there's a lot more people nearby than you suspect. Especially with so many people working remotely these days I think that a lot of times there may not be an explicit community in a rural area but I'll bet you there's probably at least a couple of folks hacking on code working from home. And sometimes they are super excited to like you know if I have a friend that lived for a while in Eastern Washington and she would go to meetups for basically any technology even when she wasn't working with necessarily because she just wanted to like hang out with other tech people and like bounce ideas off them in general. And so it can be illuminating to try and have a tech meetup and see what happens. You may pull some people out of the woodwork that you weren't expecting. Or you might find in your community that there are people who are interested in learning Ruby and Rails. So you might even if it was a small thing even if you like had a small workshop and then you could introduce some people to this whole new like career and they might have some interest. When I checked in here the other day the last night at the hotel the gentleman behind the desk was like I'm really interested in this coding thing. And so he like really wanted some more information about that and I think that exists everywhere and so that's an opportunity. And then also just getting involved in volunteer work like in whatever capacity. So I volunteer at a food pantry and a soup kitchen and they have this like crazy Excel spreadsheet database like keeping track of things and they hand count things. And so we're doing a project this year at Ruby for Good for the soup kitchen that I volunteer for but I'm sure if you got involved in some sort of volunteering role you'll quickly find that they don't have money to like buy apps and things to make their process better and easier and faster for all the volunteers they have. So there would be a huge opportunity there and then maybe you could recruit some people in your community or even remote to do something for something that's like local in your community. Okay, so the question was how do you recognize the people who are in your group? How do you give back to them and recognize them for contributing? Hugs, lots of hugs. Oh, swags too. Yes, so at Ruby for Good you'll see me chasing people down to hug them and that's a joke. You know, I think this is something that we have not done a great job at with some of the organizations I've been a part of. I think because maybe we come from, most of us come from a programming background and not so many of us from kind of a nonprofit administration background where that kind of stuff is more universally understood that it is necessary. So but some of the things we've done is like we've printed special t-shirts for people. We've made like little necklaces with the RailsBridge logo on it for our board members. We gave people hoodies if they were, if they taught, I forget what it was, it was like teach five workshops and we'll send you a hoodie kind of deal. And but I think that like that is definitely an area in which most of us could use help because I think that, you know, that cycle of like we appreciate you, we know you're doing this and you don't have to. I think it's important and it's a loop that we should learn to close better. I had a similar sort of experience from Django Girls where we've had almost five workshops and I wanted to recognize people who have coached it one, two, three, four workshops and so we didn't have the budget for hoodies or anything cool like that. So we bought floppy disks and painted them like gold, silver, bronze with a different like number of times people volunteered and like put rhinestones on them. That's our thing, rhinestones. Yeah, I would actually like that better than a hoodie. You can't wear it. But people seem to really love them. And then also like the blasts of a physical manifestation of your appreciation, just like reaching out to people and like, hey, I really, really appreciated you helping us so many times or often like, I noticed you didn't apply to be a coach this time. Is it, so you have something going on in your life or you're like worried you didn't do great because you did great. So there's like, I think little things like that are really great. So Chris is giving a talk on organizing. He's gonna do a panel talk on organizing and so I would highly recommend going to that. That doesn't mean you guys can't answer the question but they'll be, they're gonna go way more into depth on sponsors and organizing and all that sort of stuff. So I think that would be a great resource for you. What was the question? Oh, sorry, the question was how do you manage, if you do get people to come to a meetup, how do you manage the meetup? I think the interesting part of that question for me is what's the difference between managing folks on a team for work, for pay, and the difference between managing it, between that and managing a team of volunteers. And I have found that there is a significant amount of overlap. The main difference that I see is that volunteer work tends to be much less real time in terms of the interactions and the reaction to it. Whereas you can have a meeting one day and things shift the following day at work. A lot of times it's much longer feedback loop. You're like, oh, we'll have this email chain and then we'll figure something out and then a week later we'll do it. And for me that sometimes makes it hard for me to pick up and remember kind of where we were on this journey of trying to make this thing happen. And the other thing is that people do kind of peace in and out more than they would do at work. And maybe this is the advantage of living in the San Francisco bubble, but that happens on my teams in San Francisco too. And I just expect it, right? Like people are gonna, they're gonna work, the average tenure of someone at a tech job in San Francisco right now is under 18 months. And so people are just like, oh, my buddy's doing a startup. I'm just gonna go work on that for a couple months. And they know that they can just get another job or they can come back and work with me again. They want to. After their startup crashes and burns and or is sold to Twitter. It's always the hope, right? And so I think that there's, I feel like they're almost converging, right? There's sort of this, we've been working in the tech community on building teams that are resilient to turnover, which has a lot in common with building a team and sort of hurting the volunteers a lot. I have never been a real software manager, but something that seems to be important to those folks that I think is important in volunteering is like the bus factor. If you're familiar with that, where, you know, if someone gets burnt out or decides not to do this anymore, what's gonna happen? And I think in both those situations, just documenting religiously is very, very important. I was very fortunate that the former organizer of Dango Girls Portland left so many emails I can copy and paste and just documentation on the way that she led the organization. So it's not confusing or mysterious ever. Yeah. So the question is, are there examples of companies who have been, who have done a good job of integrating some of this volunteer work into the company? Is that right? Yeah, into the products. Okay. So I can kind of speak to that a little bit. Like I know GitHub actually every, is it February? They do their volunteer month? What's, they get 20% of their time to just work on open source projects. And, you know, Ruby Forged's benefited from that because we always point them at Ruby Forged projects needing help. And in February, we see a lot of contributions from GitHub people, which is awesome. I know Custom Inc. does skills-based volunteering, which is really cool. And it's one other awesome company that's doing it that I want to give a shout out to, but I can't remember. My company gave us like one day a month, which has been a whole lot, but at least it helped us get more people like in the company involved and stuff like that as well. Yeah, I know Salesforce. And I'm not sure if this carries over to all of like Roku and all that stuff, but I have a couple of friends that work in Salesforce proper. And Salesforce actually gives them a certain number of days per year, sort of like vacation time, but like it's nonprofit work time. And so they can use that to volunteer at their kid's school or they can use it to work on a project. And so what often happens there is that people will schedule to use that time at the same time so that they can work in a group on a project that they're interested in. And so sometimes even just providing that time and then just kind of seeing what people do with it can be interesting. So I think that's all the time we have, but thank you so much for coming. And hopefully you've had some ideas spark and you can go out and make the world a better place. Thank you. Thank you. And a round of applause please for Polly for putting all this together. She did a ton of work.