Martín Verzilli

Martín Verzilli

Balkan Ruby 2025: in defense of slow

May 26 2025

8 min

Some weeks ago, I had the pleasure of speaking at Balkan Ruby 2025 in Sofia, Bulgaria. The conference, which had Building for the long term as its theme, took place in the WTC Interpred building—a venue that matched the event’s cozy, unhurried vibe. Around 100 people gathered over two days, not just for talks but for long, generous breaks that encouraged conversation, connection, and serendipity.

Sometimes you need to change to stay the same

I was there to give a talk titled “Sometimes You Need to Change to Stay the Same”. I told the story of that time we decided to introduce (kind of) mandatory type annotations for ivars in Crystal, and the deeply existential questions that seemingly innocent technical decision spurred in the project and the community. Change is inevitable and necessary for survival—especially in long-term projects. How easy is it to confuse non-essential traits for identity, and how important is it to remain intentional about what truly matters when everything else seems to be shifting? Some changes may challenge your sense of self, but embracing them consciously can lead to longevity and a renewed growth cycle.

Giving the talk: Sometimes you need to change to stay the same

Giving the talk: Sometimes you need to change to stay the same

At the beginning of the talk, I asked for a show of hands to gauge how many people knew about Crystal. To my surprise, many were already familiar with the language! Afterwards, I had a long, geeky conversation with Bulgarian Ruby OG Stefan about Crystal’s strengths, weaknesses, and the importance of having a solid LSP implementation if we want to foster broader adoption. Others shared anecdotes of that time they had successfully used extracted some CPU intensive tasks from their Rails monoliths to Crystal, in some cases using Sidekiq, in others simply exposing the functionalities through a microservice.

The speaker lineup was full of gems. Due to the unusual theme -the long term-, most talks had philosophical undertones, with a lot of color from personal experiences collected in the span of decades. Two that stuck with me in particular were Denitsa Belogusheva’s “Adapting and Thriving: Insights from a 16-Year Project Journey” and Paweł Strzałkowski’s “Creativity: The Only Skill You Need in the Long Term.” Both touched on longevity and reinvention in their own ways —seamlessly tying into the broader themes of the conference.

From Denitsa’s talk, I took this gem: “Treat legacy code with respect, not frustration”. This summarizes what she calls her “Kintsugi approach to legacy code”. Love me a powerful and dense metaphor! She discussed lessons learned in almost two decades of maintaining Ruby apps, and didn’t limit herself to technical advice: she shared many nuggets of wisdom around team building, preventing burnout, and other gems.

Kintsugi approach to legacy code

Treat legacy code with respect, not frustration

Paweł’s talk was structured in two very distinctive halves: I found the first half really motivational, with many reminders that no matter your age and how dizzyingly fast tech changes, your creativity will always be what keeps you relevant and energized. In the second half of his talk he showed a bunch of demo’s combining Rails with LLM’s to reimagine UX patterns. His demos perfectly drove the point home: he used relatively simple and straightforward code to implement some really cool stuff. For example, he showed how easy it is with today’s tools to implement an e-commerce portal where instead of using traditional filters you just ask for what you want. The cool factor is not in the code, but in the ideas you bring to reality.

To close the conference, none other than Rubocop’s creator Bozhidar Batsov reminded us how many cool ideas originated in Ruby and its community. And then, of course, there was the grand finale: a karaoke duet of ‘A Whole New World’ sung by Bozhidar himself and Harvest’s Julia Lopez (aka the real J-Lo).

A Whole New World sung by Bozhidar himself and Harvest's Julia Lopez

A Whole New World sung by Bozhidar himself and Harvest’s Julia Lopez

My experiences in conferences before this one have been very diverse, but there’s one aspect that most of them shared: they always felt extremely hectic to me. Multiple tracks, 1 or 2 minute breaks in between talks, speakers (jokingly) threatened by organizers weaving ticking bomb drawings at a distance to remind them they are running out of time, tens of stands giving merchandising away, etc.

Balkan Ruby’s response: a single track where each speaker got 30 minutes followed by a 30 minutes coffee break. Do you have questions for the speaker? Ask them under the stage over coffee, there’s plenty of time. Not enough? There’s a 2 hour lunch break where you can continue delving deeper while sharing a meal. If you heard about the slow movement, Balkan Ruby showed me how a slow conference is done, and how enjoyable the experience is.

More than anything, Balkan Ruby reminded me why I fell in love with the Ruby community in the first place: its hacker spirit, its humility, and its care for people over prestige. It re-energized me and made me want to build more in the open again —not just for the outcome, but for the joy of the journey.