> Slides: [[Blastoff Rails - Draft V7 - Slides]]
## We Are the Ruby Community
### Opening
Before I introduce myself, I want to do something together.
I'm going to read a list. The moment you hear something that's true for you, stand up, and stay on your feet. If getting up isn't easy, just raise a hand instead.
- Contributed to Rails
- Created or contributed to a Ruby gem
- Written a blog post about Ruby
- Answered another developer's question online
- Listened to a Ruby podcast
- Used Ruby at work
- Showed up to a Ruby event, in a room like this
(Pause.)
Look around. Almost every person in this room is on their feet.
Now stay where you are. But this next one, you don't say out loud, and you don't move a muscle. Just answer it in your own head:
Have you ever felt, even standing here right now, like you're still not *really* part of the Ruby community?
(Pause.)
Yeah.
Me too. For years.
Go ahead and take your seats.
A lot of us experience Ruby this way. We attend the events. We use the gems. We follow the discussions.
And the community itself somehow feels like something happening *somewhere else*, run by people more experienced, more visible, more important than us.
So I want to tell you the simplest, strangest thing I've learned about this:
**You don't join the Ruby community.**
**You are the Ruby community.**
Every one of you just got to your feet, or raised a hand. That was the community, in motion, in this room. Some of you stood for *answered a question online.* That's not the community's audience. That's the community doing its job.
The reading, the listening, the asking, the showing up. You've been doing it the whole time.
You just didn't know it counted.
By the end of this talk, I want that to feel obvious. So let me start where I started, completely convinced it wasn't true.
### A Quick Word About Me
My name is Andrew Mason.
I've spent a lot of years at conferences like this one, and an honestly embarrassing number of hours behind a podcast microphone. These days I co-host a show called Remote Ruby with [[Chris Oliver]] and [[David Hill]], and formerly with [[Jason Charnes]].
And that points at the most important thing I’ve learned in all those years and all those hours. It isn’t technical. It’s this:
For years, I thought “the Ruby community” was somewhere else. A room I hadn’t been invited into yet.
But when I look back now, I don’t see a group. I see people.
Chris. Jason. Coworkers. Maintainers. Conference attendees. Friends.
The friendships came first. “Community” was just the word I used for them afterward.
And all of it started because of a decision I made when I was brand new to Ruby.
### The People I Work For
One more introduction, because I owe them one.
By day, I work at Podia. Podia is a home for the courses you teach, the community you host, the emails you write, and the people you do it all for.
And they are the reason I get to be standing here today. They sent me. They covered the trip. They encouraged me. They believe that communities matter. So before I go any further: thank you, Podia.
### The Pyramid We Imagine
Most of us picture a technical community as a pyramid.
I used to picture it exactly the same way.
At the top: the Ruby core team. The Rails maintainers. The conference speakers. The gem authors. The podcasters. The writers.
And then everyone else: writing Ruby at work, reading the blog posts, listening to the podcasts, watching the talks.
I never thought I was *outside* of Ruby. I just felt adjacent to it. Standing near the doorway. Hoping nobody noticed I felt like I didn't quite belong inside.
A lot of Rubyists feel exactly that way. Maybe some of you, in this room feel it.
But communities aren't really pyramids, even when they look like one from the outside.
You see the speakers and the maintainers because they're *visible*. What you have to look harder to see is the thing actually holding the whole thing together.
It isn't a hierarchy. It's all of this, happening quietly, all the time:
- someone asking a question
- someone answering it
- someone fixing a typo in the docs
- someone helping a newcomer at a meetup
- someone inviting someone to join them for lunch
- someone simply showing up
The visible parts of the ecosystem get the attention.
The conversations and relationships are what keep it alive.
### The Bridge
So how do you go from feeling like an outsider to feeling like you belong?
You participate.
It sounds almost insultingly simple. But every community I've ever belonged to came down to that one move: I stopped only consuming what other people made, and I started contributing something back. However small.
That gem you `bundle install`-ed this morning? Somebody wrote it. Somebody else filed the issue that made it better. Somebody posted about it on social media. Somebody else wrote the tutorial that helped others understand it.
The community isn't *behind* the tool. It *is* every person who chose to engage with the tool instead of only using it.
And participation comes in a hundred shapes. Asking a question. Answering one. Filing a bug report. Writing a post. Saying thank you. Showing up to a meetup or conference. Making a friend. Becoming one.
The form barely matters. The choice does.
Because once you've participated, even once, something shifts.
You have skin in the game.
You care about the next release, because you filed an issue against the last one.
You read the RFC, because you commented on the draft.
You show up to the meetup, because last time, you actually talked to someone there.
One act of participation turns a language into a place.
And that place has no door. No gate. No moment where someone hands you a badge that says *you belong now.* The community isn't a destination.
It's a pile of friendships that accumulated, one hello at a time. Until one day you look up, and the room is full of people who know your name. People who are excited to see or talk to you.
I know that's true, because it's the only reason I'm standing up here. And let me tell you how I know.
### How I Know
Rewind about nine years.
I'm a junior developer, fresh out of college. I know exactly three Rubyists in the entire world. And I share an office with all three of them.
There's no Ruby meetup in my city. Nobody I went to school with writes it. As far as my actual, physical life is concerned, the Ruby community does not exist.
But every podcast I put in my ears, every conference talk I watch, keeps telling me the same thing: that there's this warm, generous, world-famous Ruby community out there.
And I keep thinking:
*Where?*
*Where is this magical community everyone keeps talking about? Because I have never once seen it.*
So one day I decided to go find it.
There was a show called *The Ruby Testing Podcast*, hosted by a developer named Jason Swett.
And I sent him a message. It basically said:
"Hey… could I just come on and ask you questions about testing? From a junior's perspective? Because I have a lot of them."
(Pause.)
I want to be honest about that moment, because it's the whole point. I typed that message. Then I deleted it. Then I typed it again. My thumb hovered over send for an embarrassingly long time, while every voice in my head said *who do you think you are.*
And then I sent it anyway.
To my complete surprise, he said yes.
I recorded my first podcast episode. I was terrified. I was sure I'd ask something so obviously dumb that the entire internet would point and laugh, that my coworkers would figure out I was an imposter, that no one would accept me.
And then the episode came out.
(Pause.)
And something shifted.
It wasn't that I'd suddenly become important. I hadn't. It was that, for the first time, I'd done something *for* the Ruby community instead of only taking from it.
That was the bridge. I'd walked across it without even knowing it was there.
That counted.
That first episode wasn't the only time showing up changed everything for me.
A while later, I went to one of my first big Ruby conferences. I barely knew a soul, and I spent most of it feeling like I'd snuck in. Then someone posted in the conference Slack. It was [[Chris Oliver]], who a lot of you know from GoRails. He said he had stickers, and that he was sitting at a table upstairs if anyone wanted one.
I almost didn't go. I was shy. I was nervous. I felt completely out of place. But I went.
There were a few developers gathered around some tables, some now very famous in the community and some who already were. [[Chris Oliver|Chris]] was one of them. Sitting near him was a guy named [[Jason Charnes]]. I grabbed a sticker. I sat down.
That is the whole story. I grabbed a sticker, and I sat down. I barely said a word. I just listened.
I had no idea that sitting down at this table would change my life. That Chris and Jason would eventually invited me to become a co-host on Remote Ruby with them. That [[Jason Charnes|Jason]] would end up recruiting me to come work with him at Podia. That I would go to their baby showers, meet their families, and travel the world with them.
All of it started because I worked up the nerve to walk over and take a sticker.
Most times I've shown up, of course, it hasn't changed my life so drastically. Some conversations turned into friendships. Some stayed acquaintances. Some were a single chat I never repeated. And that is completely fine. Each one was just me, choosing to show up. And the more I showed up, the more people I met, the more involved I got, the more I felt like I had truly found my place in the community.
Now, I want to be careful here, because it would be easy to hear this story wrong.
I am *not* telling you the goal is to end up on a stage. Please don't walk out of here thinking you have to host a podcast, or give a talk, or get famous to belong.
I think about the Rubyists who have quietly answered beginner questions in on Stackoverflow for years. Who've never given a talk. Never shipped a gem you've heard of. Only really interact with their coworkers. And who are every bit as much the Ruby community as anyone you'll see on this stage.
Staying small is enough. Staying small might be the whole point.
The path from "I don't know a single person in Ruby" to "I have found my people" had almost *nothing* to do with becoming a better engineer.
It had everything to do with showing up. One small contribution at a time.
The thing I was actually good at was asking questions out loud, in public, where other Rubyists could hear them. That turned out to be a contribution too.
I didn't find my people by being the smartest person in the room, because frankly, I'm not.
I found them by being curious enough to participate *before* I felt qualified to.
### Some Barriers Are Real. One Is in Your Head
So if the community is just people connected by a shared tool, why do so many of us still feel like outsiders?
Some of the reasons are real, and I'm not going to wave them away.
Geography is real. There are whole countries with no local Ruby scene at all.
Time is real. Some of you are holding down a job and a family and have about twenty spare minutes a week.
Money is real. And you may not have the means to go to conferences or meetups.
And bad experiences are real.
Maybe you asked a question once and got talked down to.
Maybe you showed up somewhere and nobody made room for you.
Maybe you posted into a channel and got nothing but silence back.
If that's you, I want to be as clear as I can be: that was not you failing to belong. That was the community failing *you.* Hold onto that, because in a few minutes I'm going to tell you whose job it is to fix it.
But there's another kind of barrier. And this is the one I want to spend time on, because it's the one almost nobody talks about. It isn't out in the world at all.
It's in here.
You've probably thought some version of these. I want to say them out loud, because saying them out loud takes some of their power away:
- "I'm not experienced enough."
- "I don't know Ruby well enough yet."
- "Someone smarter has obviously already said this."
- "My question is probably dumb."
- "What if I post it and… nobody replies?"
- "What if I waste the maintainers time"
- "What if they reject me?"
Here's what I've learned about those thoughts:
They show up in the beginner who just started learning Ruby.
They show up in the developer who's written Ruby for ten years and never participates in public.
They even show up in the veterans, the people who used to be everywhere, and quietly drifted away.
They still show up in *me.* I had a version of that voice in my head this morning, before this talk. It doesn't fully go away. You just stop letting it make the decision for you.
And here's the irony that took me far too long to see: the culture of Ruby was built specifically to dissolve those fears.
[[Matz]] designed Ruby to make programmers happy. And that didn't just shape the language. It shaped the culture *around* the language: kindness, curiosity, mentorship, sharing what you know. Matz is nice, so we are nice.
That culture wasn't handed down from the famous maintainers. It was built by thousands of ordinary developers being generous to each other. One conversation at a time. One line of code at a time. One thumbs up on GitHub at a time.
People exactly like you.
But I want to be honest: that culture is something we *aim* for. It is not automatic. Ruby has had its bad days and its unkind rooms. This year in particular has been challenging for the community, and at times it felt like it had fractured.
And that's the uncomfortable other side of "we are the community." If we really *are* it, then the times it was generous are on us. And the times it was cruel are on us too.
Which means the fix is ours.
### Consuming, Participating, Connecting
Most of us consume the Ruby community without ever realizing we're allowed to participate in it.
Consuming looks like:
- reading the blog posts
- watching the conference talks
- using the gems
- scrolling through GitHub
Participating looks *almost identical*. It just adds one ingredient:
Interaction.
- asking the question instead of only reading the answers
- thanking the maintainer instead of only `bundle install`-ing their gem
- replying to the post instead of only scrolling past it
- showing up to the meetup instead of only seeing the announcement
You don't need authority. You don't need expertise. You just need interaction.
And the majority of this isn't loud or viral. It's small. A reply. A question. A thank you. A bug report. The *accumulation* is what builds a community.
One of my personal favorite ways to interact is thanking a gem maintainer.
When you thank a gem maintainer, you're not just being polite. You're expressing gratitude for work that is often lonely and thankless, the kind of work people quietly burn out doing.
And that thank you can be the first rung on the ladder. The next rung up is taking a little weight *off* them: reproducing a bug so they don't have to, fixing a confusing line in the README, answering someone else's question in the issues so the maintainer doesn't have to. Writing a tutorial to help others use it. You don't have to be an expert to do any of that. You just have to try.
When you ask a question in a Discord server or Slack channel, you're not just solving your problem. You're adding to the record of how Ruby actually gets used.
When you reply to another Rubyist online, you're not just commenting. You're contributing to the conversation that *is* the community.
Most of the lasting relationships in this ecosystem started as a comment. A reply. A question. A thank you. And what does this lead to? Friendships. Mentorships. Collaborations. Jobs. Co-hosts.
So if you want a first step, a real one that you can take tonight, here it is:
Find a gem you've used this year. One you'd genuinely miss if it went away. And send the maintainer a short message. An email, a GitHub issue, a post on whatever platform they're on. Something that just says:
"Hey. I use your gem at work. It made my life easier. Thank you."
That's the whole assignment.
You haven't fixed a bug. You haven't shipped a PR. You've put something *into* the ecosystem instead of only taking from it.
And here's the part I most want you to hear: maybe you'll get a warm reply. Maybe you'll get nothing back at all.
Send it anyway.
Because the part that mattered already happened the moment you hit send. If silence comes back, that is not a verdict on you. It's just silence. Try another door. There are a lot of doors.
And if you've been around Ruby for a while, this is where I keep my promise from earlier. Remember that silence? The question that gets no answer, the newcomer nobody makes room for?
*You* are the fix for that.
You might be the person someone in this room is too nervous to walk up to.
You might be the person who makes them feel comfortable after asking a question they felt may be dumb.
You might be the reply that makes this entire community feel *real* to someone for the very first time.
The way Jason Swett was, for me.
### Finding Your People
Participation doesn't have to mean standing in a room.
For a lot of us, online *is* the community. The parents. The people in timezones with no local scene. Anyone whose energy is already spoken for. For us it isn't a consolation prize. It's the real thing.
A Ruby Discord. A Slack. Posting wherever Rubyists gather near you. A monthly video call with one other developer on the other side of the world, talking about what you're each building.
And if you *do* want to meet people in person: look for a local meetup. Meetup.com is one place to start. Go on Rubyevents.org. Find a Ruby shop in your area and see if you can find their employees online and see if any of them would be down to get lunch.
If there's nothing near you, you can start something. But don't hear that as "now you have to organize a conference." It can be two people in a coffee shop. It can be you and the one person who replied to your post on social media.
Communities don't start with big events.
They start with two people deciding to show up for each other.
### Why This Matters Right Now
When I started, a lot of the well-known names were moving on. Some to React, some to Elixir. And I'll be honest, I was scared. I wondered who was going to fill the void they left.
But communities change. People move on. That's normal. That's healthy. And here's what happened: new people showed up. The ones who left weren't *replaced.* They *inspired.* Without ever planning to, I helped fill a little of that void myself. Just by showing up, and making friends along the way.
That's how communities survive. And it matters even more right now, because we are in a genuinely strange moment for software.
AI can write Ruby now. Really write it. It'll explain the syntax, generate the tests, refactor your controller, and recommend a gem. Build a whole product.
The tools are getting cheaper. Knowledge is getting cheaper.
Let me name the fear in the room, because I think we all feel a version of it: *if the machine can do the part I'm proud of, what's left for me?*
Here's what's left. Here's the part that doesn't get cheaper.
A community.
An AI can hand you the language. It can't *be* the community around it.
It can't run the meetup where you meet the person who becomes your friend.
It can't be the friend who texts you "did you SEE the new Rails release?" thirty seconds after it drops.
AI can produce Ruby code. Only we can produce the Ruby community.
The tools change. They always have. The community is the constant.
When the *code* gets automated, the *people* become the entire reason a language is worth using at all. Because the people are what continue to push it forward.
And if you're just starting out, that might be the best news in this whole talk. The part that's hardest to automate isn't your code. It's *you*, the person other people want to build with. You can start being that today. Long before you feel good enough.
Languages and communities need each other. The language gives the community something to gather around. The community keeps the language alive, by teaching it, defending it, evolving it, and making it feel like home.
Ruby is alive because we are here.
And the next nervous junior developer who walks into this ecosystem, the one who can't find the magical community everyone keeps talking about, might stay. Because somebody in *this room* chose to show up for them.
### Closing
So the next time you catch yourself thinking:
“I’m not really part of the Ruby community yet…”
I want you to do one thing.
Look around this room.
(Pause.)
I’m doing it right now.
And I can see people who answered the questions I was embarrassed to ask out loud.
People whose blog posts I learned from.
People I met because one of us was brave enough to say hello.
People who I have shared meals with.
The Ruby community isn’t somewhere else.
It was never somewhere else.
It was sitting in this room the whole time.
So remember what I told you at the very top:
**You don’t join the Ruby community.**
**You are the Ruby community.**
The people sitting next to you right now?
They are not the gatekeepers.
They’re the ones who chose to show up.
Just like Jason Swett did, when he said yes to a terrified junior developer.
Just like I did, the day I finally hit send.
Just like you did, by walking into BlastOff Rails and sitting down in this room.
That counts.
(Pause.)
Because together:
**We are the Ruby community.**
Thank you.