Montréal
October 17, 2026
Montréal never quite fits a simple description. Wrapped around Mount Royal, it’s a city where two languages trade jokes on a terrasse, bagels come out of wood-fired ovens at 2 a.m., and summer seems built around festivals. From Mile End to the Plateau, and from Ottawa to Québec City, and just a short drive from the Vermont border and upstate New York, it draws in innovators, adventurers, and makers who are happy to keep up with the pace. Come for the energy, the late nights, the dépanneur wine, and the particular kind of mischief that makes Montréal feel like nowhere else.
XO Ruby is a single-day, single-track conference designed to draw folks in from the city and the region. An approachable $100 ticket price coupled with no need for a hotel or airfare means you can connect with your community without breaking the bank.
Registration
Welcome
Fishbowl
Ideas Worth Stealing
What Rubyists Can Learn From Other Ecosystems
Ruby has never been shy about borrowing from its predecessors and peers, like Smalltalk's blocks, Perl's regular expressions, and CLU's `yield`. Combined with the community's sense of what idiomatic Ruby is, those ideas deeply impacted the way I approach code.
The programming world hasn't stood still though, and my exposure to yet more good ideas in other ecosystems has pushed me to try and bring them back into the Ruby I write. This talk will cover some of these, from straightforward newtypes to the more controversial runtime assertions.
David Cornu
Break
Building gem.coop
Let's dive deep into the code of gem.coop and its underlying Rails app 🏔️ Peak. gem.coop is a brand new Ruby gem server that's fully Bundler compatible but working on next-generation features like namespaces, cooldowns, staged publishing, preview builds of gems and more. We'll look at what it took to build peak, including the domain modeling, what Bundler needs for compatibility, fun new tooling we built, and other discoveries we made along the way.
Kasper Timm Hansen
You Can Build More Than Software Now
After 30 years of programming, I reached a strange point: I could keep building software without writing the code myself. That left me with a new question: now what? This is the story of how that question took me from running agents on a spare Raspberry Pi to building a physical electronic instrument from scratch.
Marc-André Cournoyer
Lunch
Go out and enjoy lunch and continue the conversations started during the conference. You'll be handed cash to go out and purchase lunch at local establishments or just tuck it in your pocket.
Guitars, Squirrels, and Other Things That Aren't Birds
Exploratory depth and iterative breadth have never been more achievable. Merlin Sound ID, the project you've probably heard about for detecting bird song, was possible because of this iterative approach. We'll swiftly cover some fun groundwork for the MLOps development of the project: speedrunning FFTs and ML concepts as rapid-fire discussable demos, extracting and folding in expert inputs, evolving our data tools right into the tip of the deep end (where those annotations went, and how the model was trained).
Jess Sullivan
Agents on Rails: Building AI Pipelines in plain Ruby
Every application with users sits on a mountain of data. Buried within it are opportunities worth acting on, but finding them at the right time takes effort most people can't spare. In this talk, I'll walk you through how at Shopify we designed a multi-stage pipeline in plain Rails — no Python, no ML platform. The pipeline runs as a sequence of ApplicationJob batches, where some jobs call agents to research, and others call independent critic agents to validate what the researcher found. The pipeline also learns: when a suggestion is disliked, an ActiveRecord callback triggers a job that captures insights and feeds them back into the researcher.
Daniela Velasquez
Break
Love Your Verbs!
Ever notice the verbs a stakeholder uses when discussing the systems they desire? Verbs galore! They might say "make reservation," a verb in the imperative, or "reservation made," a verb's past participle.
Yet, we often deliver systems that marginalize or even lack these information-juicy verbs. We send a "reservation" and expect the other end to safely reconstitute the meaning despite the lossy compression of our engineering mental models.
But what if we champion verbs instead of discarding them? And what if we were to do so using the world's best programming language for expressing our intent clearly? 🤔
Miles Georgi
How to quit your job (and come back later)
Your background job ran for six hours, processed 2 million records, then died 94% of the way through a deploy. Sound familiar?
Retries with exponential backoff don't help when your job was aborted, not failed. The Ruby ecosystem has evolved multiple answers to this problem: Shopify's job-iteration and Rails 8.1's Active Job continuations. Outside of pure-Ruby solutions, Temporal brings a workflow-based approach.
This talk surveys the landscape of resilient background job options in Ruby. We'll dig into the history, compare the tradeoffs between iteration-based, step-based, and workflow-based approaches, and explore when you need to graduate from "resilient jobs" to "orchestrated workflows." You'll leave with a framework for choosing the right tool for your workload.
Bart de Water
Break
Nobody Hires a Founder
"Nobody hires a founder." A mentor told me that at one point in my career, and he was right. I'd spent years following my curiosity — front-end, information architecture, Rails, marketing, writing — and ended up a solid generalist at a lot of things but the obvious hire for none of them.
If that sounds like you, you've probably got an idea you keep not starting. Let's talk about why that hesitation feels so reasonable, why starting is a lot smaller and cheaper than it used to be, and the unglamorous, low-risk, no-leap tactics that can make the process less scary and more predictable.
Garrett Dimon
Closing
Bart de Water
Bart is a founding engineer at Thatch, building and securing the infrastructure for smarter and more flexible health benefits. Before Thatch he worked at Shopify where worked on the payments team.
Daniela Velasquez
Daniela Velasquez is a Senior Software Engineer at Shopify who has been working with Rails for over 4 years. She is passionate about building AI-powered features in plain Rails. When she isn’t working on agentic pipelines, you can find her bouldering or hiking.
David Cornu
David’s misspent youth clicking all the buttons in Microsoft Frontpage and copy-pasting PHP snippets from dubious sources somehow led to a 15+ year career in software engineering and leadership at companies like Shopify and Wealthsimple. He currently works on the developer experience at turbopuffer.
Garrett Dimon
He's been in and out of entrepreneurship his whole career. Garrett was once told "nobody hires a founder", but when he joined John Nunemaker in running Flipper Cloud, and acquiring and running Fireside, two Rails apps, the diverse skills of a founder was just the right fit for that setup. He comes to us from Crested Butte CO, and is involved in his small mountain community.
Jess Sullivan
Jess Sullivan is a full stack contractor, musician, birdwatcher and lifelong hacker based in Lewiston, ME and Boston, MA. Throughout her career, Jess has contributed to fine-grained classification research and enterprise production systems with the Lab of Ornithology at Cornell, Bates College and numerous municipalities and federal organizations in the geospatial domain. She is an active contributor to numerous significant FOSS projects. Currently her focus is on novel build / execution frameworks for very large semiautonomous systems.
Kasper Timm Hansen
Kasper was on the Rails core team from 2016-2022, is the top 14th contributor, authored major features and reviewed & merged thousands of contributor pull requests. These days Kasper’s focus is on excellent Domain Modeling for Rails apps — including inventing the riffing technique to do so. Kasper works at the Spinel Cooperative and still pushes Rails forward with gems like Oaken, ActiveRecord::AssociatedObject & ActiveJob::Performs.
Marc-André Cournoyer
Marc-André Cournoyer started programming as a kid on a Commodore 64 and has spent more than three decades building software, including creating the Thin Ruby web server and working as a Principal Engineer at Shopify, he realized he was getting tired of spending most of his waking hours staring at rectangles of light. So he started experimenting with a different kind of workspace: an AI-integrated office for makers, built around agents, voice, physical controls, and fewer screens. These days, he’s building his own version of that future in Montréal.
Miles Georgi
Three projects in a row, Miles had to wrangle some complex domains. He was tech lead on those three projects, and they were all different: different domains, different teams, and even different tech stacks. The only commonality was high domain-complexity, and that inspired him to start constructing a framework called Foobara using the only language he felt was up to the task: Ruby!
MEM - Centre des mémoires montréalaises
1210 boul. Saint-Laurent, Montréal, Québec H2X 2S5
Venue
We'll be meeting at the MEM – Centre des mémoires montréalaises, Montréal's own memorabilia museum, in its spacious Cabaret room. Right in the heart of Montréal's Quartier des spectacles on boulevard Saint-Laurent, the MEM is steps away from good food (try La Belle Province for Poutine), the Montréal night life, the Complexe Desjardins and Old Montréal is within walking distance too.
Transportation
MEM is a corner-of-Sainte-Catherine-and-Saint-Laurent walk from the Saint-Laurent metro station on the Green Line, putting it within easy reach for anyone coming by transit. Drivers will find paid street parking and garages scattered throughout the surrounding Quartier des spectacles blocks.
Nearby
- Old Montréal is a 15-minute walk away
- Monument-National (a few doors down on the same block of boulevard Saint-Laurent)
- Place des Arts
- Musée d'art contemporain de Montréal (MAC)