Ruby Melbourne: February 2026

26 Feb

Thursday, 26 February

6:30pm - 8:30pm

Ferocia

207 City Rd, Southbank

Registration

To join the event please register using the link below. Spaces are limited, and it's on a first come, first served basis.

Register

About Event

Join us at Ruby Melbourne: February 2026

Talks

The Ruby Gameboy Emulator — 10 Years Later

Colby Swandale

Ten years ago, I started building a Game Boy emulator in Ruby as a hobby project called Waterfoul. I got it to a point where it could run basic games, but the performance left a lot to be desired and reaching 100% completion would have taken way more work than I had time for. So I moved on to other things. Recently though, with improvements to ruby-src and tools like Claude Code, I figured I'd give it another shot and actually finish it.

Colby Swandale

Sorry :(

The video is either not uploaded yet, or something went wrong, or just plain not available.

Moving from RSpec to Minitest for an AI-Friendly Codebase

Alex Finkel

I did some work recently at Stile Education to rewrite our test suite from RSpec to Minitest on the theory that:

  • It should work better with Sorbet types
  • It keeps test context closer together on the page
  • Starting again would allow me to "do it right" the first time and set up a pattern for test helpers that would be more discoverable, safe and extensible.
  • The combination of the above factors should make it AI-friendly, allowing "vibe coding" of test suites and a viable migration path.

It's actually turned out as well as I'd hoped, and I wanted to share a bit of the pain of the old test suite, why we rewrote and what testing is like now.

The takeaway message is that AI assistance can enable us to test our refactoring ideas more quickly, and rewards us for writing the code that is strongly typed with strongly-held, discoverable patterns. Using a "strangler pattern" can be a great way to start immediately getting these benefits in large, legacy codebases.

Alex Finkel

Sorry :(

The video is either not uploaded yet, or something went wrong, or just plain not available.