June 21st - 22nd, 2019


The annual European Ruby conference has left port!

Thank you everyone!



Eileen M. Uchitelle


Laura Linda Laugwitz


Yukihiro Matsumoto


Charity Majors

Ashley Jean

Torsten Schönebaum

Melanie Keatley

Jan Krutisch

Aaron Cruz

Damir Svrtan

Kaja Santro

Hongli Lai

Bilawal Hameed

Yusuke Endoh

Schneeman Richard

Meet RubyNL, the driving force behind EuRuKo 2019

RubyNL is a Dutch Ruby foundation led by Rayta van Rijswijk and Floor Drees.

Rayta van Rijswijk

Floor Drees

And the rest of the team

Roy Tomeij

Tom de Bruijn

Tonći Galić

Terence Lee

Arno Fleming

Artwork by Nick Visser. Implementation by Niels van der Zanden.

Board the ss Rotterdam!

3e Katendrechtsehoofd 25,
3072AM Rotterdam - Open on map

For this year's EuRuKo we managed to secure a unique location in Rotterdam: the ss Rotterdam. A ship with a rich history now permanently docked right in the smack center of Rotterdam.

The event space is wheelchair accessible.

Book your accommodation on the ship (yes, really).


The schedule is subject to change.

Friday, June 21

08:30 Registration
09:45 Welcome
10:00 Keynote: Functional (Future) Ruby - Yukihiro Matsumoto
10:30 Break
10:50 From multiple apps to Monolith - #BuildingMonsterservices - Kaja Santro
We are currently transferring our 5 public Rails apps to 1 big monolith. All five of them are job boards with seemingly similar logic but historically grown exceptions and weird peculiarities. The perspective to have multiple data bases managed in 1 app in Rails 6 sparked our idea. The whole story!
11:20 Surrounded by Microservices - Damir Svrtan
How to architect an app that consumes endless data sources via various different protocols? How to support easy swapping of those data sources and how to test it with confidence? Let's checkout how these and many other requirements are fulfilled within the Netflix Studio space.
11:50 Break
12:10 What causes Ruby memory bloat? - Hongli Lai
Ruby apps can use a lot of memory. But why? I set out on a journey of discovery, and not only found evidence that defies common wisdom, but also a simple way to reduce memory usage by 70%.
12:40 It's very effective; using Pokemon to catch all code smells - Melanie Keatley
When learning new skills, connecting what you already know is key. Studying the most common code smells in Ruby and their fixes, exposes a pattern that is similar to how the game mechanic in the popular video game Pokemon works. Grouping certain types and finding the way to beat them.
13:10 Lunch
14:30 Building bricks with MRuby: A journey to MRuby on LEGO robots - Torsten Schönebaum
Constructing robots with LEGO is fun, programming them using Ruby even more. If you ever wanted to know how to start with MRuby on a device that can be changed into anything you can build with LEGO — this talk is for you.
15:00 A gentle introduction to Data Structure Trees - Ashley Jean
In this talk, we’ll dive into Data Structure Trees. We’ll talk about how to work with them and why they’re useful. Also, we’ll discuss how they’re visible in our codebase and look at some modern examples using applications and systems.
15:30 Break
16:00 Closing notes
16:15 Closing keynote: The Miseducation of This Machine - Laura Linda Laugwitz
While machines continue to learn with more sophisticated algorithms and larger amounts of data, humans need to understand how such learning works in order to take its results with the proper grain of salt. Let's make ML tangible and thus help you become a better machine teacher!
20:00 Party (ends at midnight)

Saturday, June 22

09:30 Registration
10:15 Welcome
10:30 Keynote: Yes, I Test In Production... And So Should You - Charity Majors
Testing in prod has gotten a bad rap. It's both inevitable - you can't know everything before you ship - and desirable. In modern complex systems, failure is a constant and the only guiding principle is that "users should never notice". So how do you test safely in prod, and how should you allocate your scarce engineering cycles between prod and staging?
11:00 How We’re Making Tech Documentation Better, Easier, And Less Boring - Bilawal Maheed
Engineers optimize for scale. We think about writing the “best” code, designing non-flaky tests to give us confidence, and adopting the latest and greatest - but why do we still fail to write, maintain, and improve our docs? Given we all rely on docs, what went wrong?
11:30 Break
11:50 A Plan towards Ruby 3 Types - Yusuke Endoh
We introduce Ruby Type Profiler which is one of the proposals for Ruby 3’s static analysis. As far as we know, it is only one approach to statically analyze a non-type-annotated program for MRI. We aim to realize a static analysis tool that imposes no change of the great Ruby programming experience.
12:20 Lightning Talks
12:50 Lunch
14:10 The musical Ruby - Jan Krutisch
Let’s make some music with Ruby. After cheating a bit with the amazing SonicPi, we’ll drop down to the foundations - While explaining the basics of digital sound synthesis and a tiny bit of music theory, we’ll create a tune to dance to using nothing but pure Ruby.
14:40 City pitch
15:00 Break
15:20 Steal this talk - Aaron Cruz
It’s been a long journey building “Talkie”, but in the process I’ve consumed 100’s of Ruby talks from over the last years and I want to boil them down to the best things I can fit into this time slot. This talk is like a listicle of listicles, a best of Ruby talks. Like if you soaked up all the Ruby talks, cooked them down into a thick paste and then smeared it all over the EuRuKo stage.
15:50 The Life-Changing Magic of Tidying Active Record Allocations - Richard Schneeman
Your app is slow. It does not spark joy. In this talk, we will use memory profiling tools to discover performance hotspots. We will use this technique with a real-world application to identify a piece of optimizable code in Active Record that leads to a patch with substantial page speed impact.
16:20 Break
16:40 Closing keynote: The Past, Present, and Future of Rails at GitHub - Eileen M. Uchitelle
We'll look at GitHub's story, our Rails upgrade, and how cumulative technical debt can stifle development. At the end we'll explore how we're staying up to date with Rails and our investment in the future of Rails.
17:10 Closing notes (+city reveal)
17:20 Conference end
20:00 #RubyKaraoke

EuRuKo 2019 is kept afloat by these great companies

Please contact us about sponsoring. Or check out our sponsoring packages!

Contribute to a diverse EuRuKo!

EuRuKo wants to be an inclusive conference. That's why we have a Diversity Ticket program aimed at members of underrepresented groups in tech — this includes, but is not limited to: people of colour, LGBTQIA+ people, women, disabled people.

As a Diversity Sponsor you make it possible for one or more eligible candidates to attend the conference by sponsoring their ticket and, optionally, their travel and accommodation. Diversity sponsors are recognizable by ❤️ icon in the sponsors list. The deadline for Diversity tickets has expired and tickets have already been divided.

Code of Conduct

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

Read our Code of Conduct

RailsGirls Rotterdam 2019

One day prior to the conference, we throw a free workshop at the BEEQUIP office in Rotterdam. Dive into the magical world of web development, at Rails Girls Rotterdam, June 20, 2019.