Last week, despite being a Rubyist for 14 years, I attended my very first RubyConf!
The trip to Denver was also a great opportunity to see my grandparents for the first time since the pandemic, and it also marked my return to in-person conferences.
I took a bunch of notes and produced a giant Tweet thread about it that I'll attempt to unroll below (you may need to wait for twitter to load them all):
Now that #RubyConf2021 is over and I've had a chance to collect my thoughts, I wanted to shout out to all of the talks I attended last week! *Every single one* was excellent!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
Note: this is just a list of talks that I *happened* to see! (I wish I could've watched them all!)
π§΅π pic.twitter.com/28vJheeu9X
Also, I'll grow this thread as I watch more virtual talks, so if you were at #RubyConf2021 and have any recs, DM me!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
Lastly, these talks are not public yet, but once they are I'll post the YouTube links on my website (https://t.co/XPEmsvWavt).
π Without further ado:
π Monday was a slower day, but I caught @peterzhu2118 and @eightbitraptor's overview of their Variable Width Allocation project. If you've ever wondered why Ruby strings < 24 chars are somehow faster, check this out. Excited to see their work optimizing memory allocation perf!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π I also caught a combined live session of @remote_ruby, @rorpodcast, and @JasonSwett's "Code With Jason". A fun meta-podcast about podcasting, and some good shout-outs to up-and-coming Rubyists & Ruby heroes.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
It was also just really nice to finally put some faces to voices!
π Then on Tuesday we had @yukihiro_matz's opening keynote. I love all of the new improvements in Ruby 3.0, and look forward to "Ruby 3x3 Redux" π! Even after seeing his dreams for Ruby come true, Matz says "I am *still* a dreamer" β€οΈβ€οΈβ€οΈ
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
Thank you Matz, and keep dreaming!!!!
π It's always a pleasure to watch @searls speak, and his "how to make a gem of a gem" session was superb and eminently shareable. I relate so much to being "care mad" -- to find the right motivation, you sometimes have to "surround yourself with mild irritants." pic.twitter.com/8iQlPAF04p
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Next up was @fractaledmind's dive into `acidic_job`, aiming to give `sidekiq` the ACID-guarantees of a database-backed queue. This was a fantastic demonstration of the "job drain"/"outbox" pattern in action, and I hope that it influences the future direction of `sidekiq`!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
βBut SIDEBAR: The topic of job queue resiliency is important to me, and I was both surprised and deeply honored to see @fractaledmind reference my #RailsConf2021 talk from April. Thank you Stephen! It was great to meet you, and I hope I didn't seem too flustered afterwards! pic.twitter.com/m7nCut6MM6
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Next up was @flavorjones's talk on shipping native extensions, specifically `nokogiri`'s new precompiled binaries. This is SUCH impactful--and, I imagine, relatively thankless--work. So *thank you*, Mike!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
Also: YES to the call for MFA on all https://t.co/q5S3Gv6Km5 accounts.
π During the pandemic, I got really into Admiral Cloudberg's analyses of historical aviation disasters, and so I *could not miss* @nmeans's systems-focused talk on the feedback loops that led to 2 tragic Boeing 737 Max crashes and the surrounding crisis. Deeply compelling stuff!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Then came @betsythemuffin's "Your Team, As Saga," on how so much of our behaviors and choices are informed by the stories we tell ourselves (and who we feel the "main character" even is). I want to think more about making a positive impact by managing the collective Narrative.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π One of my most anticipated talks (and not just because he's a fellow @Betterment-er) was @ancat's, giving us a view into the mind of a security engineer, in which he meets Rubyists where they are, with security-minded linter rules that maximize learning and minimize toil. pic.twitter.com/iWFxL16eF4
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
βSide bar (again): I worked with @ancat on getting some of his linter rules shipped to production, and I have to say, they are *brilliant*. These are some easy-to-use-yet-extremely-thorough checks against common authorization issues. Check them out here:https://t.co/RofWBaUxMD
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π We closed Tuesday with @FutureofWomen's keynote: "Finding Purpose and Cultivating Spirituality." Connecting more deeply with oneself (via mindfulness/affirmations) is so important for people who would otherwise let fear and avoidance drive their decision-making (so, um, *me*).
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π And Wednesday started off with @testobsessed's talk on feedback cycles. I loved the whole thing (really, just every new topic and idea), but I especially loved the segments on the Theory of Agile vs the Reality of Agile, as well as this hilarious git branching diagram: pic.twitter.com/Hzd4AjToX8
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Next, I attended @Jake_Evelyn and @JemmaIssroff's insightful (and extremely well-explained) dive into optimizing the performance of their metaprogramming-backed gem, `memo_wise`. It made me want to dive in and start profiling/benchmarking some of my own Ruby DSLs!
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Then, @jenny_codes's talked about how to abuse (and, really, how to avoid the need to abuse) test doubles. I loved the Douglas Adams quote, the "testing pyramid, reality edition," and the super clear code examples. Separating *decisions* from *delegations* was a great insight! pic.twitter.com/imPqvfxXVd
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π Here's something I CANNOT WAIT to try out: *compiling* Ruby w/ Sorbet + LLVM. @jez_io and @moltarx's talk was not only a great summary of the benefits of ahead-of-time compilation, it also presented a great example of how to do incremental rollouts (and how to do them well).
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π If you liked The Good Place, you'll enjoy @kdreyeroren's talk on Contractualism, presenting a great model of the ethics & impact of our work on our users, on *their* users, and on the wider world. In my humble opinion, this talk should be given at *every single tech company*.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
βSide bar: I loved the track curation this year. Both the "Ethics" and "Complex Sociotechnical Systems" tracks were full of compelling talks, and their presence at all really speaks to the thoughtful leadership of the @RubyConf organizers and track directors. πππ
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π I always love @eileencodes's deep-yet-accessible dives into Ruby/Rails internals, and her talk on speeding up class variables was no exception. Take-away: OSS contributions are a *negotiation*, and it's important that we all do it. I'm definitely gonna try to be a "C tourist."
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π @jmeller's talk on (dis)honesty in our industry is another must-see. If you take anything away, you *must* ask yourself whether your software solution would have the same value prop if it prompted your users for *informed consent*. "Honest software is a competitive advantage."
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
And that leads us to the end of the conference.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π But first, a quick shout out to @ViraniRiaz's pre-keynote "whimsy" session on all of the hilariously absurd things you can do with `pry`, including editing classes in real-time. @rowangoldenarch, you'll love this one!
π Finally, we closed with Matz's Q&A, led by @evanphx. I'm looking forward to the new tools-focused core Ruby development. Plus, it was fun to hear Matz's thoughts on Rust & Zig (& TypeScript & Python), and what we can *learn* from the hard work that goes into these ecosystems.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
π One last note. When I looked around at a spaced-apart hall full of masked faces, all watching a remotely-delivered (and pre-recorded) closing video, I had a surreal moment of clarity. I realized that, 2 years ago, such a scene would've seemed... well, terrifying. Unreal. (1/3) pic.twitter.com/U10K1TqZw6
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
Yet, last week, being in a room like that felt... hopeful.
— π± Nathan Griffith (@smudgethefirst) November 17, 2021
The last couple years have been hard (full stop), and each of us has had to experience this pandemic in our own way. But, for three whole days, we were able to come together and create experiences together. (2/3)
And it wouldn't have been possible if not for the staff and organizers who worked to get us all (both remote and in person) there. So, my deepest thanks goes out to the entire @RubyConf team for doing, like, two+ conferences-worth of work to make all of this happen!! πππ€ (3/3)
— π± Nathan Griffith (@smudgethefirst) November 17, 2021