RubyConf 2021: A Field Guide to the Talks Worth Your Time
Shopify engineers are regulars on the Ruby conference circuit, and RubyConf 2021 in Denver was no exception. The Ruby and Rails infrastructure teams turned up with a packed schedule covering everything from compiler internals and type systems to developer productivity and performance tuning. Here’s a guide to the talks from Shopify folks you should watch.
Inside the JIT Landscape
A History of Compiling Ruby — Chris Seaton
Seaton takes a long view of Ruby compilers, mapping out what has come before, how implementations differ, and what lessons the community can carry forward. The talk is grounded in Seaton’s own work on TruffleRuby, along with discussions of what makes compiler design approachable and why the topic is worth understanding.
Some Assembly Required — Aaron Patterson
Patterson embarks on an exercise in curiosity: writing a JIT compiler in pure Ruby. TenderJIT, as the project is known, is presented with Patterson’s usual mix of humor and technical density. The question he set out to answer is simply whether it could be done.
Building a New JIT Compiler Inside CRuby — Maxime Chevalier Boisvert
Chevalier Boisvert covers YJIT, the project Shopify has led to add a new JIT compiler directly into CRuby. The goal is real-world performance gains, especially for heavy Rails workloads, implemented in a way that supports all existing Ruby code and keeps up with new language features. YJIT shipped in Ruby 3.1, and early performance data was shared in this session.
Memory, Types, and Faster Feedback
Optimizing Ruby's Memory Layout — Peter Zhu & Matt Valentine-House
Zhu and Valentine-House discuss variable width allocation, work that moves memory from the system heap into Ruby’s heap. This approach gives finer control over how objects live in memory, reducing system-level allocations and opening the door for more optimization. They include evidence of its stability: it passed all tests on Shopify’s Rails monolith and handled production traffic for a Shopify service serving over 500 million requests.
Gradual Typing in Ruby: A Three Year Retrospective — Ufuk Kayserilioglu & Alexandre Terrasa
This talk looks back at Shopify’s experience adopting Sorbet. Kayserilioglu and Terrasa explain that gradual typing doesn’t demand an all-in approach: starting at the lowest strictness levels and increasing rigor over time is a viable strategy. They cover the business and engineering lessons learned from the rollout.
Keeping Developers Happy With a Fast CI — Christian Bruckmayer
Scaling CI isn’t just an infrastructure problem; it’s a developer experience one. Bruckmayer, who sits on Shopify’s test infrastructure team, shares tactics including test selection, timeouts, monitoring, and applying the 80/20 rule. He lays out the scope: the Rails monolith is roughly 2.8 million lines of code with 210,000 Ruby tests that would take about 40 hours to run serially. With roughly 1,000 builds per day, that translates into around 100 million test executions daily.
Parallel Testing With Ractors — Vinicius Stock
Stock explores Ractors as a mechanism for parallelizing test execution. The talk walks through building a test framework on top of Ractors, comparing it with existing solutions, and spelling out the advantages and limits of this approach for shortening the developer feedback loop.
Gems, Parsers, and Native Code
Building Native Extensions: This Could Take A While — Mike Dalessio
Dalessio builds on his RubyKaigi talk about compiling and shipping native C extensions, this time focusing on Nokogiri’s journey. He explains the push toward precompiled gems and the complicated toolchain and installation paths the project has adopted over time, while also covering human trust and supply chain security along the way.
Parsing Ruby — Kevin Newton
Newton dives into the technical craft of parsing Ruby, comparing parser generators and hand-written parsers, and discussing tradeoffs between implementations. He notes that Ruby slowing down on new syntax will buy secondary implementations time to catch up and maintain parser compatibility.
Achieving Fast Method Metaprogramming — Jemma Issroff & Jacob
Issroff takes a scientific approach to building MemoWise, a memoization gem designed for speed. The session covers benchmarking, tracing unexpected object allocations, and the particular performance pitfalls of Ruby metaprogramming, offering a methodical route to optimizing these techniques.
Programming Fundamentals, History, and Teams
Programming with Something — Tom Stuart
Stuart’s exploration centers on the idea of treating executable code as data and writing Ruby programs to process that code. Starting with a simple SECD machine, the talk shows how iteration can lead to fast, expressive evaluation.
Problem Solving Through Pair Programming — Emily Harber
Harber makes the case for pair programming as a tool beyond onboarding and mentorship. Turning down the temperature on fear-of-CR review and building shared context is valuable at every experience level and phase of development work, an approach that encourages teams to write higher-quality code and move faster over time.
Ruby Archaeology — Nick Schwaderer
For a community that sometimes feels like it's converging, Schwaderer digs into the archives, running legacy code and learning from past gems. The thesis is simple: an enormous repository of valid, open-source Ruby is out there, offering a deeper familiarity with the language’s own history and the constraints its earlier constructs addressed.
A Data Structure Walkthrough, with Cats — Ariel Caplan
Two-track approaches multiply in Ruby: statically and dynamically typed code, checked-in assumptions and re-examined ones. Caplan demonstrates that with the very basics—arrays. His cat-driven walkthrough shows how foundational Ruby’s array is for everything from games and maps to sets and search regardless of whether the code is exercising fundamental data structures or a complete framework.
Ask the Ruby and Rails Teams Anything
Shopify brought a substantial contingent of Ruby and Rails engineers to RubyConf 2021. In addition to the scheduled talks, attendees could sit down with team members during a dedicated meet-and-greet session. Those conversations covered ongoing projects, what it is like to work at Shopify, and the perennial question of “Why Ruby?”
The session was hosted by Jennie Lundrigan, Senior Engineering Writer at Shopify, who was on hand to facilitate the discussions.



