New Experiences at Friendly.rb

A conference can be so much more than just its talks. These were my experiences at Friendly.rb, as a once-skeptic.

New Experiences at Friendly.rb
Original image courtesy of Friendly.rb & @horia.m_

My brain is a torrent, coursing with new ideas and fond memories of the past few days at Friendly.rb, the "Friendly European Ruby conference."

Like many developers, I identify as an introvert. I get out very little, and I'm happy that way! I contentedly putter through life at home with my lovely partner and the bestest, fluffiest dogs. I've been to a couple of very different conferences, but honestly the idea of travelling far away to spend lots of time with mostly strangers evokes feelings somewhere between bafflement and revulsion. I can watch the talks on YouTube, after all.

So naturally, when I saw Friendly.rb was going to be running in September, I booked a ticket. Not much useful happens within our comfort zones, right? Knowing some of the speakers and attendees online, and having a group of friends agree to go with me took it down from "Nightmare!" to "Hurt me plenty" difficulty.

If you're like me and think you can experience a conference by watching the talks online, allow me to convince you otherwise!

I've named some names in this post, which I'm happy to remove if you'd rather not be mentioned. Just let me know!

Day 0: Getting There & Settling In

Two friends (🇳🇱/🇫🇮 ex-colleagues group A) stayed with me the night before, and my partner drove us to the airport in the early morning. Time at the airport was about as exciting and enjoyable as time at airports tends to be. Eventually, we took off and I occupied my time hurtling through the air in a planet-destroying vomit coffin by listening to Maintenance Phase (I particularly enjoyed the gruesome episode about "John of God").

We arrived in one piece (not a collective piece, thankfully). We couldn't check into our BnB immediately, so I looked for a place nearby to refuel, with all the finesse of a reclusive boomer on downers.

A screenshot of a Signal chat. Two blue message bubbles at the top read “Touchdown!” at 12:01 and “It’s hot” at 12:15. Below them is a photo taken at what looks like an airport or station entrance, showing a dark blue sign with a yellow upward arrow and the words “Tren” and “Train.” Part of a white car is parked on the right. Under the photo, a caption bubble says “Tren. Below is another message, with the emoji of a snake and text “snek,” appearing with a 12:35 timestamp.
The first words to my wife were filled with important information.

The rest of our group (🇳🇱/🇷🇺/🇺🇦 ex-colleagues group B) arrived a few hours later and decided they'd rather go on a tangent buying gifts around the city while we melted waiting for them in the sun at an Irish pub. Communication is hard, but at least we had drinks.

A tall pint glass of hazy amber beer on an outdoor café table. The glass reads “Zăganu – Romanian Craft Beer – Since 2013.” Behind it are a wine glass, a bottle of water, an ashtray, and a black patio umbrella. Sunlit trees and a block of apartments are in the background.
This tasted amazing after a flight into a new heat we hadn't yet adjusted to.

Later, we arrived at the BnB, dumped our stuff, and headed out for dinner.

A person with long wavy hair, a black T‑shirt, jeans, and a black backpack stands at an ornate carved wooden door, focusing on the lock with both hands near the keyhole. The door has detailed square panels and an arched window with black metal grilles at the top.
Opening doors is difficult when you're mostly hair.

Dinner at a Georgian restaurant, because 🇷🇺 Evgenii in our party insists it's the best food in existence. Not my first pick for plant-based food (the beginning of a trend), but I'm used to diet-induced suffering, everyone seemed to enjoy it, and we drank traditional Georgian wine which tasted like nice wine that didn't come out of a discounted box (you may notice from my vocabulary that I am not a wine connoisseur).

Following sufficient alcohol and a debate over the tastiness of different fruit and vegetables and how supermarkets across countries differ in produce selection, we meticulously and scientifically taste-tested three varieties of Romanian tomato; one was absolutely delicious, the other two were like most supermarket tomatoes and looked great but had no flavour to speak of (tomatoes are like influencers).

Two people in a cozy kitchen slice and sample tomatoes at the counter. One person in a dark shirt is cutting tomatoes on a white board beside a sink, with whole tomatoes resting nearby. The foreground shows another person in a blue patterned shirt reaching toward the board. The backsplash features black‑and‑white geometric tiles, and bright yellow cabinets run overhead alongside a black faucet and appliances.
Our enthusiasm over these tomatoes made it all but impossible to photograph without a blur.

Friendly Day 1 Begins

The usual social nerves welled up as we made our way to the conference: I knew a number of people online, if only because I was following them, and some were celebrities or even heroes to me. How much of a fool of myself was I about to make? Being in a group made me feel safer, though.

We grabbed our badges, lanyards, and other paraphernalia. There was a lot of really cool stuff, but the standout was the Ruby passport — an intricately made, very real little document with an NFC chip, space for conference stamps, and professional portrait photo (courtesy of a little photo booth).

Also present was a scratch card with prizes to be had. I won a cute little badge with a character I think is from a Studio Ghibli movie. Some won bigger prizes, and a smaller number still won a "golden ticket," which would give them a chance to participate in a game show later.

I recognised some folks but mostly dared not approach them. Adrian Marin — one of the organisers and of Avo fame — was the first person I greeted. I quickly felt like I had known him for much longer, which wasn't my only such experience at Friendly.rb.

Throughout the conference, I mostly stuck with my group. I did make a concerted effort to say hello to more people, although I regret that I didn't try a bit harder. One way or another, though, I ended up talking to quite a lot of people. Some would sort of float over into our group and conversations would overlap. I even remembered a lot of new names and faces!

There were breaks between almost every talk, giving us a chance to stretch our legs, talk to people (I would say networking but that sounds stuffy), and discuss the talks.

So how were the talks?

Day 1 Talks

I decided not to take notes, which may or may not have been the right approach. All of the talks were interesting (really!) but some were more relevant to me at the time.

Jonathan Markwell talks first and says that "Great Developers Do Sales, Marketing and Support," which might be hard to hear, but I tend to agree. Sending emails is still one of the best ways to reach people.

Michael Koper's "Starting your own SaaS" stood out to me as someone who is itching to build and sell a product online. It was chock-full of useful information and delivered with humility (despite Michael's own doubts), giving me the feeling that I could do this without being an actual superhero.

André Arko's mischievously titled talk, "Rails on SQLite: exciting new ways to cause outages," showed us how SQLite can be used at surprising scale, warts and all. I had some interesting discussions around this later, regarding whether choosing SQLite may increase or decrease complexity.

Naijeria Toweett shared her fascinating journey in "From imposter to influencer," tempting us to be bold and daring, which neatly calls back to sending more email!

We took a long lunch break and enjoyed a delicious lunch at Poke House, then headed back in for more talks.

Ruby OG and personal hero Obie Fernandez kicked us off again with "Ruby+AI Tech Landscape 2025: A Survey." I particularly appreciated this because of the rapid-fire (mis)information that's abundant right now. I've scratched the surface with completion calls to plenty of models before, and now I know what to choose when I need more. Super relaxed talker, by the way.

Chris Hasiński presented "Let's train a model," discussing different reasons one could improve a model for specific use-cases, and interestingly demonstrating one he didn't recommend. We saw a clear improvement live.

Continuing the AI trend, Greg Molnar brought the very important topic of "Security in the age of AI," demonstrating ways that AI models can be abused to reveal more information than they should.

Derailing the AI trend entirely (and I mean this in the best possible way), OKURA Masafumi enlightened us as to "Why doesn't Ruby have Boolean class?" In his own words, Masafumi basically did this talk because he discovered a funny Japanese pun, and he presents it in a fittingly fun and joyous way.

Rounding out the first day's talks, Jan Dudulski discussed something close to my heart in "Back to simplicity." I found it fascinating how he walked through creating an arguably very complex architecture in order to simplify another area. This echos my thoughts on how complexity can mean different things through different lenses.

Day 1: After the Conference Proper

After the conference, we were treated to a selection of walking tours of Bucharest. I am a simple man, so I went with the Sexy, Scandalous, Deadly Bucharest Tour. Our guide, Stefan, clearly loved what he does and spoke with such passion and interest that it was impossible not to enjoy ourselves, despite many of us being visibly tired. The stories he told us were just wild: one about dismemberment in the most literal sense.

Then it was off to fire club for food and drinks, with perfect weather for sitting outside with cold beverages. Conversations flowed more easily with social lubrication, giving me the guts to say "hello" to more cool people I recognised. And I don't think I made too big an idiot of myself (please confirm).

Adrian surfaced at some point with 🍒 Vișinată shots that I believe he said his father makes. It was dangerously tasty!

Friendly Day 2: Full of Surprises

My beautiful group of friends had decided to leave me in bed, prioritising food over any interest in my wellbeing. Luckily we would be starting a bit later today. They sent me their location and I made my way over, hoping there would be at least something I could eat without meat, fish, or dairy.

"I guess I'll pick up something on the way to the conference," I thought, resigned, as I arrived to a big sign saying EGGSMANIA. Thankfully, the staff were lovely and insisted they'd make something for me despite my own insistence that it was my fault that I had chosen friends who had no respect and/or interest in my dietary choices.

After travelling, not sleeping very much, and interacting with so many people, I was starting to feel rather low on energy. But I was still having a great time. Off we drifted to the conference location.

Day 2: The First Few Talks

Carmen Huidubro kicked off with "Versatility as a technologist." Carmen has such a great way of speaking, fielding interaction and buy-in from the audience and generating excitement, and honestly that was probably my main takeaway from her talk. This isn't to say I didn't enjoy her talk, but rather that I already strongly agree with her: versatility is important in keeping us relevant and we should make sure we don't remain in a box, even if we really like what we're working with now.

Victor Motogna went on to talk about "Counter-Strike, Rails, and the Building Performant Software," which, as I told Victor later, I was trying to close my ears to as a recovered Counter-Strike addict. With that said, his talk was a solid and extremely well-researched dive into multiplayer networking code, which I think flowed well from Carmen's talk on remaining versatile; I will probably never need to implement multiplayer networking code, but now I'm more aware of techniques used in that world that I know where to go for more.

Interlude: My First "Talk"

A chunk of time was set aside for attendees to "Share your Ruby passion project," which I thought was a great idea but had absolutely no intention of participating in. Besides, I didn't really have a passion project I was working on at the time. This was to be a set of 60–90 second lightning talks.

My group, however, had different ideas. I'd recently published a gem, and they contended that I was going to talk about it. I can't count how many times I said no, until their incessant egging on (friendly support, really) convinced me to do it for the sake of shutting them up.

It was a weird gem to present, anyway. Go see why: strong_service.

Okay, back? So: it's really just a joke, or a tongue-in-cheek poke at the service object pattern. The README is the real content, with the whole thing being published within about 45 minutes. If I give that away, I've ruined the whole point.

Anyway, I decided I'd just go talk to Adrian about it and see if I could do, say, a really short talk just to say "this gem exists, check it out," essentially. I think I was literally on the stage for 20–30 seconds, simply introducing the gem as an "alternative to architecture," which I think just confused people. Having said that, those who did take a look seemed to have enjoyed it.

And I felt great, simply for getting even further outside of my comfort zone.

A speaker on a dimly lit stage presents in front of a large projected browser window showing a GitHub repository titled “shkm/strong_service.” The audience sits in the foreground, and the presenter stands near center with a microphone, casual attire, and curly hair. Stage lights and ceiling rigging are visible above; a few chairs line the right side of the stage.
Look, ma, I'm an International Conference Speaker now!

There were other lightning talks, and they looked really interesting, but all I could think about at the time was having to be on stage. Sorry, folks!

Day 2: Rest of the Morning

Following the lightning talks was a "Rails SaaS panel," featuring speakers with established businesses who had or were going to give other talks. My concentration wasn't doing so good at this point, and since I wasn't taking notes, I intend to watch this when it appears online. The one thing I do remember is that there were things I should definitely take notes on when I re-watch it later.

Rounding out the eventful morning was Nicolas Elrichman's technical Rails talk, "Poly-table Inheritance." Add this to the list of those I'll be re-watching. I don't think it was timed that well, being technical and on day two just before the lunch break. Entirely not Nicolas' fault, but a shame I couldn't give the attention it deserves.

Lucian Ghinda, our lovely emcee with an infectious smile and limitless enthusiasm, decided last-minute to give us a coffee-brewing tutorial with both a V60 and AeroPress. What a highlight.

Lunch was good but nothing to write home about. We were hungry!

Someone showed up with a golden ticket for the gameshow and a hangover, handing it to my group in favour of more sleep. Emboldened by the stage appearance earlier, I decided to take it.

A hand holds a golden raffle-style card labeled “Gold Ticket,” with a scratched panel revealing the message “Special WINNER! ~ see organizer ~.” The card edges have vintage detailing, and a lanyard badge and feet on paving stones are visible in the background.

Day 2: Afternoon

Next up was Dan Singerman with "Code is writing, know your reader." This was another talk I couldn't say much about because I simply agree — code is read more than it is written, so the reader should always be considered at write-time. I hadn't considered the angle of AI agents being readers too, though!

And then… the game show!

We played Family Feud/Fortunes in two groups of three, based on surveys taken in the morning of the first day. My team was made up of Rosa Gutierrez, Victor Motogna, and, uh, little old me. Apparently no one knew or had forgotten the rules, including myself and the players, which made the whole thing pretty amusing. Somehow, my team won!

Then, onto a second round, where Rosa, Victor, and myself competed for points. We would have to answer questions or complete tasks, with the opportunity to get someone from the audience to stand in for us.

On a stage set up like a game show, three contestants in colorful glittery hats stand at podiums while a host in a shiny patterned suit faces a giant screen. The projected board shows categories with point values, including “THE CUBE,” “MEMES,” “COMEBACK,” “YOUTUBE,” “QUOTE,” “FREE,” “JS,” “LATIN,” “TV SHOW,” “TWEET,” “FOOD,” “FRIEND,” “RUBY,” “PIXELS,” “MAKE ART,” and “1.DAY.AGO.” A scoreboard at left lists Red, Yellow, and Blue teams at zero as the audience watches.
The start of round two, with Jakob hosting in his fabulous suit.

Rosa killed it and ended up winning. I came second, thanks entirely to the other attendees I had answer for me! To my rescue came Vipul to solve a speed cube, and Naijeria to draw a picture of Lucian as he posed with that big-ass smile.

My prize was a fancy Rails-branded backpack and other little bits of swag, which was perfect because I was looking to buy new backpack anyway!

Rosa won two massive sacks full of packets of Gusto — a Romanian corn-based snack which tastes of absolutely nothing. I later ran into her at the taproom, where she was still dragging one sack around and munching on them, which I thought was hilarious.

A 45 g bag of Gusto Pufuleti, Romanian corn puffs. The clear front shows pale yellow puffs inside, with a red banner logo reading “Gusto.” A cartoon yellow dog in a bow tie stands at the center. Badges say “100% ingrediente naturale” and “Hrănește‑ți optimismul!” The top strip features playful cartoon scenes.
This, but hundreds of them.

Once we all calmed down a little, there were two final talks.

Abiodun Olowode animatedly talked about abstractions. Yet another great speaker who did a good job of getting the audience involved. I generally agreed with her talk, but the room may have been a little too senior to appreciate it(?).

Finally, it was over to a pillar of the Ruby community for the keynote: Irina Nazarova. She presented big picture about marketing, communication, and joy in life itself. A really solid talk.

Afterwards, we all headed to the Ironic Taproom for good beer and even better banter. Most of us were feeling much more chill and talkative, and I heard a few positive mentions of strong_service. Michael Koper and I hit it off with some delightfully NSFW nonsense talk in Dutch.

Friendly Day 3: The Hike

Day 3 was an optional extra and not so much a part of the conference itself. We were to take a train to Sinaia and hike up to Peleș Castle for a tour. Not all of my small group would take part, two of us having left in the early morning. They were missed!

We started with breakfast from Hug Bakery whose branding I couldn't help but love.

A projecting square sign on a gray stucco building reads “HUGS BAKED FRESH” along the edge and shows a minimalist black graphic of two rounded shapes with smiling faces, resembling a hug. Decorative white moldings frame the windows and cornice; trees and cloudy sky are visible above.
This just makes me happy.

Off to the station to meet up with the other conference-goers and to board a Soviet-era(?) train, destination Sinaia!

I'm not a big sight-seer, but it was refreshing to be out and about. And it was an undeniably beautiful area.

Misty forested mountains near Sinaia under a brooding, overcast sky. Low clouds and wisps of fog drift between dark evergreen and deciduous treetops in the foreground.

We had plenty of time to talk on the way there and back, but as I remarked to others, I was so exhausted and sleep-deprived at this point that I felt my IQ had dropped by at least 50 points; simply keeping up with conversation was difficult.

That said, I had a great time on this little adventure!

It rained a lot, which I thought was quite refreshing given the heat. A lovely stray dog — a recent mother — followed us all from the train station all the way up to the castle, stopping when we stopped and calmly puttering around. She seemed happy enough to be in our company.

A wary, medium-sized stray dog with muddy white fur and black patches stands on a gravel lot, ribs and nipples visible, looking off to the side. Parked cars and tall, manicured evergreens line the background beneath a gray sky.

Easily my most awkward moment of the trip was when some people I highly respect (not naming names) stopped and pointed to the ground, and after about five seconds of not being able to understand what the heck was up, I put my foot down to continue.

They were pointing out some dog poop which I then proceeded to, seemingly on purpose, stamp on. Not sure what they made of that. I was not operating at full capacity.

So: we had an enjoyable tour of the castle with an excellent guide. I liked the weapons collection, and as a long-time player of Diablo 2, recognised many of them. The inhabitants of said castle also really had a thing for secret passages.

Then it was off to a restaurant, which was booked for us. We had some inspiring conversations at my table, primarily about other languages and frameworks which gave me food for thought and will surely appear later somewhere on this blog.

The train on the way back was delayed for forty-five minutes, which is apparently quite a common occurrence over there. The company was good, though, so it felt like we boarded in no time.

Dim, unlit train car where a beam of sunlight and a bright phone torch cut through the darkness. Passengers file into the aisle with bags, faces partly lit by the torch while the rest of the seats and ceiling remain in shadow.
The lights were out for quite a while after getting on the train, which was very cosy.

Finally, we were back in Bucharest. A full group photo courtesy of a stranger, and we followed Adrian to a bar/restaurant. Not everyone joined us, which meant I couldn't say goodbye to them, but on the other hand I prefer Irish goodbyes anyway. I'd see them again!

A large group of smiling people poses on the steps outside a graffiti‑covered building at night. An illuminated “M” sign and two flags hang above the entrance. The crowd fills the stairs and doorway, with backpacks and casual jackets, under warm artificial light.
I look like I belong in a Hammer film here.

Some less Irish goodbyes later, and we were at our BNB.

Someone found a live cockroach, horrifying us all. We emptied our bags to make sure we wouldn't take any with us, and I slept on the sofa downstairs, away from where it was found, opting instead to be bitten a dozen times by mosquitoes.

Day 4: Going Home

My flight wasn't until the mid-afternoon, so we took it easy in the morning. There's not much to say, other than that we stopped by at my romanian store for gifts, which I strongly recommend: everything is hand-made and local.

The flight back wasn't fun. I gave up my nice aisle seat to someone who wanted to sit next to his wife, landing me in-between two others. Not the end of the world, though. Finally, took a train from Schiphol airport, was picked up at the station, and crashed in bed.

Reflections

I hope that I've managed to illustrate how much more there was to this conference than the talks. There's no way to experience anything like this by simply watching some YouTube videos.

I came away feeling inspired, humbled, exhausted, hopeful, and enriched. I met many new friends. At a crossroads in my career, I've decided I do want to remain a part of the Ruby community, and I want to do what I can to raise it to newer heights.

I'm under no illusion that Friendly.rb is a standard conference. The other conferences I've been to were nothing like it, and had me questioning if this was for me at all. But those weren't Ruby conferences, and they were much larger, and they had very different ideologies than "friendliness."

I would absolutely go back to Friendly.rb next year, but sadly they're taking a break. I will find others to go to, although I'm not yet sure which. And despite the unforgettable time (and I use this phrase carefully as someone with the memory of a stoned goldfish), this does still take a lot out of me. Respect to those doing the Ruby Triathlon!

In closing, I'd like to encourage others to step outside of their comfort zones. Go to conferences. Get into Ruby. Don't stay anonymous on the internet. Say hello to new people.

And most importantly, be friendly!