XO Ruby Atlanta was an intimate Ruby conference that took place at the Limelight Theater in Atlanta, Georgia on September 13, 2025. This single day event was fantastic, energizing, and inspiring! Organized by Jim Remsik and Flagrant, they showed that regional conferences can be done quickly and on a budget (if you have the experience)!

The Conference Experience

XO Ruby events feel so cool! The limelight theater is such a cool venue, and the little XO Ruby touches went a long way to making it feel cozy. It was fantastic to meet up with local Ruby friends, talk shop, and to present the first full-length version of my talk “Play with your Code”!

3D-printed glowing XO Ruby Logo

A room full of rubyists in the limelight theater, looking at Thomas, waiting for his talk.

The Talks

The line-up for XO Ruby Atlanta was fantastic! I bought my ticket when Thomas was announced, and every time the schedule updated, it just got better!

Scaling Postgres Beyond Query Optimization

Alex Yarotsky

As Rails apps grow, Postgres often becomes a silent bottleneck—not because of bad queries, but because default behaviors no longer hold up. This talk covers the practical side of scaling Postgres when query tuning alone isn’t enough. We’ll dig into memory tuning, how autovacuum can quietly fall behind, what to watch for in index and bloat maintenance, and when HOT updates make a difference. The focus is on techniques that are commonly overlooked but have a measurable impact in production. If your database feels like it’s fighting you, this talk will show you how to fight back.

This was really good! The technical depth was perfect and Alex’s delivery made complex database concepts accessible and entertaining!

📺 Recording will be available at RubyEvents

The slide is 'Scaling Postgres Beyond Query Optimization' by Alex Yarotsky, and Alex stands beside it at the podium, pointing at it and looking intense. Alex stands behind the podium, making eye contact with the audience. Alex looking genuinely alarmed at his slide Alex points intensely at a slide that reads: Why do we need autovacuum? - Reclaims disk space for reuse, Prevents bloat in tables and index, Updates visibility maps to optimize index-only scans, Mitigates transaction ID wraparound risks

Play with Your Code

Rachael Wright-Munn

Why are programming games more fun than our day jobs? We’re going to dig into this exact question and see what lessons we can learn from them, and how we can bring it back to our developer experience. Also, we’re going to talk about some rad programming games you should play!

It was wonderful to share the full-length version of this talk for the first time! I really appreciate everyone who came up afterwards to tell me they liked it, or talk about games they enjoy. I’m looking forward to bringing a remixed version to SF Ruby!

📺 Recording will be available at RubyEvents

Chael smiling and gesturing to the audience. Her eyes scream 'Oh no, every single person in this room hates me.' Spoiler alert: they did not. Photo of Chael and the audience, taken from the wings. The slide says 'Color adds clarity' and has a photo of RSpec output. Chael behind the podium, the slide says 'What is a programming game?'

The Disability Dilemma

Katya Sarmiento

Through interactive exercises, we’ll explore the often unseen challenges people face and how they shape the way we work and build products. You’ll leave with a deeper understanding of how small shifts in awareness can spark lasting change.

I loved Kat’s workshop on building empathy for hidden disabilities. I felt a little called out by “Anxiety: I have to do something, right now” so I knew she was hitting something real. ❤️

📺 Recording will be available at RubyEvents

Kat gestures at the slide which reads: ADHD: 'I can't remember', ARFID: 'I need to pick something to eat from this menu.', Anxiety: 'I have to do something, right now', Depression: 'I can't do anything, it's pointless', Chronic Fatigue: 'My body feels like it's shutting down. I need sleep.', Insomnia: 'I can't sleep.' Kat looks seriously over the audience from the podium. Kat describes the body feel of ARFID from behind the podium. Slide: ARFID: 'I can't eat this' with empathetic and non-empathetic response examples.

Empty Pipeline, Empty Future

Thomas Cannon

We’ve created a beautiful, fun language; but we need more juniors, stat! Let’s talk about the benefits juniors bring, and the things you can do this month to help fix the pipeline problem.

This was the talk of the conference. The discussion afterwards got everyone involved and talking about how to hire juniors, what value they bring, and also the challenges in bringing juniors into an organization. The quotes “People need food and housing to learn” and “Juniors are an asset, not a liability” really resonated with me.

📺 Recording will be available at RubyEvents

'People need food and housing to learn' Thomas stands next to this absolute banger of a quote. Thomas face is full of heart as he connects with the audience. 'Juniors are an asset, not a charity case or liability' Thomas next to another incredible quote. Thomas ended his talk with a quote from his mentee: 'In my experience, companies have basically pivoted away from creating an onboarding process or junior to senior pipeline... Senior devs retire. Junior devs who are brought up within your ranks will become senior devs.'

Overreacting: From React to Hotwire

Igor Aleksandrov

We built SafariPortal as a React SPA in 2020 when it made perfect sense – Hotwire didn’t exist, and we needed complex travel itinerary building. Fast-forward to 2023: we’re staring down an ambitious roadmap to transform our simple builder into a full travel CRM, and React’s ceremony is killing us. Redux boilerplate for every state change, frontend-backend coordination overhead, AI tools amplifying complexity instead of productivity. Meanwhile, our Hotwire experiments show one Rails developer shipping what used to take a specialized frontend-backend duo plus project management theater. So we did something radical: we kept our React app running and started building new features in Rails. No big-bang rewrites, no developer trauma, just pragmatic coexistence while we proved Hotwire’s value. The results? 50% faster feature delivery, 93% smaller bundles, and team productivity through the roof. This isn’t about React being terrible or Rails being perfect – it’s about recognizing when you’ve outgrown your tools and having the courage to choose simplicity over complexity. I’ll share our complete hybrid migration strategy, real code patterns, honest gotchas, and a decision framework for when this approach makes sense for your team.

Great practical insights about team dynamics and technology choices. The discussion about AI changing development expectations was particularly timely.

📺 Recording will be available at RubyEvents

Igor speaks to the audience beside the slide about when AI changed the development game and new requirements for higher efficiency Igor gestures at the screen. React was becoming our bottleneck - Each new feature required: Backend developer, Frontend developer, Manager coordination, API contract design, State management planning, Integration testing Igor points at the slide: Understanding our Migration Destination - Hotwire HTML Over The Wire - Three parts: Turbo Drive, Turbo Frames and Morphing, Turbo Streams, And Stimulus

Refactoring Volatile Views into Cohesive Components

Jeremy Smith

It’s easy for models to grow unwieldy, accumulating methods, attributes, and responsibilities. But views can be even worse. Let’s refactor the mess into clean, cohesive components with ViewComponent.

Even if you’re not using ViewComponents, the framework for thinking about view complexity and when to extract components was incredibly useful. Jeremy’s insights about view complexity, volatility, and churn are spot-on! This is the sort of talk that inspires you to look at your app and think about how you can change things. I left wanting to make several different changes to my views.

Jeremy taught me you can define locals for a partial, and I love it. 😍

<%# locals: (title:, icon: nil) %>

📺 Recording will be available at RubyEvents

Jeremy Smith behind the podium, microphone in hand Jeremy addresses the audience next to a slide: Dimensions of View Complexity - Browsers/Clients, Viewports, Device Features, Theming/Whitelabeling, Dark/Light Mode, Accessibility, Internationalization, SEO/Open Graph, Authorization, Entitlements, Feature Flags, Framework/Version Changes, Execution Context, Testing Affordances, Design Systems/Tokens Jeremy describes how views become complex and volatile. Churn: Changed seven times, might not be done; Accumulation: Icon, counter, dropdown, non-tabs, etc.; Variation: Tab type, selected state, authorization, etc; Proliferation: Team wants to use this in another section Summary: 1. Implement designs in traditional templates 2. Watch for volatility (high churn & complexity) 3. Extract view components and regain stability

From Expensive Queries to Smart Caching: A DBA’s Guide for Rails

Javier Zon

If you’ve ever watched your Rails app drive up the MySQL bill, you know the pain. In this session, we’ll look at how ProxySQL and ReadySet can help, from query routing to smart caching and show how a little DBA magic can make your apps faster while keeping costs under control.

Javier Zon talked about issues he sees as a DBA and how to resolve them on the application side.

📺 Recording available soon at RubyEvents

Javier dramatically gestures in front of the title slide: FROM Expensive Queries TO Smart Caching A DBA's Guide for Rails Javier addressing the audience Javier highlights a giant uptick in connections, starting in August

SAST Tooling for Ruby Applications

Kylie Stradley

You may already use tools like RuboCop or Brakeman, but are you getting the most out of static analysis? Ruby’s dynamic nature and metaprogramming invite creative security exploits and make SAST tricky. This talk explores how to choose the right tool, balancing sense and sensibility.

This was perfect timing for me! The comprehensive comparison of different security tools was exactly what I needed. I was just figuring out security tooling for meetanother.day and Kylie’s talk covered every question I had!

I have CodeQL turned on for MeetAnother.day, it comes free for open-source repos, and it was the best option of all the tools reviewed!

📺 Recording available soon at RubyEvents

Kylie speaks to the audience Kylie smiles delightedly as she describes: Sensibility of Ruby - Tools (often gems) are: easy to use, fast to set up, naturally fit into workflow Kylie describes a common vulnerability in Ruby: Mass Assignment vulnerability with code sample demonstrating the vulnerability Kylie breaks down exactly which vulnerabilities each SAST tool covers in a detailed comparison table showing: All tools caught Insecure Deserialization, CodeQL caught all listed vulnerabilities, Brakeman and Opengrep caught everything except cross file data flows, CodeQL is the only one that caught cross file data flows

Ruby Friends

My favorite part of any conference is getting to see all my Ruby Friends! It was so nice to see everyone close to home, catch up, and get to know others better!

Pre-conference dinner group Thomas, Jeremy, Chael, Kat, Paul, and Jim taking a selfie at a massive wooden table.

Blue Ridge Ruby friends reunion Thomas, Jeremy, and Chael selfie - my Blue Ridge Ruby peeps!

Group photo at dinner - 12 rubyists around a table in a seafood-themed pub A table full of Rubyists at 6 Feet Under after the event.

Group photo at PuttShack Thomas, Matt, Chael, Thomas, Kat, and Jeremy all smiling under a glowing neon Ruby sign.

Final Thoughts

I had such an incredible time at XO Ruby Atlanta! I’m really grateful to Jim and the folks at Flagrant for putting this together. As well as all the event’s sponsors who made it possible - Confreaks, DNSimple, JetRockets, Hubstaff, and Cisco.

Regional conferences and the energy from in-person events can’t be beat!

If you’re interested in watching any of these talks, keep an eye on RubyEvents where the recordings will be posted. And if you get a chance to attend a future XO Ruby event, I’d highly recommend it!

Exit sign at Limelight theater that says: Thanks for coming Had fun? Tell your friends!