My First RubyKaigi: An Unforgettable Experience in Okinawa

Hello, my name is Henry and I joined Money Forward in November 2023 as a new graduate. I am currently working in the authentication team. This year, I had the amazing opportunity to attend RubyKaigi 2024 in Okinawa for the first time. I was excited to immerse myself in the vibrant Ruby community and participate in an event that draws developers from around the world. Many talks were conducted in English. It was a perfect chance to learn about the inner workings of Ruby, performance and security aspects. I would like to share my 3 favorite talks for each day, what Money Forward offered at its booth and how it was traveling to Okinawa for the first time!

RubyKaigi 2024

Day 1: Parallelization, security vulnerabilities and tricky code

Ractor Enhancements, 2024: Starting with day one, I learnt about Ractor for the first time. Ractor implements the Actor-model abstraction for Ruby, which provides thread-safe parallel execution. I had heard about the Actor model before in university, but did not know much about it. Hence, it was very insightful to follow this talk that dived deep into Ractor’s implementation details and current challenges.

Remembering (ok, not really Sarah) Marshall: It can be dangerous to use a library like Marshal in your Ruby Gems, because it can introduce deserialization vulnerabilities into the codebase. Those often lead to remote code execution. The speaker, a seasoned security engineer, outlined his steps to provide a reimplementation of Marshall that enhances its security. By executing a series of checks on the abstract syntax tree of the program, he could implement binary deserialization in a safe manner.

Writing Weird Code: This talk delved into the unconventional and unexpected aspects of Ruby code, demonstrating how seemingly bizarre code snippets can lead to deeper insights into the language’s behavior and features. Highlights included code resembling a goldfish swimming in a fishbowl and hidden scripts cleverly embedded within an image of flowers. It was very fun to watch!

Day 2: Types, real-time interactivity and cryptography

Community-driven RBS repository: RBS is a type signature language for Ruby code. With the rising popularity of Typescript over Javascript, I expect gradual typing to also gain more adoption within Ruby projects. I think it leads to improved code understanding, better tooling support and safer programming, since constraints can be more easily encoded using the type system. The talk was held by Money Forward’s very own engineer, Pocke. And it is definitely something that I am thinking of introducing to my team as well.

Leveraging Falcon/Rails for real-time interactivity: Falcon is a Ruby application server based on asynchronous execution, which enables it to continue serving requests while other requests are waiting on IO. This presentation really showcased the power of asynchronous programming and its ease of use. The presenter reimplemented a browser version of the popular mobile game Flappy Bird from scratch live during the talk! After the work was done, he even invited Matz, the inventor of the Ruby language, to play with him together on the stage.

Playing Flappy Bird

Adding Security to Microcontroller Ruby: This talk dived deep into the implementation of networking and cryptography, like TLS, on a Raspberry Pi Pico W using Ruby. The speaker, a freelancer and open source committer to various repositories including OpenSSL, seemed mostly self taught and put a lot of passion into his presentation, making it the best talk of the second day for me.

Day 3: C extensions, YJIT and developer tooling

Finding and fixing memory safety bugs in C with ASAN: The developers of CRuby and the authors of extension gems must navigate the complex and error-prone terrain of manual memory management in C. In this talk, the speaker advocated for a tool called ASAN that can identify memory safety issues in Ruby. I don’t know if I would ever go so far as to implement C extensions, but nevertheless the talk was very technically challenging and well presented.

YJIT makes Rails 1.7x faster: Have you enabled Ruby 3.3 YJIT? You’re using a much slower Ruby if you haven’t. I was particularly interested in this topic, because we also make use of YJIT in our team and definitely learned something new here.

The state of Ruby dev tooling: The talk addressed the critical questions: Where does Ruby’s developer tooling currently stand? How does it compare to other programming ecosystems? The speaker pointed out that the primary challenge in Ruby’s developer tooling isn’t the language’s dynamic nature, which affects tool accuracy, a common issue for all dynamic languages. Instead, the core issue is the fragmentation of tools within the Ruby ecosystem. Ruby can take inspiration from newer languages like Rust and Go, which integrate default developer tooling into the language installation itself. All in all it was a very thought provoking talk. Is it time for the community to converge, unify efforts, and reduce the existing fragmentation!

At the booth

Our booth was a lively spot at RubyKaigi 2024. We hosted a code review challenge where attendees reviewed printed Ruby code, leaving comments on sticky notes. We also provided flyers with helpful English phrases and vocabulary for code review. For example, we showed how the popular English phrase “nit pick” is used in context. I think it demonstrated Money Forward’s commitment to fostering an inclusive and international working environment pretty well.

Money Forward Booth

Alongside, we conducted a survey asking visitors what they felt most inspired to do after the conference, such as starting to contribute to OSS or improving their English. Participants received hand fans that they could decorate with stickers, which were a big hit due to the hot and sunny Okinawa weather and could soon be spotted everywhere at the conference.

(Unofficial, BONUS) Day 4: Exploring Kerama Islands

Kerama Islands

On Saturday after the conference had ended, I took a ferry with a colleague to the beautiful Kerama Islands, 40 minutes away from the main island. Having arrived there, we even met another conference attendee and we had a good chat about Ruby! Going for a stroll around the island and snorkeling in crystal-clear waters was a refreshing break and a perfect way to conclude the week.

Attending RubyKaigi 2024 in Okinawa was an unforgettable experience. I left with new knowledge, inspiration, and connections that I am eager to bring back to my work and share with my colleagues.