RailsConf 2018

Closing Keynote

Closing Keynote

by Aaron Patterson

In the closing keynote of RailsConf 2018, Aaron Patterson presents a light-hearted yet insightful talk focusing on performance in Ruby on Rails applications. He humorously reveals his procrastination and shares anecdotes to engage the audience while seamlessly transitioning into the core topic: optimizing development speed over time.

Key points discussed include:
- Procrastination and Humor: Aaron begins by joking about his procrastination habits, using humorous coding puns related to Git. This sets a relaxed tone for the presentation.
- Become Better Developers: He encourages developers to focus on improving their unique business logic rather than relying solely on generic features offered by frameworks.
- Declining Team Velocity: Aaron highlights the paradox where, despite learning new tools and techniques, teams often find their ability to ship features slowing down over time.
- Refactoring vs. Rewriting: The talk emphasizes the difference between pushing for constant rewrites versus intentional refactoring to address performance changes and technical debt.
- Profiler Types: He explains the two profiler types—exact and sampling profilers—and their appropriate use cases in identifying performance bottlenecks. He presents code snippets illustrating how developers can implement profiling in Ruby applications effectively.
- Performance Reviews: Aaron shares his experiences derived from performance reviews, stressing the importance of targeting both runtime and memory management for optimizing applications.
- Garbage Collection: He dives deep into Ruby's garbage collector, explaining its dual role in allocation and freeing up memory, while detailing how to tune these settings to improve application performance.
- Memory Profiling: Aaron illustrates the use of object space and heap dumps for detailed memory profiling, culminating in a case study where he significantly reduced the memory footprint of a production application.
- Final Call to Action: He discusses the necessity of open-source performance improvement tools, emphasizing the role of community contributions to enhance developer productivity.

In conclusion, Aaron imparts the message that scaling Rails applications and enhancing performance should not only focus on the application itself but also nurture the development teams behind these applications. By leveraging profiling tools and best practices, developers can create efficient, high-performance applications while enjoying the journey of coding. The talk ends with a humorous anecdote about his home automation project, leaving the audience entertained yet enlightened about the technical aspects of Ruby on Rails.

00:00:11.540 Hello! I mean, I guess if we get stuck in Minneapolis, that's where we're supposed to be anyway. Right, Evan? Is that why you were late? You're scouting locations?
00:00:25.310 Okay, hold on! I gotta do this real quick. This is actually for expenses to prove I was here.
00:00:34.649 The computer doesn’t work. Okay, hold on one second. One second. Cheese! Okay!
00:00:53.340 Alright, let's start. This is a just-in-time presentation—not to be confused with just-in-time. I'm Aaron. I am an extremely horrible procrastinator. Instead of working on my presentation, I kept putting stuff off and doing actual work, and putting stuff in Slack. Eileen suggested that I title my talk 'Things I’ve Been Doing Besides Preparing My Talk' because I get a lot done when I am supposed to be doing something else.
00:01:29.369 Anyway, I get extremely nervous about giving presentations and I'm always paranoid that I'm going to go way too fast and I won't have enough slides. The other day, DHH made this tweet. He said, 'I’m just going to say it: I hate FOO, BAR, and prototypical variable names. It's time for a change.' This made me laugh a lot, so I made a little video about it and I tweeted about it. I thought, 'Yes! There's one slide done; this is what I'm doing—working on my presentation.' Then DHH liked it, and I was like, 'Yes! That’s two slides done!' So I think the presentation is going okay so far.
00:02:03.869 Anyway, hello there! My name is Aaron Patterson. I may look different on the internet than I do in person. This is what I look like online if you don't recognize me. Some of you may have noticed a cat picture coming up on your screen. I don't know if you recognize this, but Jason and Kevin, I’m not sure why you accepted my AirDrop.
00:02:57.760 Please, anyway! I work for a very small startup company called GitHub. I don't know if you've heard of it. It is the only legitimate company I've ever worked for, and I really enjoy using Git, but I will not force push it on you. I make this pun at every conference, and my coworkers told me that I really need to branch out. But I had to say to them, 'Look, I’m just really committed to these Git-based puns. Not even flogging me is going to stop me! In fact, even if you reflog me, that wouldn't stop me.'
00:03:36.160 Anyway, if you don't like these Git-based puns, we could switch to SVN, but I just don't know what the git diff would be. So how much time do we have left? I love titles, and at GitHub I am a level 5 engineer. Despite the fact that I have played Xenoblade for over 90 hours, I still don’t have enough XP to level up to level 6. So I'm going to be working on this every day. My boss is here in the audience, and I’m going to be working on Xenoblade every day until I can get up to level 6.
00:04:32.270 I guess I should get to the real content. No, not yet! I love local businesses. Before I visit any place, I look up the best local businesses for that area so I can go help support them. I was inclined to learn more about Pittsburgh. So, you may or may not know this, but Heinz is a local business.
00:05:22.940 I bought some ketchup—#local! Yes, these are really exciting! I wanted to support local businesses even more, so I picked up some Heinz Texas Barbecue sauce that is also #local. This is exciting. Then I went and picked up some Heinz beans. These are actually amazing because there are 57 varieties of beans! You may not know this, but there are indeed 57 different varieties. I thought this was really neat, but unfortunately, when I looked at the back of the can, they were actually made in England, so they're #notlocal. I apologize for that. I was trying really hard! So anyway, I love local businesses.
00:06:07.370 I hope you got the point, Pittsburgh people! Yes! Come on! I know there are like five people in the audience who got this one, and I'm sure you’re laughing really hard. Thank you, Evan!