April 17, 2018

The Ruby Central Opportunity Scholarship Program

Over the last four days I attended RailsConf as an Opportunity ScholarRuby Central offers these scholarships at both RailsConf and RubyConf. According to their website, the program is "open to anyone who would not normally attend, though we specifically encourage students, women, minorities, and other underrepresented groups in the technology sector to apply." The scholarship includes a free conference ticket, a guide to help you through your first conference experience, and a variety of activities to help scholars and guides build their relationships within the larger community of the conference.

I applied because I do not have much contact with other developers, I could not afford my own ticket, and I felt somewhat lost at the only previous conference I had attended. I am not a part of any underrepresented group, though many of the other scholarship recipients were.

From what I can tell, this program is not very widely known. I stumbled across a link to the description page on the day of the application deadline, and while writing this post I couldn't find the page on the site without googling it. Some of the conference attendees that I met who had been attending RailsConf for years didn't know about it. I write this in the hope that someone who didn't know about this program will be able to attend a conference for the first time because of it, or will choose to mentor a first-time attendee as their conference guide.

beginning_of_conference - 2.weeks

My guide was Ariel Caplan, founder of the Dev Empathy Book Club. He got in touch and set up a video chat for us to get to know each other. We spent about two hours breaking the ice and planning for the upcoming conference. This was great, because it meant I already knew one person before getting to RailsConf.

The scholars and guides were also invited to a Slack channel in the weeks before the conference. This was a good way to chat and ask questions. Some people made arrangements to share rides or accommodations. There were also a few planned Q & A sessions.

Day[0]

The conference took place Tuesday through Thursday, but scholars and their guides had a get-to-know-you session on Monday before the conference was in full swing. I got to meet quite a few people, some of whom I was familiar with from tech blogs, Twitter, Github, or other public arenas. I was pretty exhausted from travel, but it was nice to learn some names and faces for the upcoming events.

Day[1]

Scholars and guides have a reserved section during keynotes, so I was front row center for DHH's opening talk. I was expecting something about the direction of Rails now that development has begun on version 6, but the presentation was more philosophical than that, about how the mission of Rails is to empower developers to make better apps, in less time, with fewer barriers to entry than any other framework. This focus is why I got started in Rails development. It's also very necessary in a time when web development is getting continually more complicated. We in the Rails community are all going to be hearing a lot about "Conceptual Compression," and it started right here.

All day, I kept running into people I knew. Even though there were 1500+ people at this conference, I bumped into the one attendee that I know from my hometown four different times. I frequently encountered people that I had met at Monday's event as well.

At lunch I sat down with a couple of strangers. We were already getting to know each other when we were joined by several other people. Starting conversations is always a bit difficult for an introvert like me, but at a place like RailsConf, keeping them going is easy. Everyone there shares a common interest, and everyone I met was genuinely interested in my job, my application, and how I got into coding.

This includes DHH, to whom I was introduced by Ariel. I'm one of the developers empowered by Rails, and it was gratifying to get to tell him that. No one is off limits at RailsConf.

Tuesday night featured a jam session. Since I work at a music school, I knew I had to go, so I went and got to play music for hours with some other developers. One of them came because I had told him about the jam session at lunch earlier in the day.

After the jam session, I went to the hotel restaurant by myself for dinner. I spotted another lunch acquaintance at the bar and he joined me at my table, where we were later joined by two developers from California. Walking into a restaurant by myself turned into hours of conversation.

The theme of this entire day was that we are building a community of developers. You can feel it when you're here, where even in the course of a single day relationships are being built as you encounter people again and again who care about the things you make.

Day[2]

Wednesday opened with a keynote by Eileen Uchitelle. The topic was Rails 6, specifically the plan to make Rails 6 scalable by default. Two major bottlenecks to scaling an app are using a single database and running a large test suite, so the plan is to have Rails support multiple databases and parallel testing out of the box. I don't use multiple databases and don't plan to in any current project, but I'm excited about parallel tests. This is something I've tried (and failed) to implement in the past, so I can't wait to see it provided in a usable way.

After the keynote, the sponsor booths opened. It was fun to walk around the booths and bump into people I'd met during the previous two days. In addition to general conference sponsor swag, there was a massage station, and the Github booth had baristas serving espresso drinks.

The advice I received from the guides was to prioritize workshops over talks, and I found this to be generally good advice. The talks will eventually be available on Youtube, but the workshops are one-time participatory events. Wednesday's workshops were excellent, and I learned a lot about end-to-end testing and Progressive Web Apps. 

In lieu of a keynote at the end of the day, there was a conference happy hour followed by lightning talks. My lack of sleep and general introvertedness caught up to me during happy hour, so I was less successful at mingling and holding conversations than I had been on the previous day. My guide and I did get a chance to plan for our activities the next day, though.

I missed the lightning talks to attend a dinner with a couple of family members who live in Pittsburgh. I'll note that a handful of lightning talk time slots are reserved for Opportunity Scholars, so the opportunity to give a five-minute presentation is available for those who want it. These talks are not necessarily about Rails, Ruby, or even programming at all (though they certainly can be).

Lightning talks were followed by #RubyKaraoke. Fun times!

Day[3]

Thursday's opening keynote was given by Sarah Mei, and was an updated version of the talk I heard her give last fall about making code livable. Even though I already heard it in its previous form, it was well worth hearing again. The most important point is that software isn't just code or just people, it's a system that includes them both. In a world where developers live in a codebase for an extended period of time, it's important that the code is livable, and that means the code is clean enough to use, add features, and refactor, but not with such rigidly enforced "clean" practices that it becomes inflexible. That summary doesn't do justice to her presentation, so please look it up if you are interested.

After the keynote, there were more talks and workshops. I got to meet Ben Halpern, the founder of Dev.to, in person at his talk.

I found out on the last day of the conference that there was a special section in the cafeteria set aside for scholars and their guides. This was announced in a Slack channel before the conference began, but I either did not see it or forgot about it, so on the previous two days I'd had lunch with strangers. That was great, since I met several new people with whom I continued to engage throughout the conference, but it meant that I did not spend as much time connecting with the other scholars as I would have liked. On Wednesday, though, I found the group at lunch. At this point the conference was winding down and the leaders of the Opportunity Scholar program were taking feedback about how the conference went.

After the afternoon activities, Aaron Patterson gave the closing keynote. His talk was highly technical and dealt with using Ruby tools to benchmark the performance of various Rails operations. The purpose behind it was that he wants measuring performance to be easier, to make fixing bottlenecks easier, to make scaling applications easier, to make scaling teams easier. Right now, performance measurement of this type is obscure, and Aaron wants to put it into the reach of generalists. His future is one in which you don't need a 10x Ruby guru to scale Rails, because Rails has tools that any developer can easily use to accomplish that.

Following the keynote, several of the scholars and guides went out for pizza. I had a great chance to get to know some of them better, since I had missed a couple of lunches with them earlier in the conference.

After dinner was the RailsConf board game night, a fun way to close out a great conference.

What I learned

I learned a lot of things about technical topics, but that was expected. It's not necessary to attend a conference hundreds of miles from home to learn technical concepts – we have Google and Youtube for that. I came to be immersed in the culture surrounding software development in general and Rails in particular.

The most important thing I learned is that I already know significant things. As a newer developer who is self-taught, it's easy to think that more experienced developers are way ahead of me. They're not. Throughout the week I heard many developers ask questions that I already knew the answers to. I attended some workshops where I had trouble keeping up, but the other developers around me had the same struggles. I talked to some of them afterwards, and they were relieved not to be the only ones that fell behind. Sharing my challenges made them feel better, and vice versa.

This is not to say that I've arrived, or that I have any particular level of skill. Rather, it's to say that in this field, which is both broad and deep with specialized skills, I'm in no worse position than anyone else. We all have some skills and knowledge that others don't, and we all have something to learn from those same people. Watching experienced developers go through the conference, having the same experiences I did, was hugely validating.

I also learned that the Rails community is full of caring people. Every time I met a new person, they asked me about my work, and not just in passing. There were follow-up questions and expressions of interest. By the last day I was starting to feel like a jerk, because frequently these questions would have me talking about my own projects until we were interrupted and I wouldn't get a chance to ask what the other person was working on. Everyone I met was genuinely more interested in talking about my project than their own.

I also learned that conferences are also exhausting for everyone. Not everyone goes to the evening events. Most people don't attend every single session. Breaks are okay. I tried to go to everything I could, but I attended a couple of mingling events while I was exhausted and skipped the lightning talks to spend time with family. You can't be at your most engaged for 3-4 days straight, plus evenings. There's more than enough in the course of the conference to make up for a missed activity.

I hope I get to return to RailsConf next year, and I hope to one day be a guide for a new Opportunity Scholar. If you haven't been to a RailsConf or RubyConf, apply to be an Opportunity Scholar. I will post a link on my Twitter account when it's available.