I’d like to introduce the first article in this blog by sharing a personal experience.
I have been a Ruby developer for the past 8 years, primarily in Rails applications. I have a vivid memory of the day when I was assigned (along with other colleagues in my first company) the development of an outsourced codebase that needed to be developed in-house. Back in the day, I was a Java fanboy, and I could only be concerned about the new task we had been assigned.
I hated Ruby, from the bottom of my heart. I did not understand the magic beneath the developer-friendly codebase. I did not get how a method can be executed without an explicit call. I felt frustrated.
After a quick research, I purchased 5 second-hand books about Rails and Ruby. My commuting took 45 minutes (remote work was just an exception for me in the pre-COVID world), so I had plenty of time to read. Things started making sense, I started having fun. Ever since that moment, I kept reading more advanced books, technical documentation, etc.
Last October, I was lucky to attend the Euruko 2022 conference along with some good friends from my previous company. During these cold days, I not only enjoyed salmon soup, cold beer, and most of the talks. I found Jemma Issroff’s Implementing Object Shapes in Ruby particularly inspiring. I was amazed by the dedication and technical expertise of Ruby contributors and the community. So I decided to take part.
Some time from now we may see an article referencing this one, talking about how this was the first step towards really contributing to the Ruby community. I’m not at that point. Just yet. I have been subscribed to some of the community mailing lists. I have followed the contribution guide. I have run the test suites. I have included a dummy Integer#cool?
that tells me whether a number is 37. I built Ruby after those changes and tested this method myself. I have read dozens of tickets in the bug tracker and multiple PRs derived from them. I feel I start understanding how the ecosystem is structured.
Based on this investigation, I have identified some tasks I plan to work on as the next steps.
- Keep an eye on the Ruby core libraries. Pay attention to bugs reported, and features requested. Play around with them looking for areas for improvement. Even if I find nothing to fix, the learnings will totally worth it.
- Re-learn C. It’s been 10 years since I last developed some C code at the university, and I can barely understand what I am reading. Knowing Ruby may be enough to contribute to the core libraries, but I really need to learn C if I want to understand what is going on at the core.
I am truly motivated by this new initiative. I will try to update my progress in future blog posts!