> Slides: [[Blastoff Rails - Draft V7 - Slides]]
## We Are the [[Ruby.lang|Ruby]] Community
### Opening
Before I tell you anything about myself, I want to do something together. It means getting out of your seat.
I'm going to read a list. The moment you hear one 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 maintained a [[Ruby.lang|Ruby]] gem
- Written a blog post about [[Ruby.lang|Ruby]]
- Answered another developer's question online
- Listened to a [[Ruby.lang|Ruby]] podcast
- Used [[Ruby.lang|Ruby]] at work
- Showed up to a [[Ruby.lang|Ruby]] event, in a room like this one or watching from home
(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.lang|Ruby]] community?
(Pause.)
Yeah.
Me too. For years.
Go ahead and take your seats.
A lot of us experience [[Ruby.lang|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 ever learned about this:
**You don't join the [[Ruby.lang|Ruby]] community.**
**You are the [[Ruby.lang|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, 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.lang|Ruby]] with [[Chris Oliver]] and [[David Hill]].
Before David, my co-host for a long time was my friend [[Jason Charnes]]. He is one of my closest friends in this whole community. To this day he gives me grief on the show about my refusal to let go of Haml. That is what friends are for.
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:
I didn't *find* the [[Ruby.lang|Ruby]] community. I found my people. The friendships came first. "Community" was just the word I used for them afterward.
And the only reason any of that happened is a decision I made when I was a junior developer who didn't know a single other Rubyist on Earth.
### 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 believe this stuff matters. 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.lang|Ruby]] core team. The gem authors. The conference speakers. The well-known names on GitHub.
And then everyone else: writing [[Ruby.lang|Ruby]] at work, reading the blog posts, listening to the podcasts, watching the talks.
I never thought I was *outside* of [[Ruby.lang|Ruby]]. I just felt adjacent to it. Standing near the doorway. Hoping nobody noticed I didn't quite belong inside.
A lot of Rubyists feel exactly that way. Maybe some of you, right now.
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 don't 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 simply showing up
The visible parts of the ecosystem get the attention.
The conversations are what keep it alive.
### The Bridge
So how do you cross from *using [[Ruby.lang|Ruby]]* to *being part of the [[Ruby.lang|Ruby]] community*?
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 else said thank you. Somebody else wrote the tutorial that's the only reason you understood 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. 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.
I know that's true, because it's the only reason I'm standing up here. So let me tell you how I know.
### How I Know
Rewind about ten years.
I'm a junior developer. I know exactly three Rubyists in the entire world. And I share an office with all three of them.
There's no [[Ruby.lang|Ruby]] meetup in my city. Nobody I went to school with writes it. As far as my actual, physical life is concerned, the [[Ruby.lang|Ruby]] community does not exist.
But every podcast I put in my ears keeps telling me the same thing: that there's this warm, generous, world-famous [[Ruby.lang|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.lang|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.
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.lang|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.lang|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 here is the table he was sitting at.
I almost didn't go. I felt completely out of place. But I went.
There were a few developers gathered around some tables. [[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 had no idea what I was sitting down into. That those two would become my co-hosts on Remote [[Ruby.lang|Ruby]]. That [[Jason Charnes|Jason]] would end up being my coworker 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 gone like that. 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.
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 one Slack channel for years. Who've never given a talk. Never shipped a gem you've heard of. And who are every bit as much the [[Ruby.lang|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.lang|Ruby]]" to "I have 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.
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.lang|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 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.lang|Ruby]] well enough yet."
- "Someone smarter has obviously already said this."
- "My question is probably dumb."
- "What if I post it and… nobody replies?"
Here's what I've learned about those thoughts:
They show up in the beginner who just joined their first Rails team.
They show up in the developer who's written [[Ruby.lang|Ruby]] for ten years and still 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.lang|Ruby]] was built specifically to dissolve those fears.
[[Matz]] designed [[Ruby.lang|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.
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.
People exactly like you.
But I want to be honest: that culture is something we *aim* for. It is not automatic. [[Ruby.lang|Ruby]] has had its bad days and its unkind rooms.
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.lang|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 just need interaction.
And almost none of this is loud or visible. It's small. A reply. A question. A thank you. A bug report. The *accumulation* is what builds a community.
When you thank a gem maintainer, you're not just being polite. You're showing up for work that is often lonely and thankless, the kind of work people quietly burn out doing.
So a thank-you isn't the ceiling. It's the floor. 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. You don't have to be an expert to do any of that. You just have to show up.
When you ask a question in a Slack channel, you're not just solving your problem. You're adding to the record of how [[Ruby.lang|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. 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. And send the maintainer a short message. An email, a GitHub note, 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.lang|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 finally answers the question they were too afraid to ask.
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.lang|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, though in much of the world the real action lives in a regional Slack or a national [[Ruby.lang|Ruby]] community, so it's worth asking around.
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.
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.lang|Ruby]] now. Really write it. It'll explain the syntax, generate the tests, refactor your controller, and recommend a gem. In seconds.
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.lang|Ruby]] code. Only we can produce the [[Ruby.lang|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.
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.lang|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.lang|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 too 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.
The [[Ruby.lang|Ruby]] community isn't somewhere else.
It was never somewhere else.
It's right here.
So remember what I told you at the very top:
**You don't join the [[Ruby.lang|Ruby]] community.**
**You are the [[Ruby.lang|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.
**We are the [[Ruby.lang|Ruby]] community.**