
The Ruby Gems Podcast
A Ruby Central podcast that takes an inside look at the people, projects, and progress shaping the Ruby community. Discover the gems in Ruby and connect to this vibrant group of amazing people.
The Ruby Gems Podcast
Sean Marcia: Ruby for Good
Sean Marcia, founder of Ruby for Good, takes us behind the scenes of an organization that's transforming how developers contribute to social impact. What began as a way to help nonprofits with their software needs has blossomed into a thriving community where coders of all experience levels build sustainable, open-source solutions for organizations serving vulnerable populations.
- RubyGems funding model post (part of intro before Sean joins)
- Ruby for Good
- Upcoming event, Sept 11-14
Welcome to the RubyGems podcast, brought to you by Ruby Central, where we uncover the stories behind the code. We're your hosts. I'm David Hill and I'm Marty Hutt. Before we get started, Marty, I read recently the post you wrote about the RubyGems funding model and I wanted to ask if you could go into a little bit of detail about what motivated you to write that post.
Marty Haught:Yeah, yeah, so that came out of a conversation, or actually multiple conversations I had when I was speaking at Baltic Ruby back in June, and it was very clear to me that many of the attendees at the event didn't really know how RubyGems was funded or that Ruby Central ran RubyGems specifically, and I think that they just sort of imagined that well, it's part of the Ruby language ecosystem, so it's funded somehow magically funded or whatnot, and of course it's so well funded, you don't have to worry about it.
Marty Haught:And of course that's so well-funded, you don't have to worry about it. And of course that's not entirely true. Essentially, ruby Central has been backing the service since 2004. And we have a community of volunteers that operate the platform for all that time, and so it's really been a labor of love and for many years it was funded adequately. But essentially, since my job is to oversee the service since last year, I have to develop a budget and a roadmap and there isn't limitless funds and I do have to think about that. So the post was really to highlight that, because I think a lot of people in our community don't really know all that, and also to give an avenue, a way for companies and developers to support us in small but meaningful ways.
David Hill:I ran into somebody at RubyConf last year who, when I was volunteering at the t-shirt booth, literally came up and asked what does Ruby Central do? So yeah, I can confirm I've met people at Ruby Central conferences that didn't know really what Ruby Central does for the community, for Ruby Gems, and so, yeah, that's definitely a lot of important information that needs to be out there. So I'm glad you wrote that post.
Marty Haught:The other piece I don't know if I talked about in the post is that this is community-supported, community-owned in a way, and it's not like there's not some big corporation that controls this, and we want to keep it that way. We want to keep this as something that is for the community, by the community, but that also means that it needs funding from the community, and so be aware of that. Yeah.
Marty Haught:Today we're joined by Sean Marcia, a passionate Rubyist, community builder and the founder of Ruby for Good. Sean has been a driving force in using technology for social impact, bringing developers together to build open source software that supports nonprofits and civic organizations. He's also an experienced engineer and advocate for creating inclusive, mission-driven tech communities. We're excited to dive into his journey, the story behind Ruby for Good and how developers can make a difference through code. Welcome.
Sean Marcia:Thank you.
David Hill:I'm super excited to be here. For starters, I'm going to admit that I've heard the name of the organization before Ruby for Good but I have never actually looked too deeply into what the organization is and what it does. So for anyone out there like me, could you give us kind of an introduction to Ruby for Good and what you're doing with it?
Sean Marcia:Sure, yeah, and I know a lot of people are familiar with our rival organization, ruby for Evil, but we don't get the same amount of press. For some reason, evil always gets the press. Yeah, yeah, right, so we're a nonprofit. Initially we started to help other nonprofits to give folks in the tech community a way to use their skills, to leverage them for good, to build software for other nonprofits, and since then it's grown into something much bigger.
David Hill:Bigger how? There's a bit of a question mark at the end there. Please elaborate.
Sean Marcia:Yeah, sorry, yeah.
Sean Marcia:And so I think the easy part of our mission, like I said, is just like hey, we're building software for other nonprofits food banks, animal shelters, women's shelters, diaper banks, things like that.
Sean Marcia:But the other part we figured out that we were missing too is the community piece, and so our mission is a three-part mission. It's to help the civic organizations, the social sector organizations, and then it's also to grow the tech community, especially with those least represented in it, because if you go to conferences and whatnot, you see a lot of folks that look like me and not as many that don't, of folks that look like me and uh, like less that and not as many that don't. And it's also to provide meaningful, like learning experiences for folks in tech, regardless of your skill level and so like. If you're a senior engineer, maybe you've never led a team before and it's like coming to roof. You get the opportunity to lead a team, lead a project, maybe, work, architect something from beginning to end. And if you're a junior engineer, maybe this is your opportunity to learn be on a team, deal with your very first gnarly merge conflict.
Marty Haught:It's interesting. So how long are these engagements? Because it sounds like there's a kickoff process. These last for a weekend or a week or two, or is this months? What does that look like?
Sean Marcia:Initially we were building these kind of projects one and done. A nonprofit would come to us and like, hey, can you build us X, y or Z? We would build it, we would hand it off to them and then we'd walk away. But we learned kind of throughout time that that wasn't the best way because they don't always have the people to support them, and so what we've turned into is we build, maintain and kind of have the software living on is open source software.
Sean Marcia:So, like one of our more well-known pieces of software, like the human essentials project, it's been going since I think, 2015 and different people running it and that's a really amazing project. Started with a single diaper bank in portland using it and then, like they showed it off and then other diaper banks wanted to use it in period supply banks. Latest, latest figures I heard it's helping three and a half million kids a year and 700,000 or so period supply recipients, and not a single person has ever been paid to work on it, which is kind of cool and it's just having this monumental impact, wow.
Marty Haught:It's interesting. So what does the management structure look like? Because it sounds like there's a lot going on and I'm guessing these civic organizations really don't know how to manage software, so I would expect there's a fair amount of management involved. Is that also pretty much all volunteer At?
Sean Marcia:least on our side, it's all volunteer. And again it's like any kind of open source project. There's kind of leads and people in charge of it, and then there's just the rank and file contributors. People come in and submit a pull request and you never see them again. But then there's like the other kind of core people who are there for years and years. I can't speak, maybe, to the nonprofit side, but, right, like our side, it's all volunteer. I don't know if that fully answered your question.
Marty Haught:It sounds like it's gone through this evolution over time. How do you see it continue to evolve, or do you think it's in a stable state where this is basically how it's going to be?
Sean Marcia:I'm not quite sure, like I think the big piece where we haven't quite figured out is maybe this is everyone's challenge too is the funding, because, like we're always like scrambling every year, like trying to figure out how to fund these projects and not necessarily like again, everyone's volunteer, but like the hosting like is running on heroku or azure aws or something that we've largely now kind of passed off to the non-profits.
Sean Marcia:I feel like the process we have is it's in a very stable state and a very good state in terms of bringing people on, giving people these opportunities, especially new folks to the community, because I feel like a lot of that is drying up for them now. These junior engineers or people, just like these bootcamps and stuff, for them to get their start and work on teams and work with other people. It's growing increasingly difficult for them to kind of get their foot in the door places. But then, joining projects like this, I get to work with these senior engineers and experience UI people and UX folks and product managers who work on these teams and get that experience. So then when they are on the job market and they have these real experiences that they can talk about, I feel like.
David Hill:This is a question you've kind of alluded to already, but I'm going to ask it anyways because I'm hoping there's a little bit more to dig in here with. It sounds like the Ruby for Good projects have some pretty stark differences and requirements and just how it all comes together than a typical open source project. Could you maybe dive into that a little bit more and in terms of how this all works and how do you get people involved?
Sean Marcia:yeah, it's different now than in like kind of like the early days when folks hadn't heard of us. Now, like we do, I feel, have a fairly good reputation and mind share in the ruby community. So folks, a lot of folks, just kind of come by looking to contribute, wanting to vote either some time or even just like a few days to something. But as far as like how the projects work is like we have a lot of non-profits and sadly we have a lot more of these like kind of social sector organizations coming to us looking for help than we have capacity for. Like generally, I think it's kind of like any project. They come they say like hey, we, we'd love some help with this certain thing. Can, can you help us? And then we put together a team to work on that.
Sean Marcia:And generally how we do that is we have these yearly events.
Sean Marcia:Pre-covid they were twice a year but now they're yearly, they're in person and we kind of think of them as a nerd camp for good and so they're an all-inclusive event.
Sean Marcia:So you come, you all get your room, your lodging, everything's included. So it's four days, three nights. This year we're in this beautiful place outside the DC area. It's out in the woods and it's kind of like a resort, and so we spend our days writing code for good for these social sector organizations, and then evenings we do a lot of fun we play board games, we sing karaoke, make s'mores around campfires, play werewolf and all that kind of fun stuff.
Sean Marcia:But that also gives us a chance to really get a good core chunk of work done and build a nucleus of a team, because the other thing we do too is, in addition to having a lot of these Rubyists and designers and product folks out at these events, we get representatives from the nonprofit, so there'll be someone from the animal shelter, there'll be someone from the food bank, whatever the organizations are we're helping, so they're sitting in the room with the team too. So it also then I think it makes it a little bit more special for the attendees as well, cause like you actually you're meeting, you're seeing, like this is the person I'm helping with the code, and so it's kind of a neat thing.
Marty Haught:I didn't realize it was a summer camp like thing. So you're like chilling out in the woods and you're there, focused. You're not in your normal environment, so you're not going home or you're not at the office with others. Yeah, so you've got this camp thing and it sounds like a lot of fun. So I guess, when is the next one? Do you have one coming up?
Sean Marcia:Yeah, our next one is next month, in September. I guess. I don't know when this is going to air, but so next month, from when we're recording? So September 11th to the 14th, and yeah, it's in Sharpsburg, maryland, like I said, just maybe an hour outside of DC. That's going to be a lot of fun. So if either of you come, I promise to cook you your first s'more around the campfire. How do you?
David Hill:go about trying to nurture contributors to come and be part of the Ruby for Good community to actually work on these projects, especially people who are newer to open source.
Sean Marcia:I think it's just making it as friendly as we can. We do a lot of small little shout outs for folks. When someone makes their first pull request, we make a big deal of shouting them out, congratulating them. We're never rude to folks. We always want to make it as inclusive and welcoming as we can. We have a whole thing in our readme is that you're never going to get yelled at, we're never going to be rude to you for giving your best effort. So just try, try and people are going to work with you. Like I said, we do a lot of pair programming with folks. We do a lot of mobbing, especially at our events too. Our events are always folks working in groups and so it's all about like leveling people up and skill acquisition.
David Hill:I'm not sure I've heard the term mobbing used before in this context. What is that?
Sean Marcia:That's where you have like a senior person and junior person, like walking through something within, like a group of folks all watching and I guess like group learning.
David Hill:I could see that being a very different experience.
Marty Haught:It's pretty cool yeah mobbing is kind of cool, I guess. I'm curious, sean, because I imagine that burnout is a real thing, especially if they're donating their time. How do you manage that? And what is like the volunteer capacity sort of planning management?
Sean Marcia:yeah, that's something that I think, too, it's really easy to over commit yourself. You're working with these folks who are, you know, helping some of the most vulnerable populations in our community, and so I think it's really easy to get like swept up in that and just want to do so much right. We try and ask people to limit their time, limit, their engagement, burnout. It's such a real thing, and so we ask people to put up boundaries, to acknowledge that, because we would rather have people being part of the community for the next 10 years rather than the next 10 days.
Sean Marcia:So I'm really interested to hear if you have any insights on inclusive event planning, because I've heard you talk about that and I have to imagine there's some interesting lessons learned and tactics you may have I wish I did and, like I said, like our events, our last few events, like we've had more people who don't identify as male than who do attend, which is a pretty special thing, and I don't know if it's just because we've gotten a reputation for a safe and healthy community like that or what it is. But yeah, I wish I had more advice.
David Hill:For the people who have stuck around and have continued to contribute for a longer period of time. Are there any kind of common factors that you can identify of what helps keep these people involved and what keeps the experience rewarding for them?
Sean Marcia:It feels like our long-term contributors are the folks who have ties to the organizations that we work with. And so, for example, one of our long-term contributors to the CASA project and CASA is a project for court-appointed special advocates these help kids in the fosterA project and CASA is like a project for court appointed special advocates Like these help kids in the foster care system she was a CASA herself, like one of these people who helped the kids and like she had her own little youth that she was responsible for for a number of years, and now that she's an engineer she's been with the project now for six years, that project. So I like and I think probably just like any kind of volunteers whether it's like a project that resonates with them. So if it's like a non-open source for a good project, I imagine people who've been on the RSpec core project for years and years, probably because they like the project, it resonates with them, kind of intellectually.
David Hill:So so you mentioned before the summer camp experience where, like you, really have this big powwow working on something. I imagine that Ruby for Good has work, that you guys do contributions that are made throughout the year, not just during the summer camp, right?
Sean Marcia:Our events are where we kick off our new projects, because that's where, like you know, we get like that critical mass of folks to start it, and we have a whole guide for leading up to the event too, where we pick a couple of people who are going to be the team leads for the project, and so we put them in touch with the nonprofit or the social sector organization six weeks ahead of time, and each week they have tasks they have to do, and so maybe six weeks out, they're doing this and by five weeks out they've created a repo. By four weeks out, maybe they've done Rails new or like all these little things, and so, basically, when the event happens, they've got a really solid understanding what needs to be built, and all the attendees who are going to be on that project during the event can clone something down, have it started, and so then, like on the first day, you know they can hit the ground running, okay.
David Hill:So for people who are financially or for whatever reason unable to go to the summer camp, or who discover Ruby for Good in November, how would you recommend someone go about trying to get involved when the summer camp option isn't really on the cards for them in the near future at least?
Sean Marcia:you know, like any software like this runs year-round. I would say, jump into our slack and you can grab an invite on the website. Or just go to the ruby for good, github, and take a look at the different projects there and find one that has an open issue, that has help wanted on it and submit a port request and we'll welcome you in sean.
Marty Haught:I guess I'm curious, through all this, what's been the hardest part? There's been a couple. What's been the hardest part?
Sean Marcia:There's been a couple. Personally, I think the hardest part for me was kind of learning to delegate and not being involved in everything. In the start I was just kind of involved in every team and everything they were doing, and all the other organizers were as well. But now I think the biggest challenges now, or some of the bigger challenges now too, are technical challenges, and so these people come to our events and they have like this hackathon mentality where it's like, hey, this is their time to play with this javascript framework that's been out for three days or whatever it is, and so they want to play with these things that maybe they can't do in their day job, but without the realization that, you know, we're building software. You know, like the human essentials project that's been going now for 10 years. We want this to be maintainable and contributable and so we don't want to use like this is for a nonprofit that needs to be very sustainable, and so by definition, it can't be experimental.
Sean Marcia:Right, these things are fun and I like technology and I playing with all this stuff too, but when we come to these things, so like being a little bit more prescriptive on the technologies folks want to use. And so, if you want to use something that's again one of the reasons that makes Ruby and Rails so great is the convention of configuration and just how easy it is for folks to contribute. But if someone wants to use Oracle or something rather than Postgres, why? And so we have had that in the past. We had a team a couple years ago built something using MySQL rather than Postgres, but the reason for that was just this nonprofit had free hosting from local ISP that didn't support Postgres. They supported MySQL. It's like cool, that's a great reason.
David Hill:So what does your role look like these days with the organization?
Sean Marcia:Kind of like a benevolent dictator for life. That's kind of the model. I try and be as hands-off as I can and just kind of steer people to what I think is the right direction. But generally I just hands-off and just making the connections that I can and the introductions I can and just kind of getting out of the team's way and do their things.
David Hill:Roughly how many teams do you have kind of operating at the moment?
Sean Marcia:I'd say, like we have about 10 Ruby for Good projects, like in the past. Like some of our projects have grown and they've kind of turned into their own organization. If you're familiar with the Terra Stories project, that was a Ruby for Good project and it kind of grew and grew and grew and they became their own organization and now they're this own thing, trying to get grants and whatnot.
David Hill:And so even though, like, we are still kind of affiliated, we still contribute and it is kind of a blurry line, but that's still kind of cool that you've had something kind of for lack of a better way of describing it outgrowing Ruby for Good's organizational structure itself and kind of become its own thing. That's kind of cool. I would call that a bit of an accomplishment. Oh, definitely yeah.
Marty Haught:Is there a pattern where some of these civic organizations hire any of the volunteers and they become staff members.
Sean Marcia:There we've had some like one-off coding work, and a lot of times too, it's just things like hey, build us a website, update our wordpress, things like that. But the organizations we work with don't tend to have the budget to pay for a software engineer. That's why they come to us and so but like, hey, here's some money that we need to migrate our. The organizations we work with don't tend to have the budget to pay for a software engineer.
David Hill:That's why they come to us, but like, hey, here's some money that we need to migrate our WordPress from this to that. Going back to contributions from the community, how would you like to see contributions from the wider Ruby community to Ruby for Good? How do you think things could improve in terms of getting more contributions and bringing in more people.
Sean Marcia:There are folks out there listening that want to come contribute. Hey, come join the Slack, Come grab an issue If you want to be a larger part of this as well. I think a lot of people take a while to realize that, hey, I can be a team leader. You don't just have to come to one of the events to take a leadership position on. Some of these open source projects is like our pet rescue project that's helping, like animal rescues, and you know I really like dogs. I'd like to be a part of that. Well, talk to us and tell us that, Because I think a lot of people have this impression about open source.
Sean Marcia:You know, because there's some people in the open source community that maybe aren't as kind as others and so they're intimidated to maybe get involved. And I'm not like pointing at Linus Torvalds or anything, but I think there's some people out there that intimidate them. And so, you know, like making your first contribution and just like understanding that like, hey, I can be a part of this and I can have this on my resume Even outside of the negative connotation of you know, there are certain types of people, have a certain type of reputation out there.
David Hill:I came into the Ruby community in a way that was very isolated, where I didn't interact with people in the community for quite a while, and so my perception of open source was oh, these guys out there, they're all just geniuses and I'm just this lowly engineer developer who's just trying to use this stuff. And so it took me a long time to even consider the thought oh, maybe I could actually contribute to something in here, since that's my experience. I've kind of recently come to learn it's like oh, if that's my experience, there's probably other people out there like that too, whereas it's like the idea that they could contribute to this is not something that they're really thinking about exactly and with all our too.
Sean Marcia:Like there is like the whole community aspect. The vast majority of our projects all have kind of like community hours where weekly, bi-weekly, monthly, they all get together, they all get on Zoom and so you get to hang out with other people. Like, if you're contributing to, like a food bank, the other people contributing to food bank probably think the same way as you and probably have similar like ethics and whatnot. These are people you're probably going to hit it off with. That you're probably going to enjoy hanging out with, especially now that a lot of us work remote and stuff. So it kind of gives you like this fun community people just to hang out with too yeah, nice, yeah, it's nice.
David Hill:This question is one we've had written down on every outline that we've done for our interviews thus far and we've never asked it, but we're going to ask it today. We've got a little saying in the ruby community in minaswan mats is nice, so we are nice. How has that impacted your work and the work at ruby for good?
Sean Marcia:yeah, minaswan is like that's kind of core to who we are and at every one of our events sorry if you see a ruby for good person at any rails, conf or rubConf or wherever find them Odds are we'll be carrying Minaswan stickers and I'm holding some up for the people. We print these little 8-bit maths rendering that says Minaswan on them that we give out and most of our swag, like this t-shirt I'm wearing right now, has Minaswan hidden in it on the Ruby. It's core to everything we are and what we do.
Marty Haught:It's core to everything we are and what we do, all right. So Matt has talked many times about how he designed Ruby for programmer productivity and joy, and I'm curious how has that played out? Have you seen that sort of interact or manifest in your work?
Sean Marcia:Oh, definitely there's something about the Ruby community and I think we're all here and this community is just magical. I was in the Python community before Ruby and I remember my very first Ruby meetup I went to and I walked in and I met a guy his name was Joe Grossberg, if you know him like he welcomed me and you know I was wearing t-shirt and cargo shorts. I walk in and he's wearing t-shirt and cargo shorts. He welcomed me in and he was so friendly and everyone there was so friendly, because just the prior night I was at a python meetup and it's full of all these angry eastern europeans and so like I'd found my people and it was wonderful and I just love this community and I love the joy that ruby brings and kind of cascades through the community, definitely seeing that a lot.
Marty Haught:Certainly at Boulder Ruby we get that similar thing as well, where everyone's so welcoming and nice and it's quite pleasant. I'm curious, sean, what's next for you or for the project?
Sean Marcia:I guess what's next obviously is our event coming up next month. Our events are a mix of working on existing projects as well as kicking off some new ones. Projects and as well as kicking off some new ones. I'm really excited for a project we're kicking off for like a free clinic here in Northern Virginia, like the Arlington Free Clinic, where we're going to be building them. Some software Free clinics are pretty amazing for the amount of people they help and don't charge them anything. I'm really excited about that. That's kind of consuming my life right now.
David Hill:Well, so to close each episode out, we have our Ruby roundup of some kind of get to know you style questions that are less about Ruby for good and more just kind of get to know you a bit as a person. First up, what's your go-to comfort food?
Sean Marcia:So there's an Indian dish called dal chawal. It's basically like lentils and rice and something about it.
David Hill:It's just like so comforting and nourishing and that is just my favorite comfort food, so do you make that yourself, or is there a place in your area that you go to to get that?
Sean Marcia:I make it myself Wow.
Marty Haught:Very nice. Are you reading anything for fun right now?
Sean Marcia:Yeah, I'm reading a book. It's called Red Shirts. It's by John Scalzi. That was a fun book. Yeah, isn't it great. And it's like he took that meme where Kirk is. He's talking to those three red shirts and he's like hey, go dig three graves over there. I'll explain it to you later. And he made like an entire book out of it. So nice.
David Hill:Are there any recent movies or TV shows that really hit home for you?
Sean Marcia:I just started the Murderbot series. I'm about six episodes in. I've read almost all the books, and so I'm really enjoying those. Alexander Skarsgård is doing a great job.
David Hill:You're hitting all the right notes right. I feel like I need to be your friend, sean. You're reading and watching the things that really hit the right buttons for me.
Marty Haught:Okay, what's got you excited in tech right now?
Sean Marcia:So I think the obvious answer to this is probably like Copilot and Cloud Code and things like that, but I'm personally most excited right now about AI video generation. I was on YouTube recently and I saw this video that had Star Trek Spock being captain, but it's all AI generated, and so the thing that really gets me excited is thinking like, hey, maybe in a couple of years we'll get another season of Firefly or Caprica or Sense8. Exciting time we're living in.
David Hill:And finally, do you have any favorite gems? Preferably one that's not one of the super well-known upfront ones.
Sean Marcia:So one I've just started using recently. It's a gem called Pretender, and maybe it is more well known or not, I don't know, but it was new to me and it's a great for just like letting you pretend to be like any user in a code base. So like if you're in like a, you know your admin view and you've got a list of users, you can just like add a little link to pretend to be this user and then it lets you log in as them or be them, and so you can see and interact as them and diagnose things, and just it's great sean, where can people find you on the internet?
Sean Marcia:I don't have a big internet presence. Ruby for Good has a LinkedIn, so if someone manages, I guess maybe contact that, but I don't have a social media. I'm kind of a weirdo. All right, it's probably healthy that way.
Marty Haught:Yeah, all right. Well, sean, thank you so much for joining us today. This has been great.
David Hill:Thank you for having me. My day is brighter because of it. Thank you so much for tuning into the Ruby Gems podcast. We hope you enjoyed this episode. You can find show notes and links to everything we discussed at rubygemspodcastcom.
Marty Haught:If you have a topic you'd like us to cover or have feedback, we'd love to hear from you. Please email podcast at rubycentralorg. If you enjoyed this episode, please subscribe and consider leaving a five-star review. It really helps others find the podcast. Until next time, thanks for being such a gem.