Program icon RubyConf 2018 Program

This year, we've put together one of our best programs yet, featuring both proven stars and folks who are sure to be your new favorites! Dive in below to learn more about the talks and speakers we're featuring this year.

Many of the program's breakout sessions are sorted into specific themed tracks, which they have been organized under below. You can see a track's talks by scrolling down to Sessions and clicking on the track in the side menu (or by clicking on the top menu in mobile view). All other talks are listed under General.

Keynote Speakers

Heroku/Ruby Association Yukihiro Matsumoto (Matz)

The creator of Ruby, Matz works for Heroku and the Ruby Assocation to improve everything Ruby.


CodeNewbie Saron Yitbarek

Saron is a developer and founder of CodeNewbie, the most supportive community of programmers and people learning to code. She hosts the CodeNewbie Podcast, the Command Line Heroes podcast from Red Hat, and co-hosts the basecs podcast with Vaidehi Joshi.


GitHub Bianca Escalante

Bianca is a Senior Manager on GitHub’s Social Impact team where she spends her time overseeing the company's local community engagement initiatives and advocating for accessibility, inclusion and diversity. Her experience with nonprofit orgs and tech companies, paired with her intersectional lens, provide her with unique and innovative perspectives on how to create and foster diverse, inclusive and equitable environments both online and in the real world.


The Improv Effect Jessie Shternshus

Jessie is the owner of The Improv Effect, which she founded in 2007, with the goal of helping businesses reach their full potential by means of interpersonal-communication skills training. Throughout the years, Jessie has become a key player in internal culture transformations for global companies such as Skype, Groupon, Netflix, Johnson & Johnson, Getty Images, Capital One, Crayola and many more (including some awesome Ruby shops...) Jessie established herself as a sought-after speaker, and has delivered keynote talks in conferences around the globe. She is also the co-author of “CTRL Shift. 50 Games for 50 ***Days Like Today;” and is currently working hard on releasing her second book.



General Beating Mastermind: Winning with the help of Donald Knuth

Come solve logic games with Ruby, learn about minimax algorithms, and turn a paper into code. There are lots of "solved" problems out there that don't have a good library available -- learn how to write one yourself. We'll take a paper written by Donald Knuth (the "father of analysis of algorithms" and author of "The Art of Computer Science") and use it to solve a game called Mastermind that many people (including me) played as children. We'll look at the game, walk through the paper, turn the prose and math into code, understand minimax algorithms, and never lose at Mastermind again!

Speaker icon

Adam Forsyth

I'm a Group Technical Lead and Community Lead @ Braintree. At work I do a variety of things from planning events to API development in Ruby to relational database scaling and platform architecture planning. Outside of work, I'm a coding enthusiast active in both the Chicago, IL and Burlington, VT tech communities. I like to give talks about Python, Ruby, and software development practices.

General Ruby-us Hagrid: Writing Harry Potter with Ruby

We all know that Ruby can give us super powers, but can we use it do something truly magical - write a brand new Harry Potter completely automatically?

It turns out that Ruby and the dark arts of Natural Language Programming are a match made in heaven! Using some basic NLP techniques, a dash of probability, and a few lines of simple Ruby code, we can create a virtual author capable of generating a very convincing Potter pastiche. And if the life of an author’s not for you, don’t worry. In the last part of the talk, we'll explore how we can apply what we've learnt to everyday coding problems.

Speaker icon

Alex Peattie

Alex Peattie is the co-founder and CTO of Peg, a technology platform helping multinational brands to find and work with top YouTubers. Peg is used by over 2000 organisations worldwide including Coca-Cola, L'Oreal and Google.

Prior to Peg, Alex spent 6 years working as a consultant for the likes of GOAT, UNICEF and Nike, before joining coding bootcamp Makers Academy as a senior coach, where he trained hundreds of developers. Alex was a technical judge at the 2017 TechCrunch Disrupt conference.

General Make Ruby Write Your Code for You

Despite best intentions, sometimes you just have to write similar code over and over again. This leads to a massive maintenance burden down the road. But, there’s a better way: have the computer write the code for you.

Code generators are shrouded in mystery and can sound unapproachable, but they aren’t! I’ll show you how code generation is no different than web development and why Ruby has all of the tools to build one quickly. You’ll leave this talk knowing where you could apply code generation in your own code base and how to get started!

Speaker icon

Alex Stephen

Alex is a Software Engineer at Google, working on bringing support for Google Cloud to a million different open source projects. He grew up in Michigan (Go Blue!) and stumbled his way to Seattle. He writes so much Ruby that his Ruby is writing more Ruby.

General BDD: Baby Driven Development

When I became a parent, I was completely unprepared for the challenges that awaited me. I reached out to hundreds of fellow parents in tech and learned there are common challenges that simply aren’t spoken about. These focus around one fact that no one wants to admit... parenting is not fun. Parenting is stressful, difficult, and oftentimes incredibly lonely. But being a parent also makes people more organized, focused, and empathetic. We’ll explore these survey results to expose common trends and issues and discuss solutions that show how supporting parents helps all team members thrive.

Video Slides
Speaker icon

Allison McMillan

Allison McMillan is the Engineering Manager for Atom at GitHub. She's worn many hats including community builder at the University of Michigan, software developer, and Managing Director of a national non-profit. Allison also recently started a podcast about being a parent in tech, Parent Driven Development. When she's not coding, you can find her encouraging her toddler's climbing skills, making faces at her infant, or pretending she has time to bake. Allison lives in the DC area.

General Building a Memex (with Ruby!)

In 1945, the Memex was supposed to be the ultimate personal library. In addition to storing information, users could navigate, organize, link, and share data. But tragically, it was never built.

73 years later, I’m building one in Ruby. I’ve created dozens of importers for different services I use, organized the 10M data points into a graph schema, and used Ruby to tie everything together. Almost all aspects of my life and personal history are now available through an API.

I’ll go over the history of the Memex, how I used Ruby to build my own, and do a demo of what I can do with it.

Speaker icon

Andrew Louis

Andrew is a software developer from Toronto. After learning about the Memex, he asked the dangerous question of “why do we still not have this?” and foolishly decided to start building one himself. Previously, he was the co-founder and CTO of ShopLocket, an ecommerce startup which was acquired in 2014.

General The Games Developers Play

We all play games. Not video games, but the “games” of communication and power between humans.

Even the most rational of us may be unaware of the drivers of our behaviour and the impact it has on our ability to work well with others.

Find out how an awareness of our state of mind, our biases and the dynamics of human communication can help us to understand each other, ourselves, and build better software.

Speaker icon

Andy Croll

Freelance CTO, Rubyist, Conference Organizer, Author, Speaker, Bootstrapper & Parent of Twins.

General Ruby for Makers: Designing Physical Products With Ruby

Rubyists are creators. While we’re traditionally tasked with building digital products, our skills can cross into the physical medium too. This talk demonstrates a non-typical way to use code to create products: building a Ruby program that generates dynamic plans for laser-cut physical products (e.g. laptop stands, picture frames, notebooks, etc). With size, fonts and patterns as variables, our app programs a system that allows a user, or a computer, to design an infinite number of variants. Attendees will leave inspired to explore new avenues to use their skills to do what we do best: create.

Video Slides
Speaker icon

Andy Glass

Andy is a Brooklyn-based Rubyist, entrepreneur, nomad, maker, U.S. Open Ballperson and Guinness World Records Adjudicator. He has a passion for building products to improve his native New York: a park-finding mobile app, a tool for New Yorkers with disabilities to better utilize the Subway system, and an app that empowers immigrant New Yorkers to exercise their rights. You can find him working in cafes, bicycling, exploring new neighborhoods and cataloging their ethnic food.

General Cats, The Musical! Algorithmic Song Meow-ification

How are you supposed to sing along with your favorite TV theme song every week if it doesn’t have lyrics? At my house, we “meow” along (loudly). We also code, so I built ‘Meowifier’ to convert any song into a cat’s meows. Join me in this exploration of melody analysis APIs and gratuitous cat gifs.

Speaker icon

Beth Haubert

Beth is a software engineer who loves Ruby, handcrafting SQL queries, and as many monitors on her desk as possible.

She’s also a former airborne cryptologic linguist for the US Air Force, fluent in Mandarin. Things you can ask her about include Ruby, cats, board games, karaoke, and building applications that convert songs into auto-tuned cat meows. Things she'll have to kill you if you ask her about: the airborne linguist part. Also, she likes to make emojis look like they're farting. 🐈💨

General The Ruby Developer's Command Line Toolkit

As a Ruby developer, you use the command line, but do you take advantage of everything it can do? Join us for a demonstration of command line tools for Ruby developers. Increase productivity with search tools, shell functions, git aliases, tmux shortcuts and rbenv plugins. Want a better pry or irb? Supercharge it with shortcuts, macros and gems. Once you've perfected your setup, push it to GitHub so you can pull it and install it on any computer you want. Whether you're a reluctant minimalist or an experienced power user, you'll discover tools to make you a happier and more productive developer

Speaker icon

Brad Urani

Brad Urani is a coder, karaoke singer and barbecue evangelist. He believes happiness is directly correlated with the size of your .vimrc and refuses to buy into YAGNI. When not hiking or hacking, he preaches the wonders of Ruby and SQL as Staff Engineer at Procore in Santa Barbara, CA

General Reducing Enumerable - An Illustrated Adventure

Meet Red. Red is a reducing lemur, and he loves to sum things using the reduce method. The problem is, with Ruby 2.4+ and the sum method he's starting to think reduce isn't that useful anymore. Distraught, Red asks his master for advice, and she sends him off on a grand journey to learn the true powers of the reduce method by reimplementing various methods from Enumerable.

Join Red on an illustrated adventure through the land of Enumerable as he learns to map, select, find, and more using his trusty reduce.

If you're new to Ruby and Functional Programming, this is the talk for you.

Video Slides
Speaker icon

Brandon Weaver

Brandon is an artist turned programmer, working at Square as a Platform Engineer in the San Francisco Bay Area. He works with Ruby, Rails, and EmberJS. He teaches programming courses and gives talks in the community, and has a love for lemurs and Ruby.

General Cheating with Ruby

I used Ruby to cheat at a computer game, and it was so much fun. Come to this talk to hear about a game solver that analyzes a screenshot of the game and calculates the correct answer. We'll chat about dynamic image analysis, perceptual hashes, and the traveling salesman problem. I promise, it's going to be great.

Speaker icon

Cameron Dutro

Cameron Dutro currently works on the platform team at Lumos Labs, Inc, the creators of Lumosity. He's been programming in Ruby and using Rails for the better part of eight years and has held previous positions at Twitter and Fluther. When he's not reading about, using, or working with technology, Cameron can be found on his bike or hanging out at home with his wife and cat.

General Building Generic Software

As engineers, most of the software we build is built for a specific purpose. Whether to serve web pages or solve math equations, that purpose makes our code meaningful and easy to comprehend.

But under the hood, it is generic software - software that solves whole classes of problems at once - that powers our applications. Ruby has one of the most vibrant ecosystems of such software, but good luck studying its design principles in any tutorial or coding school.

Instead, join me for a dive into this mysterious, hidden world, and learn to contribute where it counts: at the root of the problem.

Video Slides
Speaker icon

Chris Salzberg

Rubyist and writer from Montreal living and working in Tokyo. I'm the author of Mobility, a pluggable translation framework for Ruby, and committer to many open-source projects including Rails. I coined the term "Module Builder Pattern" and have written extensively on this metaprogramming technique. I work with a team of developers at Degica.

General Inheritance, Composition, Ruby and You

Prefer composition over inheritance is something you’ve probably heard. You may have even heard more strongly worded arguments against inheritance. This talk will give you the knowledge you need to know whether or not inheritance is a viable solution. While preferring composition is often the right answer, the Ruby language has deep ties into inheritance and we should know it well. If you’re new to Ruby, Object-Oriented programming, or just curious what all the hubbub is about - this talk is aimed at you.

Speaker icon

Cody Stringham

I am a designer turned developer living in Salt Lake City, UT. I love Ruby. I work at Nav, a company who also loves Ruby (as well as Go and Elixir). No matter what language I get to work in (Javascript, Swift, Kotlin, Elixir) I always find myself reminiscing about my travels with Ruby. When I'm not learning about code… I love to play video games, snowboard, hike and spend time with my wife (Eden) and my doggo (Ruby - yup, I named my dog Ruby).

General Building Serverless Ruby Bots

Want to build a Bot without the hassle of provisioning and managing servers? Amazon’s got a service for that and it’s called AWS Lambda - it executes your code only when needed, scales automatically and you pay only for the compute time you consume.

There’s one problem with Lambda - it doesn’t support Ruby!
Let’s checkout multiple options on how to build a Ruby Bot and package it into an executable which you can run on any machine without the need to actually have Ruby installed.

Speaker icon

Damir Svrtan

Damir is a Senior Software Engineer @ Netflix. He is a strong advocate of clean coding, automated testing and passionate about constant improvement. Conference speaker, blogger, open source lover and contributor. Prior to moving to San Francisco he was the organizer of Ruby Meetups in Zagreb.

General Documentation Tradeoffs and Why Good Commits Matter

We've all thought "what is this thing supposed to do?" or "why was this done that way" moment when looking through codebases and unless there's documentation or you can find the author, the answer is often hard to find. There are many options to document code from comments to internal wikis, so I'll discuss a heuristic for evaluating the options based on the accessibility (how far away is the answer?) and accuracy (how likely is it that what I'm reading is out of date?) to build a case that the git commit message is likely where you should spend your energy documenting. I'll share my workflow and

Video Slides
Speaker icon

Greggory Rothmeier

After getting a masters in physics, I changed careers to work as a software engineer and have spent the last 6 years working for a consultancy, helping Blue Bottle Coffee build their ecommerce and analytics platforms and am now a lead engineer at Stitch Fix working on internal applications to support our merchandisers.

General Running a Government Department on Ruby for over 13 Years

In this presentation, I will be sharing my experiences running the programming unit for a government department for the over 15 years, using Ruby almost exclusively for the last 13. I will discuss our approach of having developers working directly with stakeholders to determine requirements, how we prioritize requests for new features, how we use Ruby for all types of applications, and our unique web application stack and how it uses defense-in-depth approaches to prevent and contain attacks.

Video Slides
Speaker icon

Jeremy Evans

Jeremy Evans is the lead developer of the Sequel database library, the Roda web toolkit, the Rodauth authentication framework, and many other ruby libraries. He has contributed to CRuby and JRuby, as well as many popular ruby libraries. He is the maintainer of ruby ports for the OpenBSD operating system.

General Wafflebot: Cloud Connected Artificially Intelligent Waffles

Come laugh and cry with me as I detail my audacious quest for the world's perfect waffle.

You'll learn valuable life skills like properly assembling a Geiger counter (yes, waffles are radioactive), when and how to use solenoid valves to prevent batterpocalypse, and why you should never, under any circumstances, attempt to modify a self-heating chunk of searing metal in such a way as to make it sentient.

Join me for a whirlwind tour of my most ambitious Ruby hardware project yet. Even if the talk is terrible, you might get a questionably food-grade waffle out of the deal.

Speaker icon

Jonan Scheffler

Jonan is a developer at Heroku and an aspiring astronaut. He believes in you and your potential and wants to help you build beautiful things. He loves robots, games, LEGOs and Magic: The Gathering. If you like any of those things or are willing to pretend you should go and introduce yourself. Other good conversation starters: anything you’re passionate about, your life story, what you want to be when you grow up and how you became so fabulous.

General Secrets of a Stealth Mentee

Your dream mentor is right around the corner, but they don't need to know that! In this talk, you’ll discover how to find and work with the great mentors you deserve. You’ll learn how to extract insights tailored to you and to keep the great advice coming. The best part? You can use these strategies even if you're not in a formal mentorship program. Maybe you don’t even know what you want right now, and that’s ok! You can still receive mentorship to help you identify and grow into the next stage of your career. We don’t have to wait to be chosen--let’s help others help us.

Speaker icon

Katherine Wu

KWu is a senior Ruby developer at Heroku. In college, she added a Psychology major to learn how to people--but using books. Besides always analyzing due to lacking intuition, she also enjoys knitting, weightlifting, and hate-reading parenting books.

General Ruby is the Best Javascript

Some people love Ruby and some people love Javascript. Both will hate this talk. In a display of complete moral depravity, we'll abuse flexible syntax and metaprogramming to make valid Ruby code that's indistinguishable from Javascript. We'll use a variety of tricks to accomplish it that you can take home and use in more respectable code.

Video Slides
Speaker icon

Kevin Kuchta

Kevin's a generalist software engineer with a bad Ruby habit. Because he has the attention span of a startled sparrow, he works on everything from CSS to infrastructure at Joyable, a mental health startup. Hailing from the frozen hinterlands of western NY, Kevin now spends his time in California drawing comics and writing silly twitter-bots.

General Parallel programming in Ruby3 with Guild

Do you want to write the parallel program with Ruby? Ruby 3 will offer new concurrent abstraction: Guild (code name) which enable to run Ruby programs in parallel without difficulties. This presentation will share our current design of Guild and discussions. You can see how to write a parallel program with Guild with prototype implementation.

Video Slides
Speaker icon

Koichi Sasada

Koichi Sasada is a programmer, mainly developing Ruby interpreter (CRuby/MRI). He received Ph.D (Information Science and Technology) from the University of Tokyo, 2007. He became a faculty of University of Tokyo (Assistant associate 2006-2008, Assistant professor 2008-2012). After the 13 years life in university, he had joined a member of Matz's team in Heroku, Inc. Now he is a member of Cookpad Inc (engineer). He is also a director of Ruby Association.

General Refactoring the Technical Interview

Is your technical interview optimized? Could it use a refactor?

Do you ask candidates questions that could actually influence your production codebase? Or, do you ask them about problems that are solved and standardized? Or worse, contrived and trivial?

Have you ever asked any of these questions:

  • Find min or max in a list
  • Implement a sorting algorithm
  • FizzBuzz (or any contrived algorithm)
  • “Now can you do it recursively?”

Leverage your production code and commit history to make your next interview more effective in identifying the right hire. All while having more fun.

Video Slides
Speaker icon

Mark Siemers

Mark has worked in programming departments as small as 2 and as large as 3,000. He has seen how technology can help (or hinder) people in many environments. His goal is to have developers always focus on how they are helping people - mainly end users, but also teammates working together. This all starts with getting the right people on your team - and that all starts with the interview.

General ROM: the final frontier of mruby

Memory is limited resource of physical devices. Although mruby is smaller than MRI, it’s not small enough for cheap and easily avaiable devices. But there is another frontier: ROM. Many boards has larger Flash ROM than RAM. However, Ruby is too dynamic to put into ROM just as it is. How can we use ROM to implement classes of Ruby, and how small can we make mruby? It’s a thirty-minutes mission to explore strange new worlds.

Video Slides
Speaker icon

Masayoshi Takahashi

He is an old-time Rubyist and the founder of Nihon Ruby no Kai, the non-profit Ruby community in Japan. He is also the founder of Tatsu-Zine Publising, the e-book publisher for IT engineers in Japan.

Speaker icon

Yurie Yamane

Team yamanekko: Team Yamanekko is a developer group of Yurie Yamane and Masayoshi Takahashi. We are using mruby for micro controllers, with the slogan "tanoshii mruby(mruby for fun)".

Yurie Yamane: She is a programmer who is interested in embedded systems. She is a member of TOPPERS Project.

General The Case of the Missing Method — A Ruby Mystery Story

Business is slow for Ruby Private Investigator, Deirdre Bug. She’s on the verge of switching industry when she gets a call from an anxious young man. "Some class methods have gone missing," he tells her breathlessly. "I need your help."

Deirdre takes the case and begins exploring Ruby objects behind the scenes. Though she thinks she's on familiar ground — Ruby's object model, method lookup — she's about to discover that she really has no clue.

Speaker icon

Nadia Odunayo

Nadia is currently CTO at CodeNewbie. Before that, she co-directed Ignition Works, a company that did a mix of in-house product development and software consultancy, helping large firms to manage their cloud platforms. She previously worked at Pivotal and originally learnt to code at Makers Academy in London. She maintains in her spare time.

General The Developer's Toolkit: Everything We Use But Ruby

As developers, our work is mediated through many tools besides languages. We use terminals, browsers, git, and the os. Not to mention editors. These are powerful tools that can be infinitely customized and extended. The tools can make common tasks easier or less error prone to perform. Or they can give you visibility into system behavior. But the options are bewildering and each customization has a cost. It’s time to make your environment work for you. This isn’t just a list of tips and tricks, but will also suggest how to evaluate whether a power tool or shortcut is worth your time.

Speaker icon

Noel Rappin

Noel Rappin is a Principal Developer at Table XI, and the host of the Tech Done Right podcast. Noel is the author of multiple technical books, including "Rails 5 Test Prescriptions", "Trust-Driven Development", and "Take My Money: Accepting Payments on the Web". Follow Noel on Twitter @noelrap, and online at

General RubyPlot - Creating a Plotting Library for Ruby

The talk introduces Rubyplot - the plotting library created for Ruby. It focuses on the general design of a plotting library, its influence from John Hunter's Matplotlib, the design decisions that were influenced by Ruby and provides a perspective of the language from the eyes of a newcomer.

The talk further argues why Ruby should be used for scientific computing and urges Rubyists to contribute to the development of scientific frameworks.

Speaker icon

Pranav Garg

I am a Senior Year Undergraduate in Electronics Engineering from BITS Pilani, India. I strive to become a polymath and work on solving real-life inter-disciplinary problems that can directly impact people. I am a big fan of FOSS and one of the lead developers for Rubyplot. I am currently exploring the intersection of Computational Neuroscience and Artificial General intelligence and am fascinated by bio-realistic model based Reinforcement learning.

General Graphics and Simulations (and Games), Oh My!

Quick and easy visualization is an important teaching tool and a wonderful way to see your ideas in action. Unfortunately, it is neither quick nor easy for rubyists to get from idea to visualization. You have to have a ton of extra stuff installed. You need to know game mechanics/math. You need to learn a whole other way of programming. It isn't something that is easy for a beginning programmer to pick up. This talk describes an alternative graphics and simulation library with a very clean API making it incredibly easy for newbs and experimenters to go from idea to visual simulation. Pew pew pew!

Speaker icon

Ryan Davis

Ryan Davis is made of meat. He eats food, breathes air, and burns calories. He's also an independent consultant who has been using Ruby since 2000 and is a founding member of the Seattle Ruby Brigade, the first and foremost ruby brigade in the world.

General Code Review, Forwards and Back

Your team’s code review practices cause ripple effects far into the future. In this play, see several ways a single code review can go, then fast-forward and rewind to see the effects – on codebase and culture – of different code review approaches.

The setting: an office conference room. The characters: a developer, who’s written a chunk of new Ruby code, and a team lead, who’s about to review it. The code is not great.

See a fast-paced montage of ways things can go. Recognize patterns from your past and present. Learn scripts for phrasing criticism constructively. And laugh.

Speaker icon

Sumana Harihareswara

Sumana Harihareswara is an open source contributor and leader who has worked on PyPI, MediaWiki, and other FLOSS projects. She has keynoted Open Source Bridge, LibrePlanet, and other tech conferences, and manages and maintains open source projects as Changeset Consulting. She's also a teacher and standup comedian, and has mentored new engineers and administered mentoring programs like Google Summer of Code.

Speaker icon

Jason Owen

Jason Owen is a consultant and programmer who learned a tremendous amount from participating in the Computer Action Team at Portland State University and from independent study at the Recurse Center. He has been conscientiously honing his skills as a code reviewer and code reviewee for several years.

General The secret power of Ruby 2.6: JIT

Have you tried the JIT compiler included in Ruby 2.6 preview releases? It's easy, just include "--jit" option to a ruby command or set RUBYOPT="--jit" environment variable. You've just learned how to enable it.

But wait, are you sure you can use it? What the hell is going on behind it, why is there a GCC process under your Ruby process, and why can JIT even make your Ruby program even slower? In this talk, you'll be prepared to try the brand-new Ruby's secret power on production from the next Christmas.

Video Slides
Speaker icon

Takashi Kokubun

A Ruby committer, who is developing JIT compiler for MRI.

General Branch in Time

In one timeline, a quick path to clarity. In the other, a long and painful journey trying to understand the obscure intent of a line of code. The only difference between the two realities? The revision history...

This is a story about writing maintainable software. But rather than the code itself, we’ll see how a well-crafted revision history is as important to maintainability as choosing the right abstraction. We'll explore the differences between a useful history and an unhelpful one. And you'll learn about the practices, tools and techniques that help make the difference.

Video Slides
Speaker icon

Tekin Suleyman

Tekin Suleyman is a senior freelance consultant who's been shipping Ruby code for over a decade. He's worked with teams, large and small: from Government agencies (GDS) to listed startups (FreeAgent), and the world's oldest and largest Co-operative (Co-op Digital). He also runs the North West Ruby User Group in Manchester, UK

General JRuby 2018: Real World Performance

This year has been big for JRuby! We're pushing the edges of performance on the JVM and now see large frameworks running much faster than CRuby. This talk will cover the optimizations we've done in 2018 and what impact they're having on performance. We'll go through several features that did not optimize well before the recent work. We'll talk about supporting new Rails versions and how we're working to make Rails apps more reliable, more concurrent, and more scalable. Finally we will discuss what the future holds and how you can get involved.

Speaker icon

Thomas E Enebo

Thomas Enebo is co-lead of the JRuby project and an employee of Red Hat. He has been a practitioner of Java since the heady days of the HotJava browser, and he has been happily using Ruby since 2001. When Thomas is not working he enjoys running, anime, and drinking a decent IPA.

Speaker icon

Charles Oliver Nutter

Charles works on JRuby and other JVM language concerns at Red Hat.

General The Anatomy of a Ruby Gem: Going From Zero to Sharing Code

To many Rubyists just starting out, gems can appear very mysterious. You list them in a Gemfile and run 'bundle install' or install them directly with 'gem install'. Suddenly, your programs gain more functionality than they had before. But what are gems? What makes them work? How can you make your own to share with the world? Let's find out.

Video Slides
Speaker icon

Tony Drake

I'm a senior developer with about 10 years of professional development experience (8 of those with Ruby). I enjoy working in development teams of all sizes and helping junior developers level up. When I'm not hacking away or being a part-time DevOp, you can find me online kicking butt in Mario Kart.

General High-speed cables for Ruby

Modern web applications actively use real-time features. Unfortunately, nowadays Ruby is rarely considered as a technology to implement yet another chat – Ruby performance leaves much to be desired when dealing with concurrency and high-loads.

Does this mean that we should betray our favorite language, which brings us happiness, in favor of others?

My answer is NO, and I want to show you, how we can combine the elegance of Ruby with the power of other languages to improve the performance of real-time applications.

Video Slides
Speaker icon

Vladimir Dementyev

Vladimir is a mathematician who found his happiness in programming Ruby and Erlang, contributing to open source and being an Evil Martian. Author of AnyCable, TestProf and many yet unknown ukulele melodies.

↑ Back to top
Ethical Decisions Unraveling the Masculinization of Technology

Have you ever wondered where the perception that technology is a masculine pursuit comes from? Or why we have to explain that, "no really, women are interested in computers too"? At the beginning of the modern technological era, to be a computer was to be an actual literal woman—someone trained in math and computations. Decades later, women are underrepresented in most technical pursuits, with an increasingly “leaky” pipeline leaving fewer and fewer throughout our career progression. Learn about the gendered history of computing and explore how we can write a new narrative of participation.

Speaker icon

Audrey Eschright

Audrey Eschright is a writer, community organizer, and software developer based in Portland, OR. She publishes The Recompiler, a feminist hacker journal, and co-hosts the weekly Recompiler Podcast. She's best known for founding Calagator, an open source community calendaring platform; co-founding Open Source Bridge, an annual conference on FOSS contribution and maintenance; her opinions on labor and funding issues in FOSS communities; and a variety of creative projects.

Ethical Decisions The Atonement of J. Robert Oppenheimer

The Nazi party members at Nuremberg, J. Robert Oppenheimer at Los Alamos, and developers at exciting tech companies have something in common. The responsibility for what mark we leave on the world through our efforts or inventions rests on our own shoulders. We cannot push this burden to those who tell us what to do, and so we must be conscious about what it is that we're building and how it will be used. The repercussions of our actions come back to us if not legally, then weighing on our conscience.

Speaker icon

Caleb Thompson

Caleb is a dreamer, speaker, and computer whisperer. He organizes the Keep Ruby Weird conference, which of course you’ve heard of and are very impressed by. When he’s not painting miniatures or climbing cliffs to jump off into the water, he works for Heroku and codes in Ruby and Go. He walked barefoot from the wintry tundra of Alaska to the harsh deserts of Arizona. Okay, that’s not true, but he did live in those places. He currently hails from Austin, TX—the taco capital of the United States.

Ethical Decisions The Psychology of Fake News (And What Tech Can Do About It)

Fake news spread six times faster in social media than true stories. As technologists, our industry has built the tools that enable the spread of disinformation across social, the web, and beyond. But fake news is nothing new, it has been a part of each advancement in the technology that powers the spread of information, from the printing press to blogging. What makes fake news so appealing? Is it a tech problem or a human problem? In this talk, I will explain the psychology that makes fake news appealing to our brain, and what technology can learn about this psychology to build better tools.

Speaker icon

Cecy Correa

Software Engineer at Return Path. Former Girl Develop It Chapter Leader. Latinx passionate about bringing underrepresented voices into tech.

Ethical Decisions Ethical Data Collection for Regular Developers

The DC Abortion Fund collects extremely sensitive data about people seeking abortions. That's terrifying for the engineering team, who are responsible for keeping client data safe! We've made a lot of carefully measured ethical decisions about data intake and usage. In this talk we'll examine how we have done data modeling, collection, and scrubbing, and the ethical reasoning and tradeoffs we've made along the way.

Speaker icon

Colin Fleming

Colin is a community organizer (and now, a Rails developer) from southwest Michigan currently living in DC. He's a former board member of the DC Abortion Fund, hangs out at his local Code for America brigade, and loves cats and early Metallica.

Ethical Decisions Being Good: An Introduction to Robo- and Machine Ethics

Machines are all around us: recommending our TV shows, planning our car trips, and running our day-to-day lives via AI assistants like Siri and Alexa. We know humans should act ethically, but what does that mean when building computer systems? Are machines themselves—autonomous vehicles, neural networks that diagnose cancer, algorithms that identify trends in police data—capable of ethical behavior? In this talk, we'll examine the implications of artificial moral agents and their relationships with the humans who build them through the lens of multiple case studies.

Video Slides
Speaker icon

Eric Weinstein

Eric Weinstein holds degrees in philosophy and computer science and has recently been focusing on applied ethics in software engineering. He is the author of Ruby Wizardry (No Starch Press), an illustrated guide to the language for children, as well as CTO and founder of AUX, a startup focused on smart contract logic for auctions.

↑ Back to top
Incident Response What poker can teach us about post-mortems

Are your post-mortems reactive and unsatisfying?

The common post-mortem traces bad outcomes back to critical decisions so that we make different decisions in the future. But what if those decisions were sound? It tells us to stop making them!

In poker, as in software, variance is real and you can do everything correctly and still lose the hand.

In this talk, we'll talk about real post-mortems and problems with their conclusions. We'll rebalance our thinking to see when we might be learning the wrong lessons. We will learn about poker, taking risks, and a little about life.

Video Slides
Speaker icon

Cory Chamblin

Cory builds backend software at PagerDuty, but in his spare time he likes to play and think about games.

Incident Response Retrospectives for Humans

Seattle has two of the longest floating bridges in the world, and in 1990, one of them sank while it was being repurposed. This accident was a classic complex systems failure with a massive PR problem and great documentation. That combination is an excellent frame for talking about incident retrospectives- the good, the bad, the vaguely confusing and unsatisfying. Come for the interesting disaster story, stay to learn about the language of blame and how to ask warm, thoughtful engineering questions.

Speaker icon

Courtney Eckhardt

Courtney Eckhardt first got into retrospectives when she signed up for comp.risks as an undergrad (and since then, not as much has changed as we’d like to think). Her perspectives on engineering process improvement are strongly informed by the work of Kathy Sierra and Don Norman (among others).

Incident Response It's Down! Simulating Incidents in Production

Who loves getting paged at 3am? No one.

In responding to incidents -- either at 3am or the middle of the day -- we want to feel prepared and practiced in resolving production issues. In this talk, you'll learn how to practice incident response by simulating outages in production. We'll draw from learnings from our simulations at Stitch Fix, like technical implementation strategies, key metrics to watch, and writing runbooks. You'll walk away from this talk with the superhero ability help your team simulate incidents in production.

Be prepared for your next incident!

Speaker icon

Kelsey Pedersen

Kelsey is a software engineer on the Styling Engineering Team at Stitch Fix, working on software used by our Stitch Fix stylists. Her team runs gamedays to practice and prepare for production incidents. It is essential their software has high uptime because it's an essential part of clients getting styled and stylists getting paid. Outside of coding, she loves backpacking and traveling.

↑ Back to top
Inside Ruby Pointers for Eliminating Heaps of Memory

In this presentation, we'll cover techniques in Ruby 2.6 that reduce "dead space" memory overhead found in all Ruby programs today. First, we'll cover the compilation process of Ruby programs, instruction optimizations, as well as internal data structures used for running Ruby code. Next, we'll look at how to use this information to maintain liveness of Ruby objects in the code. Finally, we'll take all the information we covered so far to develop a technique for reducing dead space in the heap. Remember to mark your calendar because this presentation will be remembered for generations.

Speaker icon

Aaron Patterson

Keyboards, Cats, and Code at GitHub

Inside Ruby Trash Talk: A Garbage Collection Choose-Your-Own-Adventure

"Walking into work one day, you see a raccoon in an embroidered vest carefully picking through some dumpsters. Startled, the raccoon shouts, 'Ack! No one is supposed to notice me!' before running away. Dumbfounded, you chase after them only to discover a magical world you never knew was right under your office..."

This talk is a choose-your-own-adventure, where you decide what you want to learn about Ruby's garbage collector!

Get an easy introduction to how garbage collection works, the clever performance optimizations used by Ruby, and even what the future might look like.

Speaker icon

Colin Fulton

Proud that their only contribution to Ruby's core is a silly bit of sample code has to be labeled a "BAD EXAMPLE", Colin works as a frontend developer and web accessibility specialist for Duo Security. Before becoming a developer, Colin did design and technical work for theater, music and installation art projects.

Inside Ruby Let's subclass Hash - what's the worst that could happen?

Have you ever been tempted to subclass a core class like Hash or String? Or have you read blog posts about why you shouldn't do that, but been left confused as to the specifics? As a maintainer of Hashie, a gem that commits this exact sin, I'm here to tell you why you want to reach for other tools instead of the subclass.

In this talk, you'll hear stories from the trenches about what can go wrong when you subclass core classes. We'll dig into Ruby internals and you will leave with a few new tools for tracking down seemingly inexplicable performance issues and bugs in your applications.

Video Slides
Speaker icon

Michael Herold

Michael Herold is the Lead Application Engineer at Flywheel, a delightful WordPress hosting and development platform built for designers, freelancers, and agencies. He spends his time writing and reviewing pull requests and mentoring his team. Michael believes open source is one of humankind's greatest inventions, and he regularly contributes to open source projects and is a maintainer for Hashie. In his spare time, Michael gets out once in a while to visit the national parks with his wife.

↑ Back to top
Lead Rubyist The New Manager's Toolkit

Congratulations, you've been entrusted to lead a team! But wait... what does that mean? You didn't go to school for this. You may not have even been told what your job exactly is. Some call this new responsibility the "Stone of Triumph".

In this talk, we'll explain leading and managing (and how they're different), outline what success looks like, and show techniques to get there. You'll learn how to build the skills and tools to carry the "Stone of Triumph" with less pain, and set yourself up for a long and happy career leading creative and technical teams.

Speaker icon

Brandon Hays

Brandon left the world of marketing to find that creating software made him happy. Brandon lives in Austin, TX, where he leads teams and tries to help make the world of technology a more humane place.

Lead Rubyist Humans Aren't APIs And Your Request Is 400 Denied

Have you ever asked someone to do something, and they hear the exact opposite?

Why do miscommunications happen? Does knowing why matter? And more importantly, how do you achieve your original desired request?

If you want to learn more ways to influence those around you, this talk is for you! You’ll learn about different causes for failed communications, and different workarounds you can apply for different failure modes. Come to this talk to add another tool to your communications toolbox.

Video Slides
Speaker icon

Jennifer Tu

In her work life, Jennifer Tu writes code and listens very intently to people. She co-founded Cohere ( to continue to pursue these two interests. Outside of work, she studies martial arts. Jennifer spends her commutes after class reflecting on the parallels between teaching martial arts and communicating in the world of software.

Lead Rubyist No Title Required: How Leadership Can Come From Anywhere

Think you can't take on a leadership role because you're too junior? Because you're in a remote office? Because you don't have "manager" in your title?

The truth is that all of these blockers (and more) are artificial. How do I know this? Because over the past 6 months, I could answer yes to all three of the questions above. At the same time, I was able to co-lead the engineering effort on one of the most complex parts of our company's product. We'll explore how to bridge the gap between that title you wish you had versus the impact you can actually have.

Video Slides
Speaker icon

Jim Liu

Jim thought about being a doctor, a consultant, and going to business school before finally settling on the tech industry. He hasn't looked back and has worked for a decade for companies in Seattle and the Bay Area. Currently a senior engineer at Gusto, working on the payroll team.

Lead Rubyist Eiffel's Tower

When Gustave Eiffel built his namesake tower, it was nearly twice as tall as the tallest structure on Earth. His crews built it in an astounding 22 months, pioneering new construction techniques to deliver it in time for the opening of the 1889 Exposition Universelle. It was amazing then, and it’s just as captivating today.

We all say we want to do groundbreaking work, but what does it actually take to push an organization forward? The answer starts long before the work itself. Let’s see what we can learn from how Gustave Eiffel went about building his record-shattering tower.

Speaker icon

Nickolas Means

Nickolas Means loves nothing more than a story of engineering triumph (except maybe a story of engineering disaster). When he's not stuck in a Wikipedia loop reading about plane crashes, he spends his days as a Senior Engineering Manager at GitHub. He works remotely from Austin, TX, and spends most of his spare time hanging out with his wife and kids, going for a run, or trying to brew the perfect cup of coffee.

↑ Back to top
Make It Faster Practical guide to benchmarking your optimizations

Many people believe that ruby applications are inherently slow, yet oftentimes it is the lack of optimization and not the language that is at fault. But how do you even get started with this daunting task of performance optimization? For those that do not have a computer science background, understanding all the different ways of algorithm optimization can sound scary and overwhelming. Some may have a good handle on the theory behind things like the big O notation, but struggle to put it in practice. This talk will focus on a tangible and data driven way to measure and optimize code performance.

Speaker icon

Anna Gluszak

After receiving a degree in math, Anna has started out her career at a fin-tech startup, Avant, where she discovered and developed her passion for coding. She is a self-taught engineer that always strives to challenge herself. Few things she could talk about forever include programming, video games, and cat facts.

Make It Faster Optimizations in Multiple Dimensions

Often when we think about performance, we see it as "if it takes 20 milliseconds to do X, doing X 10 times will take 200ms". It turns out, there's a lot more to it than that. In this talk, you'll learn about various aspects of performance, circumstances that could make scaling a particular code path non-linear, and even how optimizations can make your app slower.

Speaker icon

Jamie Gaskins

Jamie is a software architect at Fractured Atlas, a non-profit organization that helps artists promote their art and turn it into a business. In his hometown of Baltimore, MD, Jamie co-organizes the local Ruby meetup and mentors new developers beginning their journey.

Make It Faster Cache is King: Get the Most Bang for Your Buck From Ruby

Sometimes your fastest queries can cause the most problems. I will take you beyond the slow query optimization and instead zero in on the performance impacts surrounding the quantity of your datastore hits. Using real world examples dealing with datastores such as Elasticsearch, MySQL, and Redis, I will demonstrate how many fast queries can wreak just as much havoc as a few big slow ones. With each example I will make use of the simple tools available in Ruby to decrease and eliminate the need for these fast and seemingly innocuous datastore hits.

Video Slides
Speaker icon

Molly Struve

I am a MIT grad with an Aerospace Engineering degree which is most likely why I gravitate towards optimizing performance issues as a Software Engineer. I joined Kenna in 2015 where I have had the opportunities to work on some of the most challenging aspects of our code base. This includes scaling Elasticsearch to 3 billion docs, sharding MySQL databases, and taming Resque's usage of Redis. All of these had huge performance gains, but in the end, I found equally significant gains by using Ruby.

↑ Back to top
RubyKaigi The New Design of Ruby's Documentation

Unlike many other languages, Ruby doesn't have great design for documentation. Perl has "perldoc" feature and users easily access documents of modules by "perldoc" command. Python has "docstring" feature and users can access it on REPL. Those are each language's design of importance. The features are not just tool, it contains toolchains and eco-systems. Users of these languages benefit from good documentation design, so library authors write good documentation for them.

I'll talk about new Ruby 3's standard documentation design. It pretty improves your development experience.

Speaker icon


I'm a programmer. I'm the current maintainer of RDoc. I'm working at Space Pirates, LLC.

RubyKaigi Hijacking Ruby Syntax in Ruby

This talk shows how to introduce new syntax-ish stuffs using meta programming techniques and some more Ruby features not known well by many Rubyists. Have fun with magical code!

  • Show Ruby features to hack Ruby syntax (including Binding, TracePoint, Refinements, etc)
  • Describe stuffs introduced by these techniques
  • method modifiers (final, abstract, override)
  • Table-like syntax for testing DSL
  • Safe resource allocation/collection (with, defer)
Speaker icon

Tomohiro Hashidate

CTO of Repro inc. I'm working about data engineering. And I'm maintainer of fluent-plugin-bigquery. I developed some OSS. rukawa (simple workflow engine by ruby), yaml_vault, and many tiny libraries.

Speaker icon

Satoshi "Moris" Tagomori

I'm an OSS developer, working at Treasure Data, Inc., committer of Fluentd, maintainer of MessagePack-Ruby, founder of Norikra, Woothee, and many other software/libraries. I'm working about data management/processing, especially for distributed systems, using Ruby, MRuby and Java.

RubyKaigi Building web-based board games only with Ruby

This talk explains how to build web-based board games without JavaScript but only with Ruby. Web programmers are forced to write front-end code using JavaScript. And interaction with the client-side and server-side grows increasingly complex. Board game which has rich UI and communicate in real-time is one of the applications which needs such requirements.

Opal is a compiler converts from Ruby to JavaScript. I created some gems for Opal as follow as.

  • Virtual DOM
  • Isomorphic web programming framework
  • dRuby implementation on browser

I show you a web- board game demonstration using these gems.

Speaker icon

Yoh Osaki

Software engineer at Retrieva, Inc. Author of some rubygems for Opal, Virtual DOM library, Isomorphic framework, dRuby implementation for browser... Member of Asakusa.rb, Chidoriashi.rb

↑ Back to top
Scaling Teams Sweat the Small Stuff

There is nothing quite like the excitement of leading a team of engineers while your company is in the middle of a growth spurt. Before you know it you start to notice that the work habits that used to work great just don’t seem to be that effective anymore.

In much the way that cooking for two is quite different from cooking for two hundred, building your systems for scale requires a different approach to your work.

In this talk we will explore antipatterns that start to show up during growth and some techniques that you can use to address them.

Video Slides
Speaker icon

Aaron Harpole

Aaron came to Los Angeles in 2010 as a starry eyed technology enthusiast from the heartland, eager to work at one of these fancy internet startups. Since then, he has worked at multiple such startups, two of which have had successful exits, and has learned a thing or two over the years about building great teams. A long time Ruby developer, he enjoys dabbling in functional programming in Elixir and JavaScript. His collection of mechanical keyboards continues to grow steadily.

Scaling Teams The Dangers of Tribal Knowledge

Are you constantly tapped on the shoulder for answers? Tired of being the Google for your team? Or perhaps you’re the new kid, having to ask a dozen different people to find answers to all your questions? These are the consequences of tribal knowledge. In this talk we’ll discuss how to have a team that self-serves, finds answers on their own, without forcing them to wade through a colossal employee handbook.

Speaker icon

Annie Sexton

Rubyist, language nerd, digital nomad, ESL instructor, writer and illustrator: Annie is a multi-passionate developer with a five year full-stack background and a history of never staying in the same place for long. She currently works at Heroku as a support engineer.

Scaling Teams Designing an engineering team: Making room for everyone

How many different roles are there on engineering teams? Officially, there's probably just a manager and maybe a tech lead. Unofficially, you have technical specialists, company veterans, people focused on tools, and those who think deeply about the product.

In this talk we'll steal the best ideas from operating rooms, wartime deployments, and courtroom litigation. We'll see how it's possible to train, reward, and empower your teammates by respecting their uniqueness while also making room for very junior developers to join fast-moving teams.

Speaker icon

Jack Danger

Jack Danger is a linguist, an engineering leader, and a prolific open source contributor. He has commits in Ruby core, in Rails core, and he's managed multiple teams that own and operate massive Rails applications. Gusto is his 7th startup.

Scaling Teams Empowering Early-Career Developers

How can teams invest in and grow their less experienced developers into team-leading senior devs? I believe the first step is empowering them. On my team, we’ve created a process for each team member to lead and own one of our core features. Our early-career developers are learning client management and team leadership skills that they wouldn’t usually get to practice until they stepped into a senior role. In this talk, I’ll share our process and what we’ve learned so you can give your early-career developers valuable experience they need to become successful, senior team members.

Speaker icon

Mercedes Bernard

Mercedes Bernard is a senior software engineer with DevMynd in Chicago. She has worked with clients in a wide range of industries including healthcare, performing arts, beverage distribution, pet food, hospitality, luxury consumer goods, and government. In her projects, she values technical know-how, non-technical language, and empathy so her clients and team members feel empowered, comfortable, and heard. She earned her degree in computer science from DePaul University.

↑ Back to top
Taming Services Yes, You Should Provide a Client Library For Your API

Congratulations! You’ve launched a RESTful JSON-based API, and now anyone can call your service by making HTTP requests. But is that enough? While HTTP-REST by itself can enable access to your service, an API client library can provide significant benefits in safety, security, readability, and ease of use. In this session, you’ll learn API client design patterns and best practices honed from releasing hundreds of APIs at Google, and you’ll discover tools that can take the tedium out of building, testing, and documenting your API clients for Ruby, and across other languages.

Speaker icon

Daniel Azuma

Daniel Azuma is a senior engineer at Google, where he leads the Ruby and Elixir teams, building libraries and tools for users of his favorite languages on Google Cloud Platform. He lives with his wife in the Seattle area, and loves playing the piano, skiing, and having deep conversations with cats.

Taming Services Building for Gracious Failure

Everything fails at some level, in some way, some of the time. How we deal with those failures can ruin our day, or help us learn and grow. Together we will explore some of the patterns for dealing with failure in service-based systems graciously. Whether you're integrating with an external system, building microservices, or designing serverless applications, you will gain insight on how to fail gracefully in both common, and uncommon circumstances.

Video Slides
Speaker icon

James Thompson

James is committed to helping engineering teams become more deliberate in how they build software by developing strong learning cultures, principled engineering practices, and holistic architectural thinking. He has been developing software professionally since 2003 and currently works as a Principal Software Engineer for Nav.

Taming Services Uncoupling Systems

We tackle unique business challenges but are solving similar problems, and all too rarely will we talk through our designs and mistakes. Integrations, external APIs, data-stores - these might not be pure code but we can learn a lot from good object design when scaling our systems.

In this talk we’ll discuss how parts of a distributed systems rely on each other, how data flow can couple and propagate failure, and how common emergent patterns can encapsulate services to be resilient.

This is a journey of close calls, errors, and design smells researched into how a service gets simplified.

Speaker icon

Jeremy Hanna

Lifelong learner and student. Passionate about computers and systems and computer systems. I read too much and dislike heights.

The past 3 years I've worked at Kenna Security in Chicago, scaling and building out our back-end data pipeline platform. I'm currently heading up the effort to split out services and migrate to containers.

↑ Back to top