#ruby Jun 1st, 2024

The Road To Rails Conf 2024

Cody Norman

The Road To Rails Conf

Last month, I had a chance to give my first conference talk at what turned out to be the penultimate Rails Conf.

Sometime early last year, I decided I was going to start working on doing more public speaking and had the goal of being accepted to speak at a conference.

I put a lot of work into my first proposal but wasn’t selected. Honestly, that may have been for the best.

I don’t consider myself a sore loser. If I didn’t get picked or make the cut for something, it’s because I didn’t do a good enough job, plain and simple. That doesn’t mean I’m happy about it. I guess a good way to put this is I’m fine with losing, but I absolutely hate the feeling, especially when it’s something I’ve set my mind to.

Getting that first stinging rejection let me know I had to step my game up. I started reading any article I could find on preparing a good conference proposal. Here are some of the resources that were a big help for me.

Conference Proposal Resources

Rails Conf 2013 How to Talk to Developers by Ben Orenstein

Kevin Murphy - Building Conference Talk Content

Sarah Mei - What Your Conference Proposal Is Missing

Noel Rappin - Conference Prompts: Or How To Submit Proposals and Influence People

Another great resource I found was Speakerline.io from Nadia Odunayo

What does a good proposal even look like?

During Rafael Franca’s keynote at Rails Conf 2023 he mentioned one way he started getting more comfortable with contributing to Rails was that he started reading over every single new commit.

I loved this and decided to try something similar with conference proposals. I read over every single Ruby proposal at least once, some of them multiple times. I started to get a much better idea of what a good (and accepted) proposal looks like.

To round out my newfound knowledge of the proposal process, I also attended my first proposal coaching session courtesy of the fine folks at Ruby Central. It was a great chance to get feedback my ideas and proposals while also seeing what others were working on.

So…after reading dozens of proposals, getting some coaching on my specific proposals and submitting them to the next conference…

More rejections.

Down but not out

After a long year, I began wondering if I should put my talk ambitions on the back-burner and focus on other areas. I had some time to rest up and lick my wounds over the holidays and after a bit of recharging, decided I wasn’t done yet and was going to come out swinging in 2024.

Sometime around January or February of this year, I started compiling a list of all the ruby conferences I could potentially submit to along with the Call For Proposal dates.

I started writing some blog posts around some of my potential proposal topics. This was a big win because the blog content made it much easier to pull info an ideas from to include in the proposal. It also allowed me to get feedback on what parts people thought were the most valuable.

I decided to go all in on what I thought was my strongest proposal and reached out to Boulder Ruby to speak on that topic.

My thinking was…If I don’t get accepted, having a chance to get some more feedback would improve my chances in the future.

If I did get accepted, I’d already be committed to having an early version done about 6 weeks before Rails Conf.

Hearing the theme of this year’s Rails Conf was ‘building with Rails’ I had some ideas for a talk on Action Mailbox that I thought would be a great fit. I thought this was my strongest proposal and represented my best chance of being accepted.

Thursday 2/29 @ 2:03 PM (I saved the email) I finally got my breakthrough.

“Wait, What?!….”

I had to squint and re-read the email a couple times but there it was. The acceptance email I’ve been on the hunt for so long.

Knocking the dust off

I took the rest of the week to take a bit of a victory lap and enjoy hitting such a big personal milestone.

A funny line I added to my planning notes that Saturday (March 2)

“What’s the Rocky IV equivalent for preparing for a talk?”

For those unaware, Rocky IV has the best training montage in existence. I will not be taking further questions.

I didn’t think I’d be able to realistically pull that off, but thinking about what that would look like, gave me some good ideas to think about for prep.

When Monday rolled around, it was time to get to work.

I immediately picked up a couple of Audio Books on speaking and how to craft an engaging and entertaining presentation. I also thought that audiobooks might have the advantage of allowing me to hear the examples instead of just reading which I thought would be a big help.

Even though I had never given a conference talk, I thought that depending on books and recordings alone would be like reading a book on skydiving and thinking that’ll be enough to help me jump out of a plane.

In other words…practicing was where the majority of my focus should be. There’s absolutely no substitute for feeling more comfortable speaking in public than…you guessed it, speaking in public.


March 12 - I was originally slated to speak at Philly.rb in April. I just so happened that their March meetup happened to be the day before I was already scheduled to speak at Boulder Ruby. After a bit of a scheduling mix up, I received a message asking me if I was still ready to present that night. Since I was almost done with the first version of my talk, I decided to just go for it. This would give me 2 chances to practice and get feedback with plenty of time for revisions and updates before the conference.

This was extra special for me since Philly.rb was the first meetup I ever spoke at and was the last meetup I spoke at in person back in 2016 before relocating to Colorado.

Person holding a laptop with a code editor open (Philly.rb 2016)

I felt like it went really well and was also lucky enough to get some great feedback and speaker coaching from Kevin Murphy who was on the program committee this year. After going over some of the things he’d tweak or change, we started riffing on a couple of ‘Big Swing’ ideas. That really set me off on the path to think about how I could do some fun things to make this talk very ‘me’.

Boulder Ruby

March 13 - That whole week I’d been tracking a potentially record-breaking blizzard that was due to hit us in Colorado right around the time I was supposed to speak at the Boulder Ruby meetup in person. My small mountain town is a little over an hour from Boulder under normal conditions and the last stretch requires me heading through a mountain road that’s pretty well known for people getting stranded on.

I don’t think I’ve ever prepped for heading to a meetup by throwing a sleeping bag and shovel into my car ahead of time but I suppose there’s a first time for everything. All indications were pointing to a rough drive home at a minimum with a reasonable possibility of being stranded and having to sleep in my car (this happens a lot in Colorado). I knew it would be risky but it also represented my only chance to speak in person to get some practice and feedback before Rails Conf.

I knew it would be a huge gamble, but if it paid off, I would have done 2 versions of my talk with tons of ideas for improvements and 6 weeks to go to Rails Conf.

With no exaggeration do I tell you I barely made it home. We ended up with about 30 inches total with one area I drove through on my way home getting 36 inches in a 24-hour period.

I can’t thank the organizers for both meetups enough and incredibly grateful for having me.

Here are the slides from the Boulder and Philly Ruby meetups to give a better idea of what my first version looked like. You can compare them to the Rails Conf version to see how they evolved.

Attraction Mailbox Slides - Meetup Version

Big Swings

One of my big takeaways from the meetups was that people really enjoyed the examples. Seeing examples of some different tasks you can accomplish with Action Mailbox got people’s wheels turning about ways they could use it in their applications.

With a couple of rounds of feedback, I start working on some ‘practical’ examples you could easily add with Action Mailbox. Since I had a practical example section, I thought it would be fun to close out with an ‘impractical’ example section. This would be a handful of the weirdest, interesting but probably not useful things built with Action Mailbox. This seemed like a great way to inject some personality into my talk while throwing out a wide range of things you can do with an inbound email. I was hoping the broad range of ideas would help people walk away with their own ideas for features they could add to their app (and some they shouldn’t)

I probably have a whole post’s worth of material covering all the stuff that didn’t work or at least became too much to get working on time.

Seriously, the past month, my office has been littered with Hotwheels tracks, springs, button-pushers, mouse traps, skateboard wheels and more. I’m determined to get at least one of those working to include in any future talks.

There was just something about the idea of sending an inbound email that triggered stuff to happen in the real world that cracked me up.

One idea was to see if the after-market remote start device I had installed on my truck had an API available. The device uses LTE to stay connected and has a mobile app that allows you to monitor the status and perform different actions like lock/unlock and start the vehicle. My top idea soon became something along the lines of

“I wonder if I could send an inbound email to start my truck?”

Unfortunately, there wasn’t a public API I could find. However, I was fortunate enough to find someone who created an unofficial API wrapper with JS.

After skimming through the repo a bit, it seemed like it was possible and after getting a token, would be a pretty simple API request I could trigger in the mailbox.

Drone Mobile Node API

I had casually floated out this idea a couple of times over the past couple of months and got some chuckles but it was clear that it would be tough to convey just how goofy this is through slides. I knew I had to record some kind of video demoing this for people to really get it.

After a long string of failures earlier in the week, I was able to get things working and recorded the process on Friday afternoon, just a couple of days before traveling for Rails Conf.

On Saturday, I finished editing the video and added it to my slides. I could not stop laughing when I watched it and was so tempted to share it publicly but thought that if I was able to keep this under wraps and come out of nowhere with a video demo of starting a 2006 Tacoma with an inbound email and a lil’ bit of Rails code.

My talk was right before lunch and wanted to do something that people would feel like they just had to ask someone if they saw it or tell them what they just saw.

Go Time

This being the first time I spoke at a conference, I wasn’t sure what to expect. My talk was on the last day so I had a couple of days before I was up. One tip I kept hearing was

“Don’t let it weigh on you where you don’t enjoy the conference”

I tried to take that to heart and knew that I’d done everything I could do to prepare myself and there was nothing left but to do it.

The other thing I kept hearing was

“Are you nervous?”

I tried to answer every time with something like “I’m not nervous, I’m excited” which was very intentional. That wasn’t over-confidence, that was me trying to not even begin to internalize the idea of being nervous. I’d been endlessly visualizing giving a successful talk.

On the first day, I even popped up on the stage in the room I was going to be speaking in and took a picture of what it looked like from the podium. I would keep referring back to that picture over the next couple of days thinking about what it’s going to be like on stage.

By the time I got on stage, I was ready to go. If anything, I was anxious to get to the end to see how the truck email went.

Almost by some miracle, I kept the ending under wraps and was able to see people react to it for the first time in person. That’s absolutely something I’ll never forget and couldn’t think of a better closer.

After the talk was done and getting to see a room full of people react to it I decided to post a quick tweet with the video on my way back to the conference venue after stashing my bag at the hotel.

It was viewed over 10,000 times in less than two days.

That was wayyyyyyyy more than anything I expected and was glad to see people appreciated the whimsy and fun of it all.

If you’re interested in the slides from my Rails Conf talk, you can find them Attraction Mailbox Slides - Rails Conf Version

Next steps?

After getting some great feedback from the content in my talk, I’ve started work on a video course on Action Mailbox. Pre-sale is available now and the course is expected to be completed in August.

Action Mailbox Pro

If you’re interested in me speaking at your conference or meetup, please reach out!