00:00:18.960
I miss this little crew. The new one feels so enterprisey, right?
00:00:25.519
Did Did you know the change to make this crowd reflect the global Rails community a little better was kicked off by one of
00:00:30.800
RailsCom's keynote uh speakers? Of course it did.
00:00:38.000
Here we go. 2019's Ariel Kaplan opened the issue after talking to members of the core team at a conference. He said
00:00:44.640
so in his keynote, which was about how the stories we tell to those who are new to a community can shape the way they
00:00:50.640
view our group and their place in it for years, for ever maybe. When it fit the
00:00:56.320
theme of the Rails branding, this was a subtle but meaningful change.
00:01:02.160
Hey there, cats and kittens. Hi. I didn't expect that. That's so nice. My
00:01:09.360
name is Aji. My pronouns are they, them, and I am a development team lead at a
00:01:15.119
place called ThoughtBot. This year at ThoughtBot, our design team
00:01:21.360
has been working on a refresh of the core brand. I'm loving all of the work that they've been doing. So, if you haven't already seen it, this is some of
00:01:27.360
their handiwork. Having gone to art school back when print was a thing, I really love seeing my teammates get all
00:01:32.799
nerdy about kerning and refining specific ideas like changing the angles of the word mark to correlate to the
00:01:38.159
Wi-Fi signal lines. So this is this was just for me to shout out my design team over at ThoughtBot.
00:01:51.280
Kansas City. It was less than a year after I graduated boot camp around 6
00:01:56.320
months into my first dev job. If anyone had told me then that I would be on the main stage giving a keynote within 10
00:02:02.799
years, I do not think I would have believed it. Honestly, I'm not sure I believe it now.
00:02:09.280
The project I wanted to share with y'all here in Philadelphia is to watch every keynote ever given at Rails Comp
00:02:16.720
starting with Chicago 2006 to try and share some relevant takeaways.
00:02:23.280
As I watched, I filled up half a notebook with my thoughts. These are my keynote notes.
00:02:30.000
I collected the most impactful messages from each to construct a list of key keynote notes.
00:02:36.720
I only have an hour. So I had to select the most notable key keynote notes.
00:02:42.080
Soon to keep track of the hours of video I was watching. I developed a notable key keynote notes notation.
00:02:49.360
To find a through line, I wrote themes from each talk onto notable key keynote notes notation note cards.
00:02:56.480
And it would be July before I knew it. I'd be here delivering a notable key keynote notes notation noteards keynote.
00:03:06.879
I I started up my presentation software. What else but Keynote for my notable key
00:03:12.560
keynote notes notation note cards keynote. That's the file I'm presenting from right here. Keynote app. Notable
00:03:18.239
keyynote notes notation noteards keynote.key.
00:03:23.440
Yeah. And if you'd like a copy of the work that I've done with links to the videos, please note the keynote app,
00:03:28.800
notable key, keynote, notes, notation, notards, keynote, key footnotes.
00:03:35.680
You might ask, what would make me choose such a comically recursive topic? Silly
00:03:41.280
rabbit. Recursion is its own reward.
00:03:47.760
Really, my goal was to trick the program committee into giving me this session by repeating keynote as many times as
00:03:53.040
possible in my proposal, making this my first foray into social engineering.
00:04:08.239
Listen, I'm not likely to beat Aaron Patterson for the sheer number of puns, but I do want to make him work for it.
00:04:20.880
If you if y'all keep enjoying this so much, I'm going to go over time. So, I got on a call with Ufu, co-chair
00:04:27.280
of the conference, who just met in the process of asking me if I'd be willing to keynote. He actually said, "Yo, dog,
00:04:33.600
we heard you like keynotes." And let me tell you, you have not lived
00:04:39.919
until you've joined a Slack huddle and had a Ruby Central board member act out a meme from 2007.
00:04:48.560
I thought this will be easy, right? An hour of content. There are 94 talks. That's only 38 seconds per talk. And I'm
00:04:55.919
five or so minutes in already. So, more like 35 seconds per talk.
00:05:02.400
34 seconds per talk. See, it's getting easier by the minute. 34 seconds though is just not enough
00:05:08.720
time to communicate a lot from most of these talks. So apologies to all the speakers whose talks I'm about to give
00:05:15.039
far too little time or those that couldn't fit at all like Brian Canantrell who detail detailed the rise
00:05:21.680
and fall of Moore's law and told us why he is still excited about the future of computer hardware
00:05:28.240
or Paul Lamir an engineer at Spotify whose closing keynote in 2016 showed off some incredible projects built with the
00:05:35.120
unbelievable amount of listening and music data at his fingertips and the sign language interpreters who signed
00:05:40.800
some live generated music showed the rhythm in their bodies and absolutely stole the show.
00:05:47.680
With this project, the idea that once it's online, it's online forever was
00:05:52.800
seriously tested. All it's taken in some cases is 12 years
00:05:57.840
for recordings to disappear from this earth. Of the 94 keynotes to date, 79
00:06:03.199
have videos online. The rest were reconstructed from blog posts and articles. I even reached out
00:06:09.759
to each speaker to see if they still had video or slides. A few remembered their
00:06:15.520
important points. Nobody had their slides.
00:06:21.919
Some didn't have anything. Like this message from Yehuda Katz about his 2013 keynote. Quote, I think that's the one
00:06:28.000
where I ripped up my entire talk overnight to deliver a rebuttal to DHH on JavaScript.
00:06:34.479
I haven't been able to find it sadly. So that is Portland 2013 Yehuda Cats if
00:06:41.280
anyone has a lead on a recording. Oh, right. And I saw one Tuesday
00:06:46.960
morning. The video is not yet online. Three are panels, one is a podcast
00:06:54.319
recording, one is a talk with more than one presenter, and one is a multimedia spoken word computer science performance
00:07:01.120
art piece. Yeah, hold on to that one for a minute. And one that I didn't include, it does
00:07:07.599
have a video, but in perhaps predictable why the lucky stiff fashion isn't always acknowledged to have happened and is
00:07:14.720
maybe only 30% of the time even referred to as a keynote. I did this to myself because keynotes
00:07:20.720
are an elevated moment in conversations we as a community are already having.
00:07:26.560
Keynotes might reflect the conversations happening on Zoom, Teams, or Slack. Sometimes they'll begin or direct the
00:07:33.360
conversations being tweeted, skeeded or tooted. I said tooted on stage.
00:07:41.280
Keynotes certainly shaped the conversations being had at Rails Comp. The this annual ephemeral community of
00:07:47.280
ours during my historical eavesdropping. I've learned the inner workings of the Rails codebase and the Rails philosophy.
00:07:54.560
Learn to build the kind of work and the way to work that we want to see in the world. been inspired to reach outside
00:08:00.319
our community and be a positive force for change and that if we have nothing
00:08:05.360
to fear but fear itself that's recursive and we have infinite fear.
00:08:11.759
There's a lot we've talked about over the years but predictably an evergreen topic has been to introduce the newest
00:08:17.199
features of Rails. 2006 was the first Rails confident introduced conceptualizing our apps
00:08:23.680
domains as resources, embracing rest and learning to love the CRUD.
00:08:28.960
2007 we doubled down on restful principles, said hello to the doomed active resource and mourned the loss of
00:08:35.279
active web service and its first party processing of wisdals and soap.
00:08:41.360
Just kidding. Good riddens. Rails 2.1 was released during Rails Comp 2008 and Jeremy Dar spoke about
00:08:48.160
implementing performance test generators in 2009. We heard that whenever we got
00:08:53.279
someone new on Rails core, it was almost a right of passage for them to reimplement the router. Someone must
00:08:59.360
have joined the core team because 2009 saw a new router. Rails 3 comes out and uses Bundler for
00:09:06.320
dependency management and there was push back for Bundler.
00:09:12.720
horrifying. And of course, a new router.
00:09:18.160
Welcome to the core team, whoever you were. With Wales 3.1 just around the corner, we saw jQuery included as the
00:09:24.480
default front-end framework, and we found out that we were all getting coffecript, whether we wanted it or not.
00:09:31.760
2013 saw Aaron Patterson solved computer science with active support halts. E. He
00:09:36.880
demonstrated how our test suites were going to be faster, not by making them run faster, but by improving boot time.
00:09:43.120
He also warned us that not everything he says on stage is necessarily true.
00:09:49.600
The Rails 4.1 train pulled into Chicago in 2014, and we got to see some caching work that went into active record. The
00:09:56.480
excitement was high as Rails 5 was nearing release featuring action cable. Aaron Patterson uh shared that the core
00:10:03.440
team comes to RailsCom for the same reasons we all do, to hear about Action Cable for the first time.
00:10:10.640
Rails 5 did not yet have a release candidate, but they said it was just
00:10:16.000
around the corner and we all knew it was going to drop during the conference that year.
00:10:21.200
2016 version 5 brought a lot of changes, including a code of conduct.
00:10:28.000
I mean, it would when it came out 2 days after everyone went home.
00:10:34.160
Next mainstage update wasn't until 2018 where we got to see some of the work that went into the forking parallelizer.
00:10:40.399
And remotely in 2020, we heard from Eileen, you should tell about the long journey of upstreaming multiple database
00:10:45.839
support. Another remote Rails comp in an interview format. We got the scoop on
00:10:51.120
Stimulus and Turbo Hotwire and the email application that was its real world test
00:10:56.160
bed. 2022 didn't have much to say other than Aaron Patterson listing front-end
00:11:01.680
changes he had nothing to do with. Not not that he was trying to distance
00:11:07.120
himself from them, just that they are front end and he is not.
00:11:13.600
Just buckle in, Iron. As the platform is more stable, the announcements are less groundbreaking.
00:11:20.000
But hey, we can see where a route is defined now. Well, beyond the what, we often talk
00:11:26.480
about the why. Because Rails as a framework is opinionated. There is a Rails way, a Rails philosophy.
00:11:33.839
What is this philosophy? What about it is compelling enough for the keynote stage?
00:11:39.600
In 2006, Martin Fowler attributed the success of Rails to the expressiveness of the Ruby language and Rails
00:11:45.120
opinionated simplicity. you to implement a feature in a couple of hours to be able to discuss it with the customer
00:11:51.120
quickly iterate to yield a working version based on real user feedback. He called this fire first and aim later
00:11:58.640
all possible because Rails keeps you out of the plumbing taking responsibility itself for low-level implementation.
00:12:06.079
Keeping us out of the plumbing is a common idea in Eileen's talks in 2020. She said Rails takes on complexity and
00:12:12.800
gets out of your way. The framework should have the point of view for what the most natural and straightforward way
00:12:18.320
to use a feature is. In 23, Eileen said, "All of these different things that make the Rails internals difficult to
00:12:24.399
understand make your codebase easier to understand. Rails cares more about your
00:12:30.079
application than its own internals.
00:12:35.279
So much of the apps that we build are going to be the same, and by sharing those parts, we'll all work faster and
00:12:40.720
better." Yehuda challenged a common refrain amongst Rails detractors that by relying on common solutions, we were
00:12:47.120
dooming ourselves to leaky abstractions. But we're not building Rails apps by soldering transistors here. All
00:12:53.680
computing is abstractions. The bleeding edge feels leaky because it's still experimental. They forget the
00:12:59.360
mountain of shared solutions they're sitting on. The job is realizing when experimentation is over, the abstraction
00:13:05.920
becomes basically free and we can build higher.
00:13:11.600
But still many of the common problems being solved in unique ways aren't actually unique problems. Instead of
00:13:17.360
one-offs reinventing the wheel, Eileen urges us to have an upstream first mentality. Share the maintenance burgeon
00:13:23.279
and everyone can make use of the improvements. Reiterating those commonalities in 2023,
00:13:28.959
saying Rails is so much more than a framework. It's a community because Rails is extracted from real
00:13:34.880
applications. It's based on use cases grown from production solutions. Core team members Michael Kosarkski and
00:13:41.600
Jamus Buck refactored an actual Rails application during their keynote. They focused on what they said should be
00:13:47.279
done, showing the Rails way. Much of this advice is still familiar to us in 2025, like skinny controllers and
00:13:54.800
rich models, be cautious of overd drying, overwriting two param for friendly URLs, and to prefer clarity
00:14:02.079
over cleverness. The message being to find simplicity in understanding Rails conventions and
00:14:08.079
applying them judiciously. In 2007, Jark Lane used a metaphor of an
00:14:13.760
angel and a devil sitting on our shoulders. Don't listen to the devil of overengineering and hacking around Rails
00:14:19.519
constraints. Do listen to the angel of framework features and leaning on community practices.
00:14:25.360
Much like Martin Fowler the year before, Lane said, "Rails is about trusting the framework simplicity and focusing on
00:14:31.360
user centric development." These speakers weren't using the familiar phrase, but they were talking
00:14:37.279
about convention over configuration. Number one with a gold star amongst the
00:14:42.399
Ruby on Rails feature set. Yehuda again in 2014 introduced the term
00:14:49.199
ego depletion. Probably better known these days as decision fatigue. Decisions draw from the same finite pool
00:14:55.360
of resources taxed by willpower, emotional regulation, planning, and organization. To spend as much time as
00:15:01.680
possible on relevant choices, convention over configuration saves your resources
00:15:07.199
because defaults are the most powerful weapon to fight against cognitive depletion.
00:15:12.720
Rails doesn't leave us thinking, "Oh, if only my web framework had a good abstraction for databases, I wouldn't
00:15:17.839
have to think about connection pooling." Brian Lile called decisions like choosing an OM or view templating
00:15:23.680
language configuration tax and labeled it as a form of technical debt
00:15:29.519
because in Rails opinion, constraints are liberating. And I agree though my
00:15:34.880
usual way to express this is that creativity happens in a box meant to run counter to the platitude of think
00:15:40.720
outside the box. pushing against or giving into your constraints yields a better result. And Rails gives you
00:15:46.480
constraints that aren't even detrimental. I had to get something in here, right?
00:15:52.480
Here's another one. Small, simple objects sending messages.
00:15:57.680
Nobody went to my other talks. All right. So, we're going to take the first detour
00:16:03.199
of the morning
00:16:10.320
because not all the topics of the talks jump smoothly from one to the next. So, let me try again for Ruby's 21st 25th
00:16:16.959
anniversary and I'll see what I can do. It's no secret that Rails is a darling to startups. The productivity, time to
00:16:24.160
market, quick iteration cycle are all bullse eyes for the needs of new software products.
00:16:30.000
Though not as much in the last 10 or so years, having speakers who were involved in entrepreneurship, startups
00:16:35.279
non-technically was a mainstay of the first era of RailsCom. Sarah Chip shared her journey of
00:16:41.839
bringing a physical product, Jewelbots, to market. And despite the incalculable differences between software and
00:16:47.519
hardware, on the face of it, so much was recognizable. She and her partners made sure to talk with their users and they
00:16:53.759
iterated with Arduinos instead of Ruby because you can't tell your audience what they will be excited by. Hardware
00:17:00.720
or software, a startup needs to listen. Be tiny until you shouldn't be. No
00:17:07.199
heruristic was given. assume that you're wrong and be open to randomness
00:17:13.679
because a startup is a human institution designed to deliver a new product or service under conditions of extreme
00:17:19.600
uncertainty. It's an experiment not trying to answer can this be built but should this be
00:17:25.919
built and I feel like more startups need to watch this talk
00:17:31.280
and to Ree the most important part of the entrepreneurs toolkit is the pivot
00:17:38.000
entrepreneur Gary Vaynerchuk called us to action to have honest relationships through our products part of this
00:17:44.000
session get a new life in the current context of AI when the internet is flooded with vibecoded garbage and
00:17:49.760
conversations between agentic robots are being prioritized over conversations with people. It's going to be authentic
00:17:55.760
human connection that wins the day. Why combinators Paul Graham spoke about
00:18:01.200
how insider projects are often hindered by excessive scope and inability to take risks and the weight of expectations.
00:18:08.160
While outsiders have fewer expectations and less to lose, closer contact to users and a comfort with looking
00:18:14.160
undignified. He said outsiders should embrace being small, working cheap,
00:18:20.320
focus on vertical slices, and don't imitate the flaws of successful people.
00:18:26.960
This tapered off, and after 2015, we didn't have the same presence for startups, incubators, and entrepreneurship on the keynote stage.
00:18:34.480
Until Detroit, Arena Nazova started her presentation with the question all Rails doves, Rails
00:18:41.919
devs love to hear. No, not but does it scale? It's not 2008. They ask, "Isra Rail's
00:18:49.840
dead?" I mean, hell, I've heard this for all 10 years of my career. She wanted to
00:18:55.200
know why people won't give up on this question. What are they really asking?
00:19:00.320
It's are people choosing Rails in 2024? The logos of established Rails adopters
00:19:06.640
are seen all over the years of Railscom sponsor lists, Shopify, GitHub, Gusto,
00:19:12.320
Chime, Beyond Finance, and more. But where are the stories of new businesses
00:19:17.600
starting with or switching to Rails? The opening keynote at Detroit broke the
00:19:22.880
silence and Nadia Oduio enthralled us with the story of zero to two million users as a onewoman dev team. Viral
00:19:29.520
success built with Ruby on Rails.
00:19:39.760
I'll let it finish taking a picture of herself.
00:19:46.960
But last I noticed, the title of that talk was 0 to 4 million users as a onewoman dev team. And I hope she never
00:19:53.200
stops having to update it. Arena highlighted other stories that
00:19:58.720
prove what we all suspected, that the reports of Ruby's death have been greatly exaggerated. Repeat founders
00:20:04.799
choosing Rails a second time with craft work. Young founders inexperienced with serverful application architecture,
00:20:11.919
rapidly growing startups on Rails, an established company switching from
00:20:16.960
Java microservices to a majestic Ruby on Rails monolith, even if at first they
00:20:22.480
weren't convinced. Right, Dan.
00:20:29.360
Let's continue to raise these kind of stories into the limelight. Rails doesn't need a new hype train. It's time
00:20:35.200
to share this 20 years strong hype train with new passengers. So, punch your
00:20:40.240
ticket to hype town. Choo choo. I'll stop.
00:20:47.760
Here we are back on track. I guess I had one more. True that Rails cannot be
00:20:53.840
separated from the context where it exists. Now I don't mean startups but open source. Members of the core team
00:21:00.559
held a panel in '09. The question was asked, "There are more of us, the community, than there are of you, the
00:21:07.120
core team. What do you want the community to be doing?" Well, in 2019, Aaron Patterson shared
00:21:26.159
He did this to himself. In 2019, Aaron Patterson shared that
00:21:32.240
he's often stopped to be thanked by a member of the community for all of the work that he does in open source. But
00:21:37.440
the real story is thanks to us, the ones who are building companies in Rails, programming in Ruby, creating demand for
00:21:44.000
the language. That's what enables him to have Ruby as his day job. Gratitude
00:21:49.120
works in both ways. Shaveier told us in 2022 the story of
00:21:54.720
building Zite work all on top of a deprecated language feature Matt strongly thought should be removed.
00:22:01.120
Because Shaviier was respectful in sharing what Zitework was able to do with the deprecated feature, it created
00:22:06.400
the space for Matts and the Ruby team to come to the conversation in the same way. They could have a technical
00:22:12.240
discussions around what problems were being solved because there was no need for being defensive or protective of
00:22:17.440
their time. You have to approach open source with humility. You have to know that you don't always have the same
00:22:23.679
context as the maintainers. being respectful for other members and accepting decisions about ideas that you
00:22:29.679
might have that they are the ultimate stewards of their decisions
00:22:35.360
because all the other people out there doing open source are your co-workers.
00:22:41.919
Eileen posed a question to leadership teams that don't see the value in open source work. How can Rails not be
00:22:48.080
important to your product if the entire company depends on it? Investing in Rails is proactive. Rewriting an
00:22:55.039
application in Go Microservices is reactive. And which do you think is better for your business?
00:23:02.559
Because selling this work needs you to tell a story. Features tell their own stories. Open source performance, all of
00:23:08.960
those unglamorous necessities need help. So not just the panel in 2009, over the
00:23:15.039
life of Rails Comp, what has the core team said about our involvement? that the people reading your PRs are people
00:23:21.280
too. Keep humility, improve the tools you rely on upstream instead of monkey patch. Advocate for
00:23:28.320
open source in your company and keep showing up. If you're thinking about advocating to
00:23:34.559
your leadership about investing in open source, watch this talk, 2022, Eileen.
00:23:40.240
She gives actionable strategies for framing your argument in terms that matter to their goals. And a talk to
00:23:45.840
watch if you want to start contributing to Rails is this one. You'll be introduced to the Rails project governance model, low barrier ways to
00:23:52.240
get involved and a highle tour of how the whole thing fits together. So jumping into the repo won't feel so out
00:23:57.679
of reach. I know Eileen, sorry you're in this a lot, but if you stop saying
00:24:03.039
awesome things, I will stop putting them in slides.
00:24:14.000
But know that there is no expectation for you to repay some kind of karmic debt to the core team or any
00:24:19.600
maintainers. It's in the language the core team uses towards the community. Sharing, gratitude, humility, a love
00:24:28.400
letter that too is part of the rails way.
00:24:35.520
It's now time for a second detour which I have entitled Why is Aaron Patterson?
00:24:45.520
I was trying to type who is Aaron Patterson but I typoed why and I thought it was better so I left it.
00:24:52.640
Of the 94 keynotes, 14 of them were given by Aaron Patterson. After later today, that total will be 15, putting
00:24:59.760
him at three more presentations than the runnerup, making him the all-time Rails Comp World Champion.
00:25:12.000
Yeah. Marking yet another instance where an American would declare another American
00:25:17.039
the world champion without a Rails comp ever having happened outside the United States.
00:25:23.200
If you've seen several of his talks, you would be forgiven if you were to consider them formulaic. At first, I
00:25:28.320
thought I'd be breaking new ground by saying that, but no. At least twice before, he's given away the formula. A
00:25:35.440
format he calls the reverse mullet because
00:25:43.600
it's party in the front and business in the back.
00:25:50.000
Not to mention the supposedly unauthorized bingo card in 2019.
00:25:56.880
He'll start with some jokes about the small mom and pop shop he works for, which during his Railscom tenure has
00:26:02.400
been AT&T, Jitub, and Shopify. He'll go into some local jokes,
00:26:07.760
essentially the same joke as The Last Step, but with local giant companies. He'll tell a story about writing a
00:26:13.520
script that attempted to charge his credit card thousands of times. respond to the opening speaker having said
00:26:19.120
something bonkers that could be dangerous if left unchecked and end with a picture of his cat.
00:26:32.799
Of course, what follows is the technical part, which very often is about performance, but maybe it's a list of
00:26:38.400
projects he doesn't have time to do, but still wants to see happen, or an overly
00:26:43.600
complicated recreation of a common feature that takes 50 ridiculous steps and often ends in a pun, like recreating
00:26:51.039
SSL by shortcircuiting shortcircuiting assembly code into his smart fridges ice maker, all because his manager said they
00:26:57.840
were on a code freeze. His
00:27:02.880
talks are usually at the end of the conference. He asks very tired brains to go on these incredibly complicated
00:27:08.559
technical journeys, deep dives into the weeds, the kind of subjects that should be dry and far from compelling when half
00:27:15.520
of us are still recovering from karaoke. But we don't feel like we're being taught principles for properly
00:27:21.360
benchmarking or about an inline cache that happens within VM bite code. We're laughing along trying to uncover the
00:27:27.760
longest, silliest method name defined by metaroming in the Rails codebase.
00:27:33.279
We walk away remembering that single quotes are always faster because you don't have to hold the shift key.
00:27:42.559
But sneakily, he's walked us through something we never thought to try and understand and shown us that it might be
00:27:48.000
a lot. But wait, I I actually did get that. And maybe if performance work is
00:27:53.360
something that I can tackle. I mean, at the very least, I wouldn't be trying to do it with one hand tied behind my back,
00:27:58.640
only allowed to use a bootleg Super Mario Brothers ROM as an IDE.
00:28:03.919
So, yeah, maybe I do know a little more about Mark and Sweep Garbage Collection after all. Hey, wait a minute. That guy
00:28:09.679
with the green screen oper. Oh, that's why Aaron Patterson.
00:28:18.559
Sorry, sorry, sorry. Rails Comp World Champion Aaron Patterson.
00:28:35.840
So just like there's a Rails way, there's also a Ruby way. And that philosophy shapes the way that Rails thinks. Rich Hickey, a propon a
00:28:43.440
proponent of functional languages and not a rubist, spoke in 2012 and advised rigid rigid dedication to an opaque
00:28:50.159
concept of simplicity. I would call it a rare miss in Railscom's tradition of inviting voices
00:28:56.080
from outside our community. But it did broaden the discussion because that session came up again and again in other
00:29:02.720
sessions the same year like James Edward Grace saying that a simple thing plus a simple thing plus a
00:29:08.880
simple thing doesn't always result in a simple thing. Fellow Ruby rogue Avi Grim
00:29:15.200
said that all sufficiently large and successful systems eventually evolve into object-oriented ones.
00:29:21.679
Y though Hickeyy's session landed flat, it doesn't mean that we are adverse to
00:29:27.919
learning and understanding different approaches or languages. Enter 2001's computer science performant art where
00:29:34.640
Guy Steel and Richard Gabriel spoke 50 statements, each with exactly 50 words
00:29:39.679
about 50 different programming languages. Whether you're going to enjoy this one
00:29:45.120
or not, you probably already knew 30 minutes ago when I said the phrase multimedia spoken word computer science
00:29:50.799
performance art piece. In 2010, Robert Martin talked about how
00:29:56.000
nothing has changed in programming since 1962, which if true would have made the 50 statements piece more like 12.
00:30:04.320
The language Ruby shares the most with is small talk, and the comparisons were common in the early days. Avi Bryant
00:30:10.000
styled himself as a messenger from the future because he comes from small talk and we could learn from their experience. He proposed some ambitious
00:30:17.679
solutions to Ruby's perceived performance problems, including alternative VM implementations like
00:30:23.039
Small Talk's proprietary gemstone VM. While that wasn't widely adopted,
00:30:28.080
conversations started by Avi could be said to influence alternative Ruby implementations like J Ruby and
00:30:33.600
Rubinius. People are here and I probably just said something wrong about
00:30:39.919
Robert Martin's 2009 keynote was called what killed small talk could kill Ruby too. Small talk he said had some pretty
00:30:47.120
serious projects going for it and it disappeared nonetheless. his theory there was an arrogance to the community
00:30:54.159
like our language is so good we can behave however we want alienate whoever we want but that was received outside
00:31:01.120
the small talk world with they don't seem to like us very much let's go somewhere else
00:31:07.600
so what's the antidote if community can bring down an otherwise successful
00:31:12.640
programming language in 2007 say Frank held up core values
00:31:18.240
like conversation community and belonging longing, treating technology as a facilitator of human connection,
00:31:24.960
reminding us that the Rails community and the web at large thrive on interaction, playfulness, and
00:31:30.000
collaboration. In 2016, Jeremy Dar celebrated Rails adopting a code of conduct. He credits
00:31:36.960
Ruby with setting up the kind of community that we would want to work in.
00:31:42.240
Corey Haynes proclaimed, "The Rails community is awesome, encouraging us to keep up the mentality of sharing and
00:31:48.880
supporting reminding us that the shest way to being and staying awesome was through
00:31:54.399
practice, to learn in public, to build things and share it. A great way to contribute as well as building your own
00:32:00.960
skill. Dan Melton praised the community for sharing learning and the tools that we
00:32:06.480
build. He drew correlations between Ruby and activist groups, being self-organized, opinionated,
00:32:12.480
decentralized, and generate generating a lot of stuff.
00:32:17.600
What was Martin's antidote to what killed small talk? He called it professionalism. The discipline of
00:32:23.840
wielding power. Making the active decision and effort that we're not going to denigrate people who don't share our
00:32:30.159
privileges. What will save Rails and Ruby from the same demise? The community is more
00:32:36.080
dynamic and larger. Doesn't she? We will have humility and we will keep the
00:32:41.519
community open. Generous read on that talk. I know.
00:32:49.360
That is the community we recognize, right? But it took work. Martin Fowler
00:32:54.640
wrote about his time with Rubious since 2007, and someone from the Sage said the Rails community had a reputation as a
00:33:00.240
bunch of arrogant bastards and cringed as a group in the room raised a triumphant cheer.
00:33:07.200
Joel Spolski paused in the middle of his presentation to say, "I just noticed there aren't many women in the
00:33:12.720
audience." Tim Bray from Sun Microsystems came to Railscom Portland to sell computers, but
00:33:19.840
still pointed out that the audience was almost all men and asked the room if they were okay with that and if not,
00:33:25.760
what they were going to do about it. The same year, Dave Thomas emphasized
00:33:30.799
inclusion, saying the Rails community has a real opportunity to set the standard for welcoming all people in.
00:33:38.000
Martin Farlo continued in his writing about 2007 that there was a strong push from Ruby leadership to try and change
00:33:44.399
all of this. A theme from several talks was that our community had an opportunity to try to lead the software
00:33:51.039
profession away from this tarpit of nastiness and lack of diversity to create a community that really welcomed
00:33:57.039
many types of people into a nurturing environment because we need to invest in new ideas.
00:34:04.240
One of the things that has enabled some of the most impactful contributions of our team is hiring people with different
00:34:09.359
backgrounds and ideas. A diverse team has enabled, if not led to, some of the greatest innovations that have empowered
00:34:16.240
the entire community. But inclusion most often comes first.
00:34:22.079
Inclusion means that beyond those diversity statistics, companies like to show off, that those people have a seat
00:34:27.599
at the table. Diversity and inclusion have a symbiotic relationship. Diversity
00:34:32.960
can come along more easily when you prove that you're inclusive.
00:34:43.040
Little water emoji tells me to drink water.
00:34:48.800
Yeah, water. Ultimately, part of why we come together is to talk about the process of our
00:34:53.839
work, to shape our workplaces into the kinds of workplaces we can thrive in.
00:34:59.280
2008, Kent Beck traced the evolution of software ideas like automated testing and extreme programming and the nearly
00:35:05.280
20 years it took each idea to take hold. If 20 years is the amount of time
00:35:10.320
required to shift the industry, what have we influenced about the way that we work through 20 years of Rails comp
00:35:15.680
conversations? Chad Dickerson asked, "Why is the assembly line so dehumanizing?
00:35:22.000
It deprivives the worker the satisfaction of finishing a job optimized to efficiently crank out a
00:35:27.680
single step. He gave an example of an airplane factory inviting the assembly line workers to have contact with their
00:35:34.480
completed planes and to talk to the pilots, the users of their output
00:35:40.000
to experience the final product. If companies really want their workers to produce, they should try to impart a
00:35:46.320
sense of meaning and not just through vision statements. Allow employees to feel a sense of completion and ensuring
00:35:53.040
that a job well done is acknowledged. In 2022, Videoshi shared a story of
00:36:00.320
burnout of how we humans are hardwired for curiosity gives us meaning. She
00:36:06.079
urged us to protect our curiosity because there isn't a chance of phys
00:36:12.240
physical connection to what we build. Shavear worked as his new autoloader
00:36:17.680
even before changing Matt's mind about the deprecation. It was his grail project. Nurturing his creativity,
00:36:24.240
delivering the solution brought immense personal satisfaction.
00:36:30.000
Kentback challenged himself to come in front of a thousand rubists and talk about feeling uncomfortable at work.
00:36:36.880
Here he is, creator of Extreme Programming, using his platform to talk about empathy.
00:36:44.240
He said, "Feelings are a noisy signal, but they're telling you something. Am I sure what I'm doing matters? If not,
00:36:51.599
he's going to find out. Does my code work? If not confident, he takes the
00:36:57.280
steps to get confident. Do I trust my curiosity?
00:37:11.359
But he didn't trust her curiosity and it took a toll. Shavier followed his curiosity and it
00:37:17.280
benefited Rails and the whole community. Kent encourages his curiosity and that
00:37:22.400
contributes to his well-being. A consistent message about finding meaning in your work by supporting
00:37:28.320
yourself, your curiosity, and your creativity. Okay, but I said creativity. Is that
00:37:35.040
even the domain of engineers? I'll do it. Are we even engineers?
00:37:41.680
Engineering that comes to many people's minds is civil engineering. It's the discipline that's easy to see in the
00:37:46.960
built environment. In engineering of that sort, the engineer makes the specification, the builders execute the
00:37:53.520
specification, and the final product is an overpass or a bridge. The
00:37:58.800
construction is the most expensive phase of a civil engineering project by far.
00:38:04.720
the math, the modeling, the engineering to support the builders executing correctly. The first and only time.
00:38:14.240
Before the early to mid60s, this is how software was made. Engineers wrote a design document, handed it off to the
00:38:20.480
programmers that would make the final product, the source code. But eventually they said, "Wait a minute, we have never
00:38:27.119
been able to specify a program enough to avoid a lot of iteration or just outright failure." So we shifted left.
00:38:34.480
The engineers and programmers became the same people. And a shipped application is the final product. The source code
00:38:41.359
isn't the output. It's the specification. But the previous thinking still ruled.
00:38:47.520
Rigorous definition of requirements overload phase one because phase 3 is expensive.
00:38:54.079
But without heavy machinery, what is the third step? It's an automated tool chain. Compilers, cloud deploys. For our
00:39:00.720
work, phase three is by far the cheapest step. It's practically free.
00:39:06.720
If we've proven time and time again that no specification is good enough to avoid iterating, and we know that iterating is
00:39:13.040
the best way to build a good product, we need to stop treating phase 3 like it's the hard part. Build again and again.
00:39:19.920
Get feedback. Build it again. In 2018, stepping in for a presenter who
00:39:26.640
the travel gods thought would be better in 2019. Sarah May said that software is more like a group of theater people
00:39:32.560
putting on a play than an assembly line. Maybe the problem is in the word architecture.
00:39:38.320
What if software is more like Manhattan? The infrastructure and buildings already exist, but we can choose or change the
00:39:45.200
interior space. But software interior designer doesn't have uh quite a ring to
00:39:51.280
it. We're told that what you produce is your value. that meritocracy exists and will
00:39:57.599
lead to a truth decoupled from our humanity. These things are a myth.
00:40:03.680
Our bodies send noisy signals, but pay attention. What do we perceive when we're overrun and we find ourselves on
00:40:09.920
the drama triangle? Persecutor says, "It's all your fault." Rescuer says, "Don't worry, I'll handle it."
00:40:18.320
Victim: Why does this always happen to me? How do you get off the drama triangle?
00:40:24.079
You recognize the sensation of your body. Breathe
00:40:29.520
and pause before you continue. Persecutor becomes the challenger. Truth tellers but not blamers. Is that really
00:40:37.119
what's happening? They ask. The victim becomes the creator. Forward movement looking for wins. And the rescuer
00:40:44.400
becomes the coach. See the creator in the people you support. Not attached to outcome but holding accountability.
00:40:53.520
Nick Means recounted the development of advanced spy planes by Loheed Martin's skunk works team in 2016.
00:41:00.800
The true story of an engineering and design team that consistently took unreasonable deadlines and unprecedented
00:41:06.880
requirements and turned them into machines that accomplished what no machines had done before or since. The
00:41:14.400
team spent their time figuring out how to do the important things and hacked their way around the other stuff. One of
00:41:20.160
these high performance planes would drip fuel while on the runway, but no
00:41:25.359
material existed to seal the tank that would survive the vehicle's staggering operating envelope. The important thing
00:41:31.440
was to fly higher and faster than any other plane.
00:41:36.560
How did that impossible situation become real? It was the trust that leadership
00:41:42.319
put in the team. So, your team should know the most important things about what you're building.
00:41:48.720
You should know the goals so that you can contribute beyond just writing code. If that's not the case for you, push
00:41:54.960
back hard and change it. If you're in a leadership role, make sure you're clearly communicating the
00:42:01.599
two or three most important things. Give your team the context for decisions and trust them to make the right ones. Do
00:42:08.880
you get that, Dan? Because culture matters. Spend time on
00:42:15.599
it. Less of the right people can do more.
00:42:21.520
Chad Dickerson told us about the push train at Etsy, a self-managed production deploy line. Works like an airport
00:42:28.560
without an air traffic controller where the planes line themselves up on the runway. They have non-coders participate
00:42:35.119
in the push train, and everyone there had pressed the deploy button more than once.
00:42:41.440
Recognize what it feels like when you're hijacked. Remember your own agency and fight to
00:42:47.440
give that agency to your team. Use tools to build happy communities and your team
00:42:52.880
is one of your communities. Optimize the team for the happiness of
00:42:58.160
your people. What makes a user unhappy? Joel Spolski
00:43:04.240
says it's not being in control. Think of the average user's experience of Windows. Constantly being told, "Do
00:43:11.119
this, update that." Being bered by the OS for 30 minutes before you can use the
00:43:16.400
computer you're supposed to be in charge of. MP3 players all do the same thing, but
00:43:23.119
the iPod sold millions and the Zoom didn't. The best products make users feel like
00:43:29.359
they have agency over their experience, even if it's been finally tailored.
00:43:34.880
That's Rails. Developer experience of using Rails is top of mind as it's being
00:43:39.920
designed, built, and maintained. We choose Ruby and Rails because of the joy and the work that we have. Even
00:43:46.640
though the end result, a server sending HTML is the same as Django.NET or
00:43:51.920
enterprise Java. Shopify introduced sorbet. And
00:43:57.119
originally, Rafael Fransa wasn't sold. Said it was a solution in search of a problem.
00:44:03.040
What changed his mind? Surveys that showed the the impact to the developers, not system metrics. He
00:44:10.480
saw it bringing satisfaction, maybe even joy to the team.
00:44:15.680
The user experience of building a system extends far beyond the technology choices. If you see a problem in the
00:44:22.319
code, it's reflecting a problem in your communication structure. Doesn't then Conway's law imply that by fixing
00:44:29.200
communication and team culture, we fix our code. It's never a code problem, is it? Right?
00:44:36.640
Creating good habits, deciding as a team to create a space to exist in together.
00:44:42.800
Don't ask for permission, but be upfront. Don't ask for forgiveness, but learn
00:44:48.160
every time. Do ask for advice, but don't always take it.
00:44:54.560
What if instead of a place you have to live, your codebase was a place you get to live?
00:45:03.119
Linear scaling is easy to achieve. It's almost always enabled purely by the technology. Participation in people
00:45:10.000
create hyperlinear scaling. by fighting hero culture, making it safe to question
00:45:16.000
and learn, collaborating by default, and holding empathy as a core value.
00:45:23.520
Teaching scales, sharing learning scales. This community here in this room
00:45:29.119
makes us scale. So, does Rails scale? Sure, but we do it better.
00:45:37.440
Barack Obama and Michael Bloomberg said everyone should learn to code. Not that everyone should have a career as a
00:45:43.599
programmer. In an increasingly technologically intertwined world, everyone should have a chance to peak
00:45:49.680
behind the curtain of the internet. Conversational coders like conversational language speakers that
00:45:54.960
have other roles on the team. Product people who can understand a little of the conceptual level and customer
00:46:01.280
centric developers who understand the business needs and the user problems. Wouldn't that make for an excellent
00:46:07.520
crossunctional team? Using archetypes to describe personalities on teams, Michael Lop
00:46:14.480
named stables and volatiles. Stables happily work with direction and schedules. They value efficiently run no
00:46:21.280
drama teams. Assess risk and generate process. Volatiles hold themselves up in
00:46:26.880
a room and build a thing in 3 weeks. They find thrill in risk, crave chaos, and don't care how you feel. Lap says we
00:46:34.480
need both of these folks. That both are right. also that they hate each other.
00:46:40.880
A successful team must have them in balance and they must work together.
00:46:47.440
Justin Surl said that when we're taught, we learned what a program is, but not how to program.
00:46:54.560
Thought process. Well, everyone is either making it up as they go or pretending they understand it.
00:47:01.040
Who's going to succeed in that environment? Well, it's the people with the overconfidence of having been told
00:47:06.640
they're brilliant their entire lives. Imagine you walk into a room and you lack the privilege of having been told
00:47:12.560
that you're brilliant by society. If no one can actually explain what it is that we're doing and we want to make
00:47:18.240
programming a more diverse and inclusive industry, Justin says we really need to solve this.
00:47:24.400
So his talk introduced the Surlesbriggs programmer personality test inspired by the MyersBriggs type indicator, the
00:47:31.920
worst type system. It assigned labels and gave us language
00:47:38.480
to explain how we might think. Stable and volatile were hiding in that test.
00:47:43.839
Probably even the persecutor, rescuer, coach, and creator. I was fault, by the
00:47:49.599
way. Justin was salt.
00:47:54.640
And as you might have guessed, that QR code will take you to a PDF version of the test.
00:48:02.240
Make your codebase a livable space. Remember that people scale more than machines. Be a customer centric
00:48:10.079
developer. Share your thinking, especially with those who are new.
00:48:26.559
So you hit a cat. He destroyed the argument that shared
00:48:31.920
solutions should be avoided. Rails has just proven that this is not true. One phrase from Yehuda in 2014 stood out to
00:48:39.599
me because it sums up so much of what the defining phrase of the Rails philosophy means.
00:48:45.520
We need to push back on the excuses that drive us apart instead of the things that bind us together.
00:48:52.160
Dan Melton believes the Ruby community has values that can be a positive influence on the world. values that
00:48:57.520
pervade the work that we do. James Duncan Davidson visited the Star Wars filming set in the Tunisian desert
00:49:04.240
and was surprised to see in a place that felt so remote, people tweeting.
00:49:10.880
Tunisia was the crucible of the Arab Spring, a nonviolent movement that caught fire throughout social networks
00:49:16.720
that we all watched happen live on Twitter. Twitter started on Rails. Let's
00:49:22.319
not get into it. a region of the world standing together
00:49:28.559
only a handful of years after Rails knew. James wanted us to ask if we create more
00:49:35.760
value than we capture and not to stop at don't be evil.
00:49:44.400
The impact of the Arab Spring didn't last the way that we had hoped. And maybe in 2025, 15-minute blogs are more
00:49:51.599
closely tied to the subversion of democracy than to hope.
00:49:56.720
But maybe that's a more powerful wakeup call that our work affects the world outside of Palo Alto or Chicago.
00:50:05.520
By 2019, Brady Chris knew what Davidson didn't. That we are living in the worst
00:50:10.800
timeline. How can we make an impact? We see the outsized impact of our industry, but
00:50:17.200
individually we're a drop in the bucket. Brady said, "Be a drop in the bucket.
00:50:23.280
Choose which bucket with intention because nothing that changed the world has ever truly been created by a single
00:50:28.640
person. I've always believed that just building a team that cares about how we work and
00:50:35.680
dares to be inclusive can be a radical act in and of itself.
00:50:48.720
There's one talk that means more to me than any of the
00:50:54.319
other talks I've seen live recorded or reimagined.
00:51:00.079
It's just a few stories from Marco Rogers experience as a black man in tech
00:51:06.160
and it's one of the most memorable sessions in my RailsCom career in my life.
00:51:11.520
He called it survival tips for being black in tech but it wasn't actually for
00:51:16.559
other marginalized folks. in all likelihood they have already discovered their own versions of them.
00:51:23.760
He said, "If you take nothing else away from this talk,
00:51:31.040
let it be hearing from me that being black always matters. Whatever it is you're trying to do, I'm
00:51:36.720
trying to do it, too. But I'm trying to do it while black." And that means that the rules might be different.
00:51:44.640
The tip was learning that this kind of advice
00:51:49.839
even exists and how much it dominates the experience
00:51:56.000
of those that live them.
00:52:04.800
I was asked to examine my participation in the systems that make simply having a day job,
00:52:14.319
something akin to survival.
00:52:20.240
To see that not talking about politics at works only deepens the need for these defenses.
00:52:29.440
Everyone has I would hope a personal journey towards being a better person
00:52:36.160
and this is a definitive moment in mind
00:53:02.640
It happened at Railscom. So I want to ask without Rails comp
00:53:12.720
what might we lose?
00:53:19.119
I know that Railscom isn't the only place this community exists, but it is
00:53:24.480
soon was an important part of it.
00:53:34.319
We came together here because of a web development framework, but we took much more home.
00:53:41.520
Without a doubt, Rails Comp created more value than it captured.
00:53:47.359
Because we came here to find commonality and to push back on the excuses that drive us apart instead of the things
00:53:53.440
that bind us together. We came here for the new folks who might
00:53:59.680
be terrified to attend their first tech conference
00:54:04.720
after a career pivot. We came here so they could walk straight into the arms of a welcoming, diverse, inclusive,
00:54:11.040
inspired, and supportive group of enthusiasts. Yeah, enthusiasts for Rails.
00:54:18.079
Yes, enthusiasts for community. We cannot shake that word. We are
00:54:24.000
community simply by being we.
00:54:29.200
I want us to persist. I want us to commit to continue to learn from those outside our community and
00:54:36.960
listen to the experiences of people who are not part of our bubbles. I want us to continue admitting that we
00:54:43.520
don't know everything and that we can learn from everyone.
00:54:49.839
What might we lose if all the talk should be of a technical nature?
00:54:55.040
You could ask, what might we lose when our viewpoints aren't challenged, we don't grow,
00:55:01.119
and we only listen to things that are out of date long before we arrive at next year's hotel ballroom.
00:55:07.839
Fundamentally, our values about creating software that are reflected in Ruby on Rails built by us, the community,
00:55:15.839
align very closely with our values about how we want to treat each other.
00:55:22.079
You don't have to go very far these days to find someone whose rhetoric starts at divisive and goes down from there.
00:55:28.480
But what this 20-year experiment has shown me is that kind of small, scared behavior is not only repugnant, but it's
00:55:34.240
the antithesis of Ruby on Rails. It's the antithesis of why we've come
00:55:41.200
these last 20 years to Chicago, to Portland, Las Vegas, to Baltimore,
00:55:47.359
Austin, Atlanta, Kansas City, to Pittsburgh, and
00:55:52.640
Phoenix. It stands in diametric opposition to why we've come here to Philadelphia.
00:55:59.040
The values of this community are baked into this framework.
00:56:04.400
And now more than ever, they are our shared responsibility to live.
00:56:48.720
Um,