Travis Turner closed the first day of Rocky Mountain Ruby with a term I hadn't heard before: ontological shock. It's what happens when something new fundamentally disturbs your sense of being, and he argued that programmers are feeling it right now. The worries about job duties, tooling, and job security sit downstream of it. The next afternoon, Alan Ridlehoover used the same phrase in the closing keynote to describe his own work. By then it felt like the name for the whole conference.
Two days, one track, one former church
Rocky Mountain Ruby is two days and a single track in Boulder, Colorado. This year, and in previous ones, it has been at eTown Hall, a multi-purpose building in the heart of downtown Boulder, a short walk from Pearl Street. It's a former church, and it just reeks of cool.
Most of the talks were about AI in some way, and they kept coming back to people. Andrea told us not to let an agent get to know our team for us. Giovanni said the biggest quality win in his RAG app was string handling. That's the thread I followed through the schedule.
Getting to basecamp
I flew Southwest from Omaha to Denver, then hopped on the bus from Denver to Boulder. I love that option. The bus is very convenient, I love making use of public transit, and it's so much less stress than renting a car. Once I got to my basecamp (a wink at my actual hotel, Basecamp Boulder), I hit the Chautauqua Trail and the meadow. So pretty. So scenic. And wow, the Flatirons.
There are many, many coffee shops around the venue. I tried six different ones in four days, and none of them were a big chain.
Building agents
Drew Bragg does more than game shows, though his game shows are awesome. Your own AI Agent in ~400 lines of Ruby was live coding, with webhooks galore. The code is on GitHub if you want to build along.
Giovanni Panasiti showed Building an Agentic RAG in the Rails Way with RubyLLM, and the whole AI stack fits in a Gemfile. The part that most improves answer quality is plain string handling: chunking that respects headers, article numbers, and tables. As he asked the room, do you think you need Python or some fancy language to handle strings? Rails developers are not second-class citizens in the AI conversation.
Working alongside agents
It's always nice to see Kevin Murphy's InstiLLMent of Successful Practices in an Agentic World again. I loved it at Blue Ridge Ruby, and I'm always happy to be part of Hours Unlimited, the fictional company in his talk where we all start as new hires. Kevin wrote his own Rocky Mountain Ruby recap too, so go read his take.
Andrea Fomera brought slick HTML slides to High-Octane Onboarding: Ramping into a Rails Codebase with AI Agents and one big question: how do you onboard quickly and become effective, and can AI speed that up? Her answer: onboarding may be the most useful moment to have an AI agent, so use it for that. Just don't let it do the part where you get to know your team.
Ifat Ribon's Fewer Tests, More Confidence: A Rails Testing Philosophy for the AI Era started from a simple point: AI can generate more tests, but not always better tests. Every test has a cost, in slower feedback loops, heavier CI usage, and more cognitive load for the developers who have to understand, maintain, and trust the suite. Her first principle is to test behavior, not implementation: skip testing library and language code, focus on public methods and their results, and make sure tests still pass after a refactor. Then she turned to the agent itself. Bolster the AI harness with rules that codify hard constraints and conventions, and with deterministic tools like code scanning and coverage that objectively verify what the suite actually catches. Great slides, too, and so easy to follow along with.
Naming the shock
Travis Turner's Got AI ontological shock? No worries: UFOs, Theology, and Psychedelics with Ruby-Colored Reverence closed day one. It was a manic pixie dream guy of a talk. His premise, from the abstract, is that we're all coming to terms with this shock in different ways and at different times, so we're not on the same page. He named the shared experience, the blocks to coping with it, and some frameworks for working through it. Yes, it got deep.
Rails craft
Nicolas Erlichman's Modeling Class Hierarchies in Active Record made the case for delegated types, which still aren't widely known (by humans, anyway). Before them, Active Record offered two ways to model inheritance: single-table inheritance and polymorphic associations. Delegated types give you unified queries, clean schemas with no table bloat, and a model that scales naturally as new types appear.
Fernando Perales opened Slowly We Rot: signs of a Rails app's decay with a question. When was the last time you ran your entire test suite locally? All of it. His takeaways: rot is gradual, not catastrophic. Preserve your ability to change the system. Make trade-offs explicit, and revisit them. And in high school we were allowed to ignore friction, but software teams don't get that.
Marco Roth has so, so many gems. In Herb in Rails 8.2: Your ERB views, now HTML-aware, he walked a full room through Herb's path to becoming an opt-in view engine in Rails 8.2: how the integration came together, how ActionView was adapted and extended, and the toolchain and dev tools every Rails developer gets out of the box as a result.
People and careers
Sonja Peterson's Confident On-Call: Building Incident Response Skills as a Ruby Engineer argued that being confident on-call is a learnable skill, not a personality trait. Incident response takes a lot of different forms, but certain skills and knowledge always stay relevant. Do a daily review so you know what normal looks like in your system, and get comfortable with what you can observe from the command line.
Joel Hawksley's Beyond Senior: Consider the staff path! says your path to staff should begin with staff behaviors long before you go up for promotion. My favorite part was the rope analogy GitHub uses for technical depth:
- Junior: learns about rope
- Mid: can tie basic knots
- Senior: calculates rope strength, knows a lot about knots
- Staff: understands rope making
- Principal: knows more about rope than you ever will
- Distinguished: invented nylon
His transcript and slides are both online.
Ben Reubenstein's Commit for Good covered his adventures as a consultant and the software he has built for nonprofits along the way. He shared a quote from Tom Kimball: "At some point in each of our lives we get exposed to the importance of getting involved and giving back." For Byrne & Denver Urban Scholars, from 2011 to 2014, that looked like registration, payments, team pages, and leaderboards. His pitch: write some Ruby, help a nonprofit, be part of your community, and help build a better spreadsheet. You will get more out of it than you give.
I gave Optimize Your Mindset (Without Overclocking) on day two. It tells the story of four people and four research-backed techniques to level up your work and life: mindfulness for breaking thought loops and managing stress, growth mindset for embracing challenges and continuous learning, habit building for sustainable change, and deep work strategies for keeping focus in a distracted world. None of them involve code. With so much going on right now, having ways to cope helps. The references are up if you want to dig in.
Lightning talks
Rachael Wright-Munn talked about RubyEvents and its mission to index all Ruby events. RubyEvents keeps its event and talk data in YAML files, which made "It's YAML!" the running joke. Marco came back for one more, Insta: Snapshot Testing for Ruby.
Indispensable
Alan Ridlehoover closed the conference with Indispensable: What Human Programmers Can Learn from Human Computers, and he started somewhere uncomfortable. His company asked its engineers to stop writing code by hand. Alan thinks of code as something you cultivate, more like gardening than building a bridge, and he was devastated. In his words, "it was a bit of an ontological shock." Then came the number: over 430 thousand people laid off in tech, in less than two years.
Then he took us back to the human computers. Women, many with mathematics degrees, ran the numbers for engineers at research facilities across the country. When NACA, NASA's predecessor, started using IBM mainframes in the mid-1950s, their jobs were in peril. Many were reassigned and some retired, but some stayed central to the mission. Dorothy Vaughan, Mary Jackson, and Katherine Johnson, the women of Hidden Figures, made themselves integral to Project Mercury.
His close is the line I keep coming back to: "The mainframes didn't step foot on the lunar surface. We did. It wasn't their decision to go to the moon. It was ours. Electronic computers were a tool we used to get there. With AI, compute is now a commodity and efficiency is the baseline. But the human ambition to reach for the stars? That is, and always will be, indispensable."
Thank you to Spike Ilacqua and Bekki Freeman for putting it all together, and to the sponsors who made it happen: Gusto as the Sapphire sponsor; AppSignal, Honeybadger, Flagrant, and Typesense as Emerald sponsors; and BookBub, Podia, SOFware, and Evil Martians as travel sponsors.
"The mainframes didn't step foot on the lunar surface. We did. It wasn't their decision to go to the moon. It was ours. Electronic computers were a tool we used to get there. With AI, compute is now a commodity and efficiency is the baseline. But the human ambition to reach for the stars? That is, and always will be, indispensable." ~ Alan Ridlehoover
Videos will be added later, and I'll link them here when they are. In the meantime, the full schedule is on the conference site.







Top comments (0)