Tag: RubyKaigi

From Karafka Ractors to Yoichi Whisky: My RubyKaigi 2026 Experience

Introduction

I just returned from RubyKaigi 2026, held from April 22nd to 24th in Hakodate, Hokkaido. For those unfamiliar with it, RubyKaigi is the biggest Ruby conference in the world, drawing speakers, committers, and Rubyists from across the globe. As always, it managed to combine deep technical talks with a uniquely Japanese atmosphere that no other conference comes close to.

This year's edition had a distinctly Hokkaido feel: the cold winds of the northernmost island, the smell of the sea, kaiseki dinners, sashimi at conference parties, and onsens - a lot of onsens. The conference itself was in the south of Hokkaido (Hakodate). Still, for me, the trip extended significantly further north and east thanks to my Japanese friend Hasumi Hitoshi, who once again made my Japan adventure something far beyond just a conference visit.

What I love most about RubyKaigi is how it bridges the gap between the Japanese and Western Ruby worlds. Despite Ruby coming from Japan, these two communities still feel oddly separate in day-to-day work - both reinventing the wheel from time to time, both not drawing as much from each other as we should. RubyKaigi is the rare place where these worlds collide. You meet the people whose code you've used for years, you hand them a beer, and suddenly Ruby's global ecosystem feels a bit more whole.

Pre-Conference: Tokyo Stopover and Heading North

My journey started in Tokyo, where I landed early in the morning. Passport control took 40 minutes, unusually long, but otherwise the trip was smooth. With a couple of hours to kill before my Shinkansen to Hakodate, I wandered around Tokyo Station and walked through the park near the Imperial Palace. There's something about Japanese parks that always gets me - even ten minutes from a major train station, the city noise disappears.

The Shinkansen ride was uneventful, but the local train from Shin-Hakodate to Hakodate brought an unexpected moment: an earthquake alarm went off mid-ride. Shortly after we pulled into Hakodate Station, tsunami sirens started wailing across the platform. But not a single Japanese person around me was panicking or evacuating, so I figured everything would be fine. It was. Welcome to Japan.

Day 0 - Hakodate Settling In

I arrived in Hakodate, settled into my hotel (which had its own quirks: a glitchy speaker playing a melody on loop and a wheezing AC unit), and did what any jet-lagged traveler does on day one: I slept. About 15 to 16 hours, with one break for breakfast.

Day 0 also brought the ANDPAD Welcome Drinkup, the unofficial kickoff for many of us. Roughly a hundred people crammed into Jimotoya, a local izakaya with great food.

The Conference Experience

Day 1 - Tagomori, Hasumi, and the Wind

The conference opened with Satoshi Tagomori's keynote on Box, his ongoing work on namespacing in Ruby. As I wrote about last year regarding namespaces, I have strong reservations about the feature. My core concern remains: until the surrounding ecosystem (RubyGems, Bundler) properly supports it, releasing Box risks fragmenting the Ruby ecosystem in ways we'll spend years cleaning up.

That said, Tagomoris absolutely deserved this keynote slot. The scope, the thinking, the engineering rigor, and the fact that he's willing to engage with critics (including me) about hard tradeoffs all make him one of the people I most respect in this community. I love this guy. I don't love this particular feature, at least not yet.

Later that day, Hasumi Hitoshi delivered his PicoRuby talk. Each year, I'm more impressed with how fast PicoRuby is evolving. Running Ruby on IoT devices used to feel like a curiosity; now it has serious, real-world use cases. There were noticeably more PicoRuby-related talks at this year's RubyKaigi, which suggests where the community sees this going. Hasumi-san's work on this, alongside PRK Firmware, IRB, and Reline, continues to be foundational for a whole subset of the Ruby world that doesn't always get the spotlight at major conferences.

The day wrapped with the RubyKaigi 2026 Official Party. The Japanese style of holding the official party in a hotel always slightly surprises me at first - back home, we'd probably do this kind of event in a pub or bar that had been reserved entirely for us - but late April in Hokkaido makes the indoor decision obvious. Big plus for the beer selection, which was excellent.

I stayed out until 1 am, wandering through Hakodate with a great group. The city, which on first impression I'd written off as a slightly run-down outpost, was already starting to grow on me. The wind, on the other hand, was absolutely brutal: without my winter hat, my head would have fallen off.

Day 2 - Nutter, Zhu, Tenderlove, and My Talk

Day 2 was, for me, the strongest technical day of the conference.

It opened with Charles Nutter's keynote on JRuby's history. This was well executed, presented as a journey rather than a lecture, packed with anecdotes, and giving real credit to all the people who built JRuby over the years. It's genuinely a bummer that Charles still has to spend time explaining what JRuby is to newcomers; given its capabilities, JRuby should be far more mainstream in many use cases than it actually is. The work he and the JRuby team do is impressive, and this talk did a great job of contextualizing it within the broader Ruby story.

Next came Peter Zhu with his talk on the next-generation GC for Ruby. Two things I always say about Peter: first, he delivers from both a presentation and a content standpoint; his talks are dense without being overwhelming. Second, his work on CRuby's GC is genuinely among the most important infrastructure work in our community right now. He laid out a clear roadmap and walked through the technical motivation. Easily one of my favorite talks of the conference.

Then Aaron Patterson took the stage to talk about faster FFI. I've been spending significant time recently rewiring large parts of Karafka and rdkafka-ruby to reduce the number of crossings between Ruby and C via FFI. Every transition has overhead, and at Karafka's scale, it adds up fast. Watching Aaron work on the language side of the same problem was encouraging. I plan to set up a stable benchmarking machine for the Karafka ecosystem, and I hope Aaron's work will eventually appear in those benchmarks.

A side note worth making explicit, every year: the RubyKaigi translation team is incredible. Simultaneous interpretation between Japanese and English is one of the things that make this conference uniquely accessible, and the people doing that work rarely get the credit they deserve. Thank you.

My Talk - Ractors in Karafka, in Production

Like in 2025, I want to give my own talk its own short section.

I spoke about using Ractors in production in Karafka. The hardest part of giving this talk was that while I was talking about my actual implementation of Ractor support in Karafka, I was also discussing Ractors themselves, which I obviously didn't implement and which still have well-known limitations.

The feedback was good, including from members of the Ruby Core Team, which mattered a lot to me. The core message I wanted to land was: Ractors, even with their current limitations, have a real, workable niche today, and they can be used in production. This is the chicken-and-egg problem we have to break. If no one uses Ractors because they're limited, no one will provide the production data the core team needs to improve them. Someone has to go first.

The slides are available below.

After the talks, the evening continued with the Treasure Data Hakodate Night Drinkup on the Tram. Big shout-out to Treasure Data for one of the most creative event ideas I've seen at any conference: a tram filled with sake and beer, wandering through Hakodate. I have a soft spot for this kind of slightly-crazy execution. Met some great people, had excellent sake, and capped it off with one more drink at a hotel bar with a group of Japanese Rubyists.

The night, however, kept going. I ended up at one of those tiny, deeply local izakayas: six chairs, paper menus in Japanese only, no prices, and one older man behind the counter, grilling yakitori on a tiny, smoking grill. ¥100 a stick. I had six. They were excellent. I will never understand the economics of these places, how a tiny restaurant with capacity for one Japanese regular and one bewildered tourist stays in business. Still, I am eternally grateful that they do. My jacket smelled like a campfire for the next 48 hours, and it was worth every minute.

Day 3 - John Hawthorn and Hunting GC Bugs

Day 3 brought John Hawthorn's talk on Write Barriers, which hit close to home. I ran into a brutal write-barrier-related issue in 2025, which I documented in detail in When Your Hash Becomes a String: Hunting Ruby's Million-to-One Memory Bug. If you've never had to debug a GC issue in production where a Ruby Hash somehow turns into a String, count yourself lucky.

It's encouraging to know that people are working to improve GC-related tooling, because anyone who has hunted for these bugs understands the unique pain of debugging something that, by definition, only manifests when the runtime is doing something invisible to the user. John's talk was a great roadmap, and I felt every second of the GC-debugging journey he described.

The Hallway Track

Before moving on, I want to call out something that doesn't appear on any official schedule but is the single most important part of every RubyKaigi: the hallway track. The conversations between sessions, in the lobby, over coffee, at the booths, in the food line - that's where actual collaboration happens.

If you ever make it to RubyKaigi, please don't try to attend every talk. The talks are recorded. The hallway track isn't.

The Evening Events - Thanks to the Sponsors

On Day 3 evening, before the post-conference adventures began, I attended a few more drink-ups. There are so many sponsored events at RubyKaigi that you genuinely can't go to all of them, and one of the highlights of every Kaigi is choosing which ones to drop into.

I want to thank the sponsors who made these events possible. Across the conference, I either attended or benefited indirectly from events organized by:

  • ANDPAD Inc. - Welcome Drinkup (Day 0) and Code Party (Day 2)
  • Treasure Data - the sake-and-beer tram ride (Day 2)
  • The RubyKaigi 2026 organizing team - the Official Party (Day 1)
  • All the smaller drinkups across Days 1-3 from STORES, Hello Inc., IVRy, Leaner Technologies, ESM, CodeCast, note inc., Findy, Studist, OPTiM, giftee, Coincheck, GMO Internet Group, hacomono, Link and Motivation, mov, freee, pixiv, Net Protections, and many more I'm probably forgetting.

These events are what turn RubyKaigi from a conference into a community.

Post-Conference Adventures with Hasumi-san

Now for the part that, as in 2025, ends up being almost as important as the conference itself: the trip after.

This year, I had the enormous privilege of being invited by Hasumi-san for a road trip through Hokkaido. He had planned the route, organized the rental car, arranged accommodations, and generously shared his time over multiple days to show me parts of Hokkaido I would never have seen on my own. None of this would have happened without him. Thank you, Hasumi-san. 🙏

Hokuto, Futamata Radium Spa, Soba in Makkari, and Lake Hangetsu

We rented a car after the conference and drove first to Hokuto for the cherry blossoms. From there to Futamata Radium Spa (二股ラヂウム温泉旅館), an old onsen tucked deep in the forest. The water is famously radon-rich and forms a 25-meter limestone dome, one of only two formations of its kind in the world (the other being at Yellowstone), now a registered natural monument of Hokkaido.

For lunch, we stopped at Ishimame Soba in the village of Makkari, on the southern slopes of Mount Yōtei - a small, family-run place ranked among the top 75 soba restaurants in Japan and accessible only by car. Then on to Lake Hangetsu (半月湖), a crater lake at the foot of Mount Yōtei (often called "Ezo Fuji" for its resemblance to the real thing), formed roughly 3,000 years ago by a side eruption.


Otaru - Ceramics, a Polish Connection, and Finally the Nigori Sake

From Lake Hangetsu, we headed to Otaru. This beautifully preserved port town boomed during the Meiji and Taishō eras, then quietly fell out of fashion when the herring industry collapsed, which is exactly why all the old buildings are still standing.

Otaru also gave me the moment I'd been chasing since the start of the trip: finally finding nigori sake. I'd been turned away from some izakayas in Hakodate, and it took until a quiet evening at a small Otaru bar to finally get a glass of it.

Yoichi - Whisky and History

From Otaru, we took a short train ride to the Nikka Whisky Yoichi Distillery. The short version of the story: Masataka Taketsuru, son of a Hiroshima sake-brewing family, traveled alone to Scotland in 1918 to learn whisky-making. He studied chemistry at Glasgow, worked at three Scottish distilleries, married a Scottish woman named Rita Cowan in 1920 against the wishes of both their families, and brought her back to Japan. After working at what would become Suntory, he founded his own distillery in Yoichi in 1934 - chosen specifically for how closely it resembled Scotland: cold winters, peat, sea air, mountain water.

Walking through Yoichi today, you can feel that story in every building. The pagoda-roofed kiln towers, the pot stills heated directly by coal fire (one of the few major distilleries in the world still doing this), and ten buildings now designated Important Cultural Properties of Japan.

A Detour to Sapporo

Our route did not include Sapporo, but circumstances led us to make a quick detour into the city. I had about 45 minutes there - just enough to grab some Japanese green tea and a Pokémon toy for my son. Sapporo looked beautiful and was worth a proper visit some other time. It's only 40 minutes from Otaru, much closer than I'd realized.

Lake Shikotsu

For the final leg, we drove on to Lake Shikotsu (支笏湖) and the historic Marukoma Onsen Ryokan (丸駒温泉旅館), founded in 1915, where we stayed for the night.

Marukoma has one of the most unusual onsens in Japan: among its several pools, there is one outdoor bath whose water level rises and falls with the lake, as it is naturally connected to it. Unfortunately, the lake level was too low during our stay, so this particular pool was out of use - but the other pools were just as relaxing. We went in twice, once in the late afternoon and again at 4:30 am the next morning, my last day in Japan, to catch the sunrise over the lake and the surrounding mountains. Worth every minute of lost sleep.

Lake Shikotsu itself is the second-deepest lake in Japan (363 m), one of the clearest in the world (visibility around 20 meters), and so deep and warm that it never freezes, even in Hokkaido winters.

A Final Day in Narita

After Hasumi-san dropped me off at New Chitose Airport, I flew down to Narita in the morning, where I had about eight hours before my Tokyo-Warsaw flight. I had originally planned to treat Narita as an airport with a hotel and was bracing myself for a boring last day. I could not have been more wrong.

The town itself is a 1080-year-old pilgrimage center built around Naritasan Shinshōji, one of the top three pilgrimage temples in the country (about 5.5 million visitors a year), with a beautifully preserved Edo-period shopping street leading up to it. You can eat unagi from restaurants that have been preparing it the same way for over 300 years.

I had unagi-don for lunch, then bought local sake at Choumeisen (長命泉), a small brewery on Omotesando. I'd hoped to bring back a bottle of nigori. Still, the owner gently warned me that her unpasteurized nigori would ferment in my luggage and possibly explode mid-flight - a wonderful, very Japanese moment of someone protecting me from myself. I bought a pasteurized junmai instead.

I also attended the Goma Fire Ritual at Daihondō, the temple's main hall. Five times a day, every day, for over 1,000 years without interruption, monks light a sacred fire while chanting Shingon Buddhist mantras, accompanied by drums and bells. The flames rise meters into the air. Worshippers can hand over personal items to be blessed in the smoke.

If you ever have an eight-hour layover at Narita, do yourself a favor and skip the airport lounge. Go to Naritasan instead.

Why RubyKaigi Matters

Looking back at RubyKaigi 2026, I again notice that the talks, while excellent, are not what make this conference unique. The talks will be on YouTube. What you can't replicate is the connections, the conversations, the post-conference trips.

A few things I keep thinking about:

The Japanese and Western Ruby scenes are still too separated. Work and products evolve in parallel, with both sides reinventing each other's wheels because we don't talk enough. RubyKaigi pushes against this every year, but three days isn't enough. Honestly, this should be five.

The hospitality of Japanese Rubyists is on another level. Hasumi-san planned a multi-day trip to show me parts of Hokkaido I'd never have found on my own; Japanese attendees patiently practicing English with foreigners at every drink-up; sponsors going out of their way to organize creative events. I don't know any other tech community that operates like this.

The post-conference time matters. People treat RubyKaigi as part vacation, part professional development, and that combination of sightseeing and serious technical conversation is what makes it different from any other conference I've attended. The "official" three days are a fraction of the real experience.

Summary and Final Thoughts

Reflecting on RubyKaigi 2026: the technical content was great, the social events were unmatched, and the post-conference trip across Hokkaido turned this into something far beyond a conference. None of that last part would have happened without Hasumi-san - thank you, once again, for being an extraordinary friend and host.

RubyKaigi 2027 will be in Miyazaki. I'm already looking forward to it. If you've never been to a RubyKaigi, start planning now.

🥃🛕🍶

From pidfd to Shimanami Kaido: My RubyKaigi 2025 Experience

Introduction

I just returned from RubyKaigi 2025, which ran from April 16th to 18th at the Ehime Prefectural Convention Hall in Matsuyama. If you're unfamiliar with it, RubyKaigi is the biggest Ruby conference, with over 1,500 people showing up this year. It's always a bit crazy (in the best way possible).

The conference had an orange theme. Ehime is famous for its oranges, and the organizers love bringing local flavor to the event.

What I love most about RubyKaigi is how it bridges the gap between the Japanese and Western Ruby worlds. Despite Ruby coming from Japan, these communities often feel separate in day-to-day work. This weird divide affects not just developers but also businesses. RubyKaigi is where these worlds collide, and you get to meet the people whose code you've used for years.

There's something special about grabbing a beer with someone whose gem you depend on or chatting with Japanese Rubyists you'd never usually interact with online. These face-to-face moments make RubyKaigi different from any other Ruby conference.

Pre-Conference (Day -1 & Day 0)

My journey to RubyKaigi was smoother than usual this time. I flew from Cracow, Poland, via Istanbul, which saved me the usual hassle of going to Warsaw first (those extra hours add up!). Instead of the typical route through Tokyo, I flew directly to Osaka - another nice time-saver. On my way to Matsuyama, I stopped in Okayama to check out the castle and the historical garden.

Day 0, for me, was all about the Andpad drinkup welcome party. I got to catch up with Hasumi Hitoshi, my good friend from Japan, along with many other Japanese Rubyists. One of the highlights was meeting the "Agentic Couple" - Justin Bowen and Rhiannon Payne, the creators of Active Agents gem. Little did I know then that I'd spend much more time with them later during some post-conference sightseeing and traveling.

These pre-conference meetups are where some of the best networking happens - everyone's fresh and excited for the days ahead.

The Conference Experience

Day 1 - Talks and Official Party

As the first English speaker in my room (rubykaigi-b), I started the day by discussing bringing pidfd to Ruby. It was exciting to present on this topic, which adds better process control functionality to Ruby - something I'm passionate about, given my work with Karafka.

You can find my presentation by clicking the image below or here:

Throughout the day, I attended as many talks as possible. However, people kept grabbing me for discussions (which I wasn't complaining about at all). One standout was Tagomoris's presentation on "State of Namespace." While I'm not exactly a fan of this feature (and he knows that ;) ), I greatly respect Tagomoris. We had a great follow-up discussion where I outlined my security concerns and the changes needed in Bundler and RubyGems. Ultimately, we both agreed that we must work collectively to ensure such changes bring only good to the community.

The day wrapped up with the official party at Shiroyama Park. The organizers had reserved the biggest park in Matsuyama just for us! The beers were excellent, and the atmosphere was exactly what you'd expect from RubyKaigi - relaxed, friendly, and full of interesting discussions. This is where the real magic happens - where Japanese and Western Rubyists mix over drinks and food, breaking down those invisible barriers that usually keep our communities apart.

Day 2 - ZJIT and More Connections

Day 2 was inspiring with Maxime Chevalier-Boisvert's talk about ZJIT - the successor to YJIT. If you're not familiar with Maxime's work, she's the one who won the Ruby Prize in 2021 for her work on optimizing Ruby's performance. Her new project aims to save and reuse compiled code between executions. I strongly believe that JIT for Ruby can do much more than it does now, bringing us to another level of performance.

The social aspect continued throughout the day with various company-sponsored events. What's unique about RubyKaigi is that these events aren't just corporate marketing exercises - but genuine opportunities for people to connect. The smaller scale of the sponsor presence this year (compared to having just a few big companies) made things more interesting, with more diverse interactions possible.

Day 3 - Ractor-local GC and Hacking Day

Day 3 brought another technical highlight with Koichi Sasada's talk on Ractor-local GC. Ractors are close to my heart because I want to use them in Karafka. While they are still limited, I feel we're finally making good progress. One of the biggest limitations has been cross-ractor GC. Koichi proposed a two-stage GC where part of GC work could run independently in Ractors while some GC runs would still be locking. He sees this as a practical middle ground that's technically easier to implement than fully independent GCs - his philosophy being that we should have something rather than nothing. This approach could make Ractors much more practical for real-world applications.

After the official talks, the day continued with a hacking session. This was amazing - so many Ruby core committers were in one room. People split into groups, and everyone worked on something in their interest. I spent my time analyzing the performance of new fixes - specifically improvements to Ractors. The results looked really great, which is the best news for me.

I need to investigate one interesting thing further: when parsing JSON in separate threads, it's about 10% faster than with the baseline, despite Ruby having GVL. That's an unexpected finding that may impact my future Karafka feature development.

The combination of talks and hacking sessions on Day 3 perfectly captured what makes RubyKaigi special - deep technical discussions followed by hands-on collaboration with some of the smartest people in the Ruby community.

Post-Conference Adventures

Days 4-5 - The Unofficial Adventures Begin

The conference officially ended on Day 3, but the real adventure had just begun. Various companies organized smaller events, and I showed up at one of them. On this "unofficial" day, I attended a drink-up sponsored by codeTakt that was super fun - it's always great to talk more Ruby in casual settings.

The next morning, I started Day 5 with a relaxing session at Dogo Onsen, one of Japan's oldest hot springs. Later, I did some sightseeing around Matsuyama and found a house that looked surprisingly similar to mine - just the Japanese version! I met up with Peter Zhu, and we went to visit some shrines. He collected goshuin (temple stamps) along the way. Later that day, I connected with other RubyKaigi attendees, including Marty Haught from RubyCentral, and we explored Matsuyama Castle together.

Day 6 - The Shimanami Kaido Adventure

One of the most memorable parts of my extended trip was the Shimanami Kaido bicycle tour with Marty and Justin, whom I'd met at the Day 0 Andpad event. The Shimanami Kaido is a famous cycling route that connects several islands via bridges and is located about an hour from Matsuyama.

We covered 60km in one day, which was a lot but totally worth it. Things got interesting when we left the main track to see some temples and head to a port. That's when we discovered there were no immediate direct ferries back to our starting point from where we ended up.

Google Maps saved the day by suggesting we hop to a small island called Oge (大下島). This tiny island has maybe 500 residents, mostly elderly people. We were the only visitors and spent about 45 minutes experiencing life on such a remote Japanese island. The whole detour was one of the craziest things we did. Still, it perfectly showed the spirit of unexpected adventure that makes these post-conference trips so memorable.

The entire cycling route was amazing. The bridges, the sea views, the small island communities - everything was incredible. I highly recommend it to anyone visiting the area after RubyKaigi.

Reflections and Why RubyKaigi Matters

Reflecting on my time in Matsuyama, what I notice most about RubyKaigi isn't just the great talks - those you can watch later on YouTube. The unique atmosphere and connections make this conference stand out from any other tech event I've attended.

RubyKaigi is great at bridging what I see as an unnecessarily isolated divide between the European-American Ruby scene and the Japanese one. This isolation creates real challenges for collaboration and, to some extent, leads to Japanese businesses operating separately from the global Ruby ecosystem. Many Japanese developers use RubyKaigi as a rare opportunity to practice their English and connect with the broader community despite their excellent technical writing skills.

I particularly appreciate how the conference keeps a real, technical-friendly vibe rather than feeling commercial. Unlike some conferences dominated by a few large corporate sponsors, RubyKaigi had many smaller sponsors, creating a more diverse and balanced environment. While I noticed fewer Western companies represented at the sponsor booths (Sentry was there, and maybe two others), this actually added to the conference's unique feel.

The fact that many attendees arrive days early and leave days later makes the event more than just a conference - it becomes something more meaningful. People treat their trip to Japan as part of their vacation and part of their professional development. This extended timeframe allows for deeper connections and more relaxed sightseeing. Matsuyama's calmer atmosphere compared to Tokyo, Osaka, or Sendai adds to this appeal - despite the tourist presence, the scale feels more manageable and peaceful.

From an organizational standpoint, RubyKaigi is in a class of its own. I've never attended another conference so well-organized and thoughtfully executed. It's an amazing event that I highly recommend to anyone wanting technical knowledge and meaningful connections with the global Ruby community. This conference never fails to remind me why I fell in love with Ruby and its community in the first place.

Summary and Final Thoughts

Looking back at my RubyKaigi 2025 experience, I realize how Japan continues to be remarkably generous with opportunities for unexpected connections. Each time I visit, I meet people I would never encounter otherwise - and often, they're not even from the IT world.

In Osaka, at a sake place recommended by fellow conference attendees, I had a memorable two-hour conversation with a retired man in his 70s. Despite his age, he was incredibly sharp and actively attended English school specifically to meet more people from around the world. These encounters show what makes Japan - particularly RubyKaigi - so special.

The conference itself remains the best Ruby event worldwide, not just for its technical content but for its unique ability to bridge communities. Excellent organization, meaningful international connections, and Japan's unique hospitality create an experience far beyond a typical tech conference. Whether cycling the Shimanami Kaido, exploring tiny islands, or simply sharing a beer with developers whose code you use daily, RubyKaigi offers something truly special.

I'm already looking forward to RubyKaigi 2026. If you've never been, start planning now - this conference is worth every mile traveled.

Copyright © 2026 Closer to Code

Theme by Anders NorenUp ↑