Machine Learning

Syntax Isn't Everything: NLP for Rubyists

Natural Language Processing is an interesting field of computing. The way humans use language is nuanced and deeply context sensitive. For example, the word work can be both a noun and a verb. This talk will give an introduction to the field of NLP using Ruby. There will be demonstrations of how computers fail and succeed at human language. You'll leave the presentation with an understanding of both the challenges and the possibilities of NLP and some tools for getting started with it.

Aja Hammerly

Aja lives in Seattle where she is a Developer Advocate at Google and a member of the Seattle Ruby Brigade. Her favorite languages are Ruby and Prolog. She also loves working with large piles of data. In her free time she enjoys skiing, cooking, knitting, and long coding sessions on the beach.

A Survey of Surprisingly Difficult Things

Many seemingly simple "real-world" things end up being much more complicated than anticipated, especially if it's a developer's first time dealing with that particular thing. Classic examples include money and currency, time, addresses, human names, and so on. We will survey a number of these common areas and the state of best practices, or lack thereof, for handling them in Rails.

Alex Boster

Software developer since 1997, doing Rails since 2006. Experience includes work at for a number of startups, including a Pivotal Labs client. Currently at Appfolio, a large Rails shop that is sponsoring Ruby 3x3. Certified craft beer judge.

I've organized & taught RailsBridge workshops, given talks for my local Ruby group, and been heavily involved in on boarding, training, and mentoring for new interns and employees, including for example "Rails 101" and "iCalendar standard" classes.

Open Source Deep Dive

Perusing the Rails Source Code - A Beginners Guide

Open source projects like Rails are intimidating, especially as a beginner. It’s hard to look at the code and know what it does. But Ruby on Rails is more than just code. Written into it are years of research, discussions, and motivations. Also written into it are bugs, typos, and all of the pieces that make the code human. This talk outlines steps you can take to explore the inner workings of Rails and gain context on its design. Understanding how Rails works will allow you to write better Rails applications and better Ruby code. You will leave with many resources and tips on perusing Rails.

Alex Kitchens

I am a full time Rails developer, part time college student, and a full time dad with too much time on my hands. Professionally, I maintain Rails applications used by colleges, and I bug my coworkers about things I learn in Ruby, Linux, and Vim. I'm also a big fan of coffee, and I’ve happily used it as inspiration for several(most(pretty much all)) of my personal programming projects.

Beyond validates_presence_of: ensuring eventual consistency

You've added background jobs. You have calls to external services that perform actions asynchronously. Your data is no longer always in one perfect state-- it's in one of tens or hundreds of acceptable states.

How can you confidently ensure that your data is valid without validations?

In this talk, I’ll introduce some data consistency issues you may see in your app when you begin introducing background jobs and external services. You’ll learn some patterns for handling failure so your data never gets out of sync and we’ll talk about strategies to detect when something is wrong.

Amy Unger

The granddaughter of a former MIT computer (yup, that was a job title), Amy was clearly supposed to be a programmer, but just did not get the message. Her wanderings have taken her through the land of libraries and archives and into software consulting. Now a software engineer at Heroku, she is deeply grateful for every scarce day she does not use vim commands in Google Docs.


​Recurring Background Jobs with Sidekiq-scheduler

This is a sponsored talk by Moove-it.

When background job processing needs arise, Sidekiq is the de facto choice. It's a great tool which has been around for years, but it doesn't provide recurring job processing out of the box. sidekiq-scheduler fills that gap, it's a Sidekiq extension to run background jobs in a recurring manner.

In this talk, we'll cover how sidekiq-scheduler does its job, different use cases, challenges when running on distributed environments, its future, how we distribute capacity over open source initiatives, and as a bonus, how to write your own Sidekiq extensions.

Andreas Fast

Ruby developer since 2011, I'm passionate about code that works, is performant and clear. I like understanding what the code is doing and how to improve it. I like understanding things and sharing with others about lessons learned, as well as learn from everyone else and their experiences. In my free time, I like to read, play soccer and watch football.

Gianfranco Zas

Everybody calls me Gian. I am a developer at moove-it, working with Ruby for 7 years and as a developer for 12 years. I enjoy learning new things even if they are not related to programming.


Open Sourcing: Real Talk

This is a sponsored talk by Hired.

Hired open-sources some useful abstractions from our Majestic Monolith® and we've learned a lot. Some tough lessons, and some cool knowledge. We'll cover: When & where should you pull something out of the code? Does it really help? What things are important to think about? What if it never takes off? We'll also look at some design patterns from our open-source work.

Andrew Evans

Andrew is a Software Engineer and Thing-Getter-Doner™ at Hired in San Francisco. Previously he's been product engineer, cofounder + CTO of a 500 Startups company, and a nomadic consultant. Generalist & dabbler, he's been in Ruby & Rails for ten years. Loves cats, plays video games.

Code Organization
View Slides

Built to last: A domain-driven approach to beautiful systems

Help! Despite following refactoring patterns by the book, your aging codebase is messier than ever. If only you had a key architectural insight to cut through the noise.

Today, we'll move beyond prescriptive recipes and learn how to run a Context Mapping exercise. This strategic design tool helps you discover domain-specific system boundaries, leading to highly-cohesive and loosely-coupled outcomes. With code samples from real production code, we'll look at a domain-oriented approach to organizing code in a Rails codebase, applying incremental refactoring steps to build stable, lasting systems!

Andrew Hao

Andrew is a principal software engineer with Carbon Five, an agile product development agency. Prior to that, he was at Blurb, where he thought a lot about large Rails codebases and how to decompose them. He lives in Oakland and loves trail running and any adventures he can have in the mountains.

Decouple your models with form objects

Forms are a crucial part of every app and Rails has good defaults for building them—unless you need something complicated. Maybe you want a multi-step wizard? Or maybe you'd like to pluck attributes from any model? Validation becomes a pain point. So you introduce a state machine, or nest your models, or do some other calisthenic to get everything working. Thankfully there's a better way! This talk takes a complicated wizard and converts it into a few simple form objects—it's a deep dive on decoupling models and how you can leverage Trailblazer's Reform gem to make it even easier.

Andrew Markle

Andrew Markle was a filmmaker, turned dog-walker, turned engineer. He loves Ruby and is passionate about making small things with clear responsibilities.

What Comes After SOLID? Seeking Holistic Software Quality

You care deeply about code quality and constantly strive to learn more. You devour books and blogs, watch conference talks, and practice code katas.

That's excellent! But immaculately factored code and clean architecture alone won't guarantee quality software.

As a developer, your job isn't to write Good Code. It's to deliver value for people. In that light, we'll examine the effects of a host of popular coding practices. What do they accomplish? Where do they fall short?

We'll set meaningful goals for well-rounded, high-quality software that solves important problems for real people.

Ariel Caplan

Among many personality traits, Ariel is an obsessive blog and book reader, podcast listener, and conference talk watcher. These unfortunate habits have led Ariel to question a great many things about software development as an art, craft, and vocation.

Ariel has also worked as a software engineer on several teams at Vitals, learning from the perspectives of an array of mentors, and trying to synthesize that learning into a Grand Unified Theory of Software.

React Native & Rails, a single codebase for Web & Mobile

Rails made building CRUD apps efficient and fun. React Native, for the first time, does this for mobile Apps. Learn how to create a single React codebase for Android, iOS and Mobile Web, backed by a common Rails API.

Ben Dixon

Ben is the co-founder and CTO of venture backed on-demand staffing platform Catapult. Along with the Catapult development team he's spent the last 10 months engineering a cross platform web + native mobile stack based around React. He's also the author of Reliably Deploying Rails Applications, an avid climber, travel addict and (very amateur) photographer.

Distributed Teams

Distributed & Local: Getting the Best of Both Worlds

Our company is traditional in many ways, one of which being the need to come into the office each day. Our team of software developers bucks that trend, spreading across 6 states and 4 countries. Dev teams consider themselves "Remote First", while DevOps and Application Support are "Local First." Each has adopted tools, habits, and practices to maximize their configuration. Each style has learned valuable lessons from the other. This presentation is about how our teams have evolved: the tools, the compromises, the wins and losses, and how we successfully blend Distributed and Concentrated teams.

Ben Klang

Ben Klang has always been fascinated with technology. Disassembling clock radios, breaking and fixing the family computer, eventually embarking on a career in software development. More recently, he has taken leadership roles on technology teams, and as a result had to start over, learning all new skills. Today he is proud to work for a company named Fortune #1 Workplace for Camaraderie, but mostly is happy thanks to the incredible team of humans he's privileged to work with each day.

Data Integrity in Living Systems

Ever had a production bug that you fixed by changing production data? Ever felt like a bad developer for it? Don't. Bad data has countless causes: Weird user input. Race conditions under load. Heck, even changing business needs. We can't fully prevent data corruption, so what matters is how we recover. In this talk, you'll learn how to prevent and fix bad data at every level of your system. You'll learn UX techniques for incremental, mistake-reducing input. You'll learn how to future-proof validations. And you'll learn auditing techniques to catch bad data -- before your users do.

Betsy Haibel

Betsy is a DC-based web developer. She writes fiction and nonfiction in English, Ruby, and Javascript, and is a co-organizer of Learn Ruby in DC.

The Arcane Art of Error Handling

With complexity comes errors, and unexpected errors lead to unexpected unhappiness. Join us and learn how to add contextual data to errors, design error hierarchies, take charge of control flow, create re-usable error handlers, and integrate with error reporting solutions. We'll talk about recoverable versus irrecoverable errors and discuss how and how not to use exceptions. From internationalization to background jobs, we'll cover the gamut. Regardless of your Rail proficiency, you'll learn why expecting the unexpected makes for happier developers, happier businesses and happier users.

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 Rails and relational databases as Principal Engineer at Procore in Santa Barbara, CA

High Volume

High Performance Political Revolutions

Bernie Sanders popularized crowdfunding in politics by raising $220 million in small donations.

An example of the challenges with handling a high volume of donations is the 2016 New Hampshire primary night, when Sanders asked a national TV audience to donate $27. Traffic peaked at 300K requests/min and 42 credit card transactions/sec.

ActBlue is the company behind the service used not only by Sanders, but also 16,600 other political organizations and charities for the past 12 years.

This presentation is about the lessons we learned building a high performance fundraising platform in Rails.

Braulio Carreno

Braulio works as a senior software engineer in ActBlue. He and his team have been scaling their fundraising service (a Rails app) for several years. Their current record load from last February is 300 K requests/sec.

He came to the US in 1998 to help an e-commerce startup grow 88-fold and become the largest online technical bookstore during the dot com boom.

He has been working with Rails for 7 years and as a developer for 20 years.

The Secret Life of SQL: How to optimize database performance

There are a lot of database index and query best practices that sometimes aren't best practices at all. Need all users created this year? No problem! Slap an index over created_at! What about this year's active OR pending users, sorted by username? Are we still covered index-wise? Is the query as fast with 20 million users? Common rules of thumb for indexing and query crafting aren’t black and white. We'll discuss how to track down these exceptional cases and walk through some real examples. You'll leave so well equipped to improve performance, you won't be able to optimize fast enough!

Bryana Knight

Bryana Knight is an engineer on the platform-data team at GitHub. Previously at WellMatch, Bryana has lots of experience writing Ruby, SQL, Ember and pair programming. She has lived in five different cities in the past eight years and enjoys traveling for work and for fun.

Sorting Rubyists

Let's take a peek under the hood of the magical "sort" method, learning algorithms... by sorting audience members wearing numbers! Intimidated by the word "algorithm? Not sure what performance means? Confused by "Big O Notation"? Haven't even heard of best-, worst-, and average-case time complexities? No problem: we'll learn together! You can expect to come out knowing new things and with Benny Hill stuck in your head.

Caleb Thompson

I entered the world: translucent skin, eight pounds ten ounces, and a full head of hair. Then there was Iceland and the other eight places I lived before Austin. First international trip as an adult. My future best friend saw me the first time walking out of an elevator; I had theme music in his head. Made those fantastic chicken thighs. That’s just the beginning.

Climber, developer, painter, gamer: an eccentric eclectic. Caleb is currently coding mostly in Ruby and Go.

Unconventional Rails
View Slides

Implementing the Web Speech API for Voice Data Entry

We live in a world where you can schedule a meeting by talking to your watch or turn off your lights by asking Alexa as if she were your roommate. But would voice dictation work for something more intensive, like a web app used for hours of data entry?

In this talk, I’ll show you how to implement the Web Speech API in a few simple steps. I’ll also walk through a case study of using the API in a production Rails app. You’ll leave with an understanding of how to implement voice dictation on the web as well as criteria to evaluate if voice is a viable solution to a given problem.

Cameron Jacoby

Cameron is a Software Engineer at Stitch Fix, where she builds internal tools in Ruby on Rails. She found coding by way of Merchandising, while working at Stitch Fix on the Jewelry & Accessories team in 2014. After attending General Assembly’s web development immersive program, Cameron is now working on the tools that once made her job on the Merchandising team easier. In her free time, she loves traveling, teaching others to code, and daydreaming about becoming a dog owner.

Panel: Better Hiring Practices for Fun and Profit

The average American worker will have 10 jobs before the age of 40. There's a great deal of opportunity and mobility in our industry, and yet, our hiring process is anything but pleasant or streamlined. The hiring process is time consuming for both candidates and employers, but we can do better! Let's explore the ways we can improve the hiring process by writing better job descriptions, utilizing systems that free us from unconscious biases, focusing beyond culture fit, and using better (more fun) technical interviewing methods.

Cecy Correa

Cecy is a developer, designer, educator, and karaoke aficionado living in Austin, TX, where she teaches for Girl Develop It, and helps organize the Austin on Rails meetup. She is passionate about bringing underrepresented voices into the tech industry.

Heather Corallo

Co-Founder / COO, CTO2

Justin Herrick

Founder, Lunar Collective

Pamela Vickers

Software Engineering Manager, MailChimp

Rails to Phoenix: How Elixir can level-you-up in Rails

Elixir has rapidly developed into a mature language with an ever-growing library of packages that excels at running web apps. And because both Elixir and Phoenix were developed by Ruby / Rails programmers, the ease with which you can learn Elixir as a Ruby developer, is much greater than many other languages. With numerous code examples, this talk will discuss how learning a functional approach to handling web requests can improve what we do every day with Rails. This talk is aimed at people who have some familiarity with Rails but no experience with Elixir is necessary.

Christian Koch

As a senior developer at NCSA, a primarily Rails shop in Chicago, IL, Christian works on both new and legacy Rails apps, and has brought a smattering of Elixir/Phoenix into the shop. Professionally his interests include operational security including implementation of cryptographic libraries, Ruby, Rails, Elixir, Phoenix, Docker, and Elastic Search. Christian tries to gain experience in every frame of the dev stack, from servers and dev-ops all the way through to the javascript in the browser.


Deep Dive Into Docker Containers for Rails Developers

Containers have gained popularity the past few years but they have been around much longer than that. In this talk, we'll dive into the internals of a container. If you have used or heard about Docker containers but are unsure how they work, this talk is for you.

You’ll also learn how to run Rails in production-ready container environments like Kubernetes.

Christopher Rigor

Christopher is the Support Manager for Asia Pacific at Engine Yard. He is one of the "far more experienced and intelligent human beings who can actually support and monitor your app in production" according to Jacob Burkhart. He is also the organizer of RubyConf Philippines, which has run annually since 2014.

Breaking Bad - What Happens When You Defy Conventions?

With Rails being over ten years old now, we know that the Rails way works well. It's battle tested and successful. But not all problems we try to solve fit into its idea on how our application should be structured.

Come along to find out what happens when you don't want to have an app directory anymore. We will see what is needed in order to fight parts of the Rails convention and if it's worth it.

Christoph Gockel

Christoph is a Software Craftsman at 8th Light with a passion for high quality software and helping people build better products. Outside of programming Christoph likes to watch classic 80's movies.

Rails 5.1: awesome features and breaking changes

Each minor release of Rails brings shiny new features and mild headaches for developers required to upgrade their applications and gems.

Rails 5.1 will support Yarn and modern Javascript transpilers, remove jQuery from the default stack, integrate system testing and a concurrent test runner, introduce a new helper to create forms, provide encrypted secrets and more.

In this talk, I will cover the improvements brought by Rails 5.1, explain the Core team’s motivations behind each feature, and illustrate the upgrade process to smoothly transition gems and apps from Rails 5.0 to Rails 5.1.

Claudio B.

Claudio is a member of the Rails Issues team, a frequent contributor to the Rails source code (over 200 commits), the organizer of the L.A. Ruby/Rails meetup and one of the authors of the weekly newsletter "This week in Rails".

Leading at all Levels
View Slides

It's dangerous to go alone: Building teams like an organizer

Leading an open source or community project means dealing with people challenges in addition to technical challenges -- how do we take a scattering of interested people and build a team with them? Turns out, we can adapt a bunch of practices we already use! Using a collaboration between a nonprofit and a civic group as a case study, we'll talk about ways to apply best practices from community organizers to our work. In particular, we'll talk about similarities between contemporary organizing and agile models, ways to build relationships with other team members, and making our work more sustainable.

Colin Fleming

Colin is a community organizer (and now, a Rails and SQL developer) from southwest Michigan currently living in DC. For the past year, he's led an open source overhaul of the DC Abortion Fund's intake system. During the days he works for BlueLabs, an analytics company working on health care and progressive causes. He serves on the board of the DC Abortion Fund, hangs out at his local Code for America brigade, and loves cats.

What’s my app *really* doing in production?

When your Rails app begins serving public traffic, your users will make it behave in mysterious ways and find code paths you never knew existed. Understanding, measuring, and troubleshooting its behavior in production is a tough but crucial part of running a successful Rails app. In this talk, you’ll learn how to instrument, debug, and profile your app, using the capabilities of the Rails framework and the Ruby VM. You'll also study techniques for safely instrumenting a live running system, keeping latency to a minimum and avoiding side effects.

Daniel Azuma

Daniel Azuma founded and currently leads the Ruby-Cloud engineering team at Google, providing libraries and support for Ruby developers using Google Cloud Platform. He has been a Ruby developer for ten years, and is also known as a pioneer in geospatial support for Ruby. He lives with his wife in the Seattle area, and loves playing the piano, skiing, and meowing.

Unconventional Rails

Outside the (Web) Box: Using Ruby for Other Protocols

Ruby on Rails is a widely used web framework, using HTTP to serve users web pages and store data to databases. But what about serving different types of clients? Is it possible to integrate Rails with other protocol types to talk to other machines? Is it efficient? How would it work? I'm going to share my team's approach integrating a Ruby on Rails application with automation and warehouse hardware, such as barcode scanners and Zebra printers.

Danielle Adams

Danielle is a full-stack software engineer working at Blue Apron in New York City on their warehouse software. Her expertise stretches between front-end heavy web applications, mostly with Ember.js, and a variety of back-ends, built in Ruby. She has been coding since age 12. In her free time, she enjoys live music, food, teaching others to code, and hanging out with her cat.


Cultivating a Culture of Continuous Learning

This is a sponsored talk by Tuft & Needle.

Tuft & Needle is a bootstrapped, Phoenix-based company that pioneered the disruption of a the mattress industry using a software startup’s mindset when it was founded in 2012 and has grown to over $100 million in annual revenue. A commitment to skill acquisition has led to a happier and more productive team, and is a core to the company’s success. In this session, learn how to cultivate a culture of continuous learning and skill acquisition through apprenticeships and group learning sessions.

Dave Ott

Dave Ott and Dennis Eusebio work at Tuft & Needle, a bootstrapped, Phoenix-based company that pioneered the disruption of the mattress industry. Dave leads the software engineering team, utilizing his 10 years of Rails experience on the custom build and continuous iteration of the T&N’s software.

Dennis Eusebio

Dennis leads design, supporting creative direction while maintaining and developing branding and UX. The two Jacksonville-based team members met while at Hashrocket with T&N co-founder JT Marino.

Unconventional Rails

Whose turn is it anyway? Augmented reality board games.

Board games are great, but who has time to keep track of what's going on when you just want to have fun? In the spirit of over-engineering we'll look at PitchCar -- probably one of the simplest games in the world -- and see how far we can go with web tech, image processing, and a bunch of math. Expect to see plenty of code, some surprising problems and solutions, and of course: A live demo.

Dave Tapley

Dave loves to play games, he also loves engineering solutions to problems which may or may not actually exist. He's a graduate of computer science and robotics who has been programming professionally for a decade.

Distributed Teams

The Effective Remote Developer

Being on a distributed team, working from your home or coffee shop isn't easy, but it can be incredibly rewarding. Making it work requires constant attention, as well as support from your team and organization. It's more than just setting up Slack and buying a webcam.

We'll learn what you can do to be your best self as a remote team member, as well as what you need from your environment, team, and company. It's not about technical stuff—it's the human stuff. We'll learn how can you be present and effective when you aren't physically there.

David Copeland

David Copeland is a programmer and author. He's the author of “Rails, Angular, Postgres, and Bootstrap”, "The Senior Software Engineer" and "Build Awesome Command-Line Applications in Ruby". He has over 18 years of professional development experience from managing high-performance, high-traffic systems at LivingSocial or building the engineering team at Opower to working consulting gigs large and small. Currently, he's Director of Engineering at fashion start-up Stitch Fix.

Tricks and treats for new developers

Are you ready to begin building applications with Ruby on Rails? It's very easy to follow a tutorial and learn how to build a blog in 15 minutes, but there's a lot more to it in real life when you try to code a big web app.

During this talk I will give you a bunch of tips and tricks for Rails development that almost everyone follows but rarely anyone talks about.

If you are about to join this fantastic community, this talk is for you.

David Padilla

I have been writing software for almost 16 years now. My current weapon of choice is Ruby, Rails and everything related to it.

I run, an amazing Software Development Team based in Colima, Mexico.

I've sent a fair share of Ruby on Rails websites to production and have helped keeping them operational even when traffic really picks up.

I enjoy sharing the word by organizing local community events and speaking at conferences all around the world.


​Rails APIs: The Next Generation

This is a sponsored talk by Procore.

Building a consistent API for a large and long-running monolithic API on a tool-segmented engineering team can sometimes feel like herding cats. REST, serializers, and Swagger: Oh my! Learn what worked (and didn’t!) as we go behind the scenes building Procore’s first open API.

Derek Carter

Derek Carter is a Lead Engineer for the API Team at Procore. In the past he’s worked for startups, been a consultant to Fortune 50+ companies, and founded and sold his own Silicon Valley startup. He has been developing software for the web for 20 years, and has been using Rails for 10 years. He lives in Southern California with his wife, where they answer to two dogs, a cat, and a horse.

In Relentless Pursuit of REST

"That's not very RESTful." As a Rails developer you've probably heard or even spoken that proclamation before, but what does it really mean? What's so great about being RESTful anyway?

RESTful architecture can narrow the responsibilities of your Rails controllers and make follow-on refactorings more natural. In this talk, you'll learn to refactor code to follow RESTful principles and to identify the positive impact those changes have throughout your application stack.

Derek Prior

Derek's been writing software for the web for nearly 20 years. In those years he's grown less dogmatic about specific technology and more passionate about the processes that build successful teams and products. You can hear his thoughts on interesting technology problems, exciting new languages and libraries, and industry trends on The Bike Shed.

Developer Happiness
View Slides

To Code Is Human

Programming is a deeply mental art. As programmers, we invest large amounts of time in mastering new languages, new techniques, and new tools. But all too often, we neglect our understanding of the most important tool in the developer's toolbox: the programmer's brain itself.

In this talk, we will combine the art of programming with the science of cognitive psychology, and emerge with a deeper understanding of how to leverage the limits of the human mind to sustainably craft software that is less buggy, easier to understand, and more adaptive in the face of change.

Don Werve

Originally designed by Apple in California as a laptop-durability testing device, Don has spent the past seven years working around the world as a software engineer and back-pocket CTO, helping companies solve tough team management and scaling issues.

Don lives in Tokyo, and spends his spare time shoehorning Western cooking into a kitchen the size of a postage stamp, hiking through the stunning beauty of the Japanese mountains, and training to survive the impending zombie apocalypse.

Open Source Deep Dive

Building Rails ActionDispatch:: SystemTestCase Framework

At the 2014 RailsConf DHH declared system testing would be added to Rails. Three years later, Rails 5.1 makes good on that promise by introducing a new testing framework: ActionDispatch::SystemTestCase. The feature brings system testing to Rails with zero application configuration by adding Capybara integration. After a demonstration of the new framework, we'll walk through what's uniquely involved with building OSS features & how the architecture follows the Rails Doctrine. We'll take a rare look at what it takes to build a major feature for Rails, including goals, design decisions, & roadblocks.

Eileen M. Uchitelle

Eileen M. Uchitelle is an avid contributor to open source, focusing most of her time on the Rails framework. She works on performance and open source software on GitHub's Platform Systems team and is a member of the Rails Core team. Eileen spent the last few months building the new ActionSystemTest gem for adding Capybara integration to Ruby on Rails.


​Keeping Code Style Sanity in a 10-year-old Codebase

This is a sponsored talk by Shopify.

Conversations around code consistency seem to spark either cheers or jeers from developers. In this talk, I'll explore the good, bad, and the ugly of code style consistency as illustrated by the (sometimes drama-filled) history of Shopify's 10-year-old codebase. Highlighting strategies to help you evaluate when to push for better code consistency; you will hear about our techniques, tools and guides to enrich developer experience without compromising productivity and how to ultimately make code consistency important across the organization.

Gabi Stefanini

Gabi is a software developer at Shopify who has worked on the core checkout system of the platform, bringing SSL encryption to thousands of merchants and, more recently, helped in the upgrade of Shopify’s codebase to Rails 5. Currently, she works on shipping new internal tools to increase every team’s productivity. Gabi aims to demystify coding to beginners via mentoring and teaching programming as well as encouraging others to contribute to open source projects.


​Introducing Helix: High-Performance Ruby Made Easy

This is a sponsored talk by Skylight.

We got a good productivity boost by writing the original Skylight agent in Ruby, but over time, we couldn't implement all the desired features with its overhead. Ruby is fast enough... until it isn't.

Introducing Helix — an open-source toolkit for writing native Ruby extensions in Rust, extracted from our Featherweight Agent's DNA. Fast, reliable, productive — pick three. Come join us to find out how you can leverage this power in your Ruby apps and even help make Rails faster!

(This is not a re-run of Godfrey's talk from last year.)

Godfrey Chan

Godfrey Chan is a member of the Ember.js core team and a Ruby on Rails core team alumni. He currently works at Tilde as an in-house Canadian. In his previous life, he was also an award-winning WordPress™ plugin author.

Yehuda Katz

Yehuda Katz is one of the creators of Ember.js, a member of the Rust Core Team, and a retired Ruby on Rails and jQuery Core Team member. His 9-to-5 home is at the startup he founded, Tilde Inc.. There he works on Skylight, the smart profiler for Rails, and does Ember.js consulting. He's best known for his open source work, which also includes having created projects like Thor, Handlebars and Bundler. He travels the world doing open source evangelism and web standards work.

Why Software Engineers Disagree About Everything

Why are there are so many disagreements in software? Why don’t we all converge on the same beliefs or technologies? It might sound obvious that people shouldn't agree, but I want to convince you it’s weird that we don't. This talk will be a philosophical exploration of how knowledge converges within subcultures, as I explore this question through the worlds of software, online fraud, and poker.

Haseeb Qureshi

Haseeb is a software engineer at Airbnb and ardent Rubyist. Before Airbnb, he was a lead instructor at App Academy, a top Rails bootcamp. He blogs actively on his website,

Before moving to California to break into the tech industry, Haseeb was a professional poker player and author. He spends way too much time choreographing impromptu fight scenes in his head.

We've always been here: Women changemakers in tech

Steve Jobs. Linus Torvalds. Alan Turing.

Been there, done that.

The interesting stories often aren’t the ones we grew up with; they’re the ones we’ve left behind. When it comes to tech, that means its women, and especially its women of color. And while there’s been a greater emphasis lately on rediscovering women’s contributions to technology, we need to expand our focus beyond just Grace Hopper and Ada Lovelace.

From Radia Perlman to Sophie Wilson to Erica Baker, let's explore both tech’s forgotten heroes and its modern-day pioneers, and help end the silent erasure of women in technology.

Hilary Stohs-Krause

Hilary Stohs-Krause is currently based in Madison, WI, working as a full-stack software developer at Ten Forward Consulting. She came to tech by way of childhood website-building (a "Buffy the Vampire Slayer" fansite, to be exact).

She volunteers regularly with several tech and community organizations, and co-runs Madison Women in Tech, a local group with more than 800 members. She tweets at @hilarysk.

Observing Change: A Gold Master Test in Practice

Tests try to observe change. But are some systems too big to observe them all? What if we need to test a function with a very complex output?

In this talk, we'll explore a Gold Master test– a special test for evaluating complicated legacy systems. We'll look at how this test takes an input, such as a production database, runs it through a transformative function, and then compares the output to an approved version of the output.

Testers of every experience level will leave this talk with a new technique for evaluating complex environments, and a broader conception of what a test can be.

Jake Worth

Jake is a developer at Hashrocket. He loves his job because he gets to solve tough problems with smart people. In the past he led soldiers in Iraq as an Army officer. When not building Web apps, Jake enjoys spending time with his wife and black cat and playing the bagpipes.

Developer Happiness
View Slides

Understanding ‘Spoon Theory’ and Preventing Burnout

Spoon theory is a metaphor about the finite energy we each have to do things in a day. While a healthy, advantaged person may not have to worry about running out of ‘spoons,’ people with chronic illnesses or disabilities and members of marginalized communities often have to consider how they must ration their energy in order to get through the day. Understanding how 'spoons' can affect the lives of your developers and teammates can help companies lessen the everyday burdens on their underrepresented employees, leaving them more spoons to do their best work, avoid burnout and lead fulfilling lives.

Jameson Hampton

Jamey is a non-binary adventurer from Buffalo, NY who wishes they were immortal so they’d have time to visit every coffee shop in the world. They’re a rails and android developer, doing both frontend and backend work, and currently working as an engineer for Agrilyst, a data analysis platform for indoor agriculture. In their free time, they do advocacy in the transgender community, make podcasts and zines, and spend time in nature camping and hiking.

Do Your Views Know Too Much?

The logical place to put view-related logic is... inside your view, right? "A little logic here... a little logic there..." but all of a sudden we hardly recognize our views. A quick glance through our code and we can't tell our Ruby apart from our HTML. Don't worry; this is a fun opportunity for some refactoring! Come see several approaches you can start using today to clean up your views.

Jason Charnes

Jason is from Memphis, TN where he works for Lensrentals. He still can't seem to shake his Ruby addiction and is very passionate about the Ruby community. Outside of development, Jason enjoys rewards programs, gin with soda, and being a husband.

Rack ‘em, Stack ‘em Web Apps

While Rails is the most common Ruby web framework, it’s not the only option. Rack is a simple, elegant HTTP library, ideal for microservices and high performance applications.

In this talk, you’ll see Rack from top to bottom. Starting from the simplest app, we’ll grow our code into a RESTful HTTP API. We’ll test our code, write reusable middleware, and dig through what Rack provides out of the box. Throughout, we’ll balance when Rack is a good fit, and when larger tools are needed.

If you’ve heard of Rack but wondered where it fits in the Ruby web stack, here’s your chance!

Jason R. Clark

I fell in love with programming as a young boy watching my dad work in Clipper and dBase III (no, really). The obsession sparked there continues to this day. I work for New Relic, and in my spare time contribute to the Shoes project. When not at work, I enjoy cycling, homebrewing, and hanging out with my family.

Leading at all Levels
View Slides

Supporting Mental Health as an Effective Leader

As the stigma of speaking out about mental health conditions declines, leaders in the programming community are are being given many new opportunities to support their teams. In this session you will learn about the issues some of your team may face both in dealing with their own potential mental health difficulties and that of other team members. We will go over ways to support both the individual and team, how to advocate for team members with mental health conditions, and resources for further information and outreach for you and your team.

Jesse James

A Ruby on Rails lover, Elixir dabbler, and all around beginner at much of life. Born and raised in rural Missouri but now firmly entrenched on the West Coast. Lover of corgis and cats alike. Currently working as a Developer Advocate for SparkPost, formerly at Raygun, TripGrid, and Marketo. I also lift things up and put them back down. Email: Twitter: @jjamespdx

Developer Happiness

The Good Bad Bug: Learning to Embrace Mistakes

The history of programming is filled with examples of bugs that actually turned out to be features and limitations that pushed developers to make an even more interesting product. We’ll journey through code that was so ‘bad’ it was actually good. Then we’ll learn to tame our inner perfectionists so our code will be even better than it is today.

Jess Rudder

Jessica Rudder is a recovering perfectionist that learns to code through a combination of reading, asking colleagues and banging her head against a wall. When she's not helping to build Flatiron School's Learn platform, she can be found training for ultra marathons on the streets of NYC or creating code-related videos on YouTube for CompChomp. She is an avid squirrel photographer and loves the color green.

React on Rails

Eighteen months ago, our fairly typical Ruby on Rails app had some mundane client side interactions managed by a tangle of untested JQuery spaghetti.

Today, new features are built with React, CSS modules, and a far better UX. With ES6 front end code, processed with Babel, compiled (and hot-reloaded in development) with Webpack, and tested with Jest – all within the same Rails application.

Come along to this talk to hear how we migrated our app a piece at a time to use technologies that don’t always sit naturally alongside Rails. I will cover technical implementations and lessons learned.

Jo Cranford

Jo is a Lead Developer based in Melbourne, Australia at Culture Amp, an all-in-one people feedback and analytics platform. Although Jo has been a Senior Business Analyst and Product Planner, coding is her real passion. She's worked with Lonely Planet, Atlassian, ThoughtWorks and Expedia and was CTO of a startup accepted into Telstra's Muru-D program. When not coding her happy place is under the sea - she's a qualified scuba diving instructor.

How to write better code using mutation testing

Mutation testing is the best resource available to rubyists for assessing test quality. Mutation testing will help you:

  • Write better tests
  • Produce more robust code that better handles edge cases
  • Reveal what parts of your legacy application are most likely to break before you dive in to make new changes
  • Learn about features in Ruby and your dependencies that you didn’t previously know about

This talk assumes a basic knowledge of Ruby and testing. The examples in this talk will almost certainly teach you something new about Ruby!

John Backus

John Backus is the CTO at BlockScore where he leads an all Ruby development team. In his free time he helps maintain mutest (a mutation testing tool for ruby), rubocop-rspec (an RSpec linter and style checker), and yardcheck (a tool that checks YARD docs by running your test suite).


Tailoring Mentorship: Achieving the Best Fit

This is a sponsored talk by Stitch Fix.

In this talk, you'll learn how to establish effective, quality mentoring relationships where both parties grow their skills—and their career. Mentoring accelerates your personal and career growth. Come learn how much you'll grow by sharing your knowledge and experience using practices like inquiry-based learning, differentiated learning, and active listening.

Jonathan Wallace

Based in Athens, GA, Jonathan co-founded the local software developer meetup, presents regularly, and hosts and facilitates Code Retreats. Additionally, he has mentored at RailsGirls, is a board member at FourAthens, the local tech education non-profit, has spoken at RubyConf and RubyConfIndia, and informally mentors people new to software. When not doing any of the above, his enjoys a full time position as a Principal Engineer at Stitch Fix.

Code Organization
View Slides

An Optimistic Proposal for Making Horrible Code... Bearable.

The attempted rewrite is over, the dust has settled, and the monolith isn’t going away. After all, it’s still the app that makes all the money. On the other hand, nobody wants to work on it, every new feature takes forever, and your entire team is afraid of making any change for fear of the whole thing collapsing in on itself.

In this session, we’ll walk through some of the technical and social problems that arise from difficult codebases. We’ll learn to stop making things worse, to measure what we need to change, and start making progress.

In the thousand mile journey, here are the first steps.

Joseph Mastey

Joe Mastey is a software engineer of over twelve years, and has worked on Rails codebases from 1.2 to 5.0. He's been spending his time lately teaching organizations to build fantastic internal education programs. He also digs rock climbing and kayaking, despite being based in Chicago.

Unconventional Rails

Inventing Friends: ActionCable + AVS = <3

Chatbots, ActionCable, A.I. and you. And many more buzzwords will enthral you in this talk.

We'll learn how to create a simple chatroom in Rails using ActionCable, then how to talk to your colleagues in the office or remote locations using text to speech and Amazon Voice Service.

Using the power of ActionCable we will explore how its possible to create an MMMOC: massively multiplayer online chatroom, that you can use TODAY to see your; Travis Build status, or deploy code to your favourite PAAS, let you know when the latest release of Rails is out. Using nothing but your voice and ActionCable.

Julian Cheal

Julian is a British Ruby/Rails developer at Red Hat, with a penchant for tweed, fine coffee, and homebrewing.

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.

Machine Learning

Predicting Titanic Survivors with Machine Learning

What's a better way to understand machine learning than a practical example? And who hasn't watched the 1997 classic with Jack and Rose? In this talk we will first take a look at some real historical data of the event. Then we will use amazing Python libraries to live code several of the most well known algorithms. This will help us understand some fundamental concepts of how machine learning works. When we're done, you should have a good mental framework to make sense of it in the modern world.

Ju Liu

Ju was born in China, then as a kid moved to Italy. He grew up and cofounded a consulting company in Turin. After some time, he decided to start a new adventure and moved to London, where he works at Erlang Solutions as an Elixir Engineer. He loves to solve hard problems and build amazing products. When he’s not doing that, he’s probably rock climbing.

A Deep Dive Into Sessions

What if your Rails app couldn’t tell who was visiting it? If you had no idea that the same person requested two different pages? If all the data you stored vanished as soon as you returned a response? The session is the perfect place to put this kind of data.

But sessions can be a little magical. What is a session? How does Rails know to show the right data to the right person? And how do you decide where you keep your session data?

Justin Weiss

Justin Weiss leads the development team at, the best place to find legal help on the web. He's the author of Practicing Rails, a book about learning Rails without being overwhelmed. On his website,, Justin writes clear, simple tutorials to help Rails developers write fast, clean, well-tested apps.

Accessibility (when you don't have time to read the manual)

For some, making web applications accessible is a must; Government websites fall under Section 508 and retail sites need to reduce legal risk.

But for others it seems like a luxury; Consultants are expensive, and so are the developer hours spent trying to parse the notoriously hard-to-read WCAG 2.0 docs.

There is an easier way to start!

In this session, we will demystify the WCAG 2.0 basics. We’ll use Chrome Accessibility Dev Tools to discover and fix common issues. You will leave with a set of free and easy-to-use resources to start improving the accessibility of your application today.

Katie Walsh

Katie is a full-stack developer at First Data, where she builds an e-commerce application using Rails & React. She is obsessed with languages, both spoken and computer ones. In her free time, she loves to travel, hike, and explore.

Practical Debugging

People give ruby a bad reputation for speed, efficiency, weak typing, etc. But one of the biggest benefits of an interpreted language is the ability to debug and introspect quickly without compilation. Oftentimes developers reach for heavy-handed libraries to debug their application when they could just as easily get the information they need by using tools they already have.

In this talk you will learn practical techniques to make debugging easier. You will see how simple techniques from the ruby standard library can greatly increase your ability to keep your codebase clean and bug-free.

Kevin Deisz

I'm a software developer at Localytics in Boston. I'm passionate about object-oriented programming, working well with ruby, and craft beer. I've been working with ruby and the accompanying eco-system for 8 years. I'm a fan of simple code, good books, and great music.

Developer Happiness on the Front End with Elm

Ruby and Rails famously prioritised developer happiness, and took the world by storm. Elm, a new language that compiles to JavaScript, proves that putting developer happiness first can produce very different results on the front end! Born out of Haskell, Elm is as unlike Ruby as programming languages get, but in this session we’ll see how its particular blend of design decisions tackles everything that’s painful about front-end development, making it an excellent choice for the curious Rubyist’s next favorite language.

Kevin Yank

Before joining Culture Amp as an Engineering Lead in 2015, Kevin taught a generation of web developers during his time at SitePoint, and helped to launch success stories like 99designs and Flippa. More recently, he quizzed web developers on HTML, CSS and JavaScript by leading the team behind Sit the Test. On weekends he performs improvised theatre with Impro Melbourne, which is a lot more like building web apps than you might expect.

View Slides

Uncertain Times: Securing Rails Apps and User Data

It’s what everyone is talking about: cyber security, hacking and the safety of our data. Many of us are anxiously asking what can do we do? We can implement security best practices to protect our user’s personal identifiable information from harm. We each have the power and duty to be a force for good.

Security is a moving target and a full team effort, so whether you are a beginner or senior level Rails developer, this talk will cover important measures and resources to make sure your Rails app is best secured.

Krista Nelson

Krista Nelson is a Software Engineer at Glassbreakers, an Enterprise SaaS product company focused on diversity and inclusion. After her eight year tenure at Oracle, Krista changed careers through attending the Turing School of Software and Design. In her spare time, Krista enjoys snowboarding, urban hiking, and rocking on the ukulele.

Portable Sessions with JSON Web Tokens

Ever wonder why applications use sessions and APIs use tokens? Must there really be a difference? JSON Web Tokens are an emerging standard for portable secure messages. We'll talk briefly about how they're built and how they earn your trust, then dig into some practical examples you can take back and apply to your own majestic monolith or serious services.

Lance Ivy

Lance is a Ruby-focused developer with experience across the full stack but an emphasis in backend and platform engineering. His idea of a productive week is cleaning out the darkest corners in a codebase or puzzling out how to make the right solution simple. Currently he's distilling 8 years of Kickstarter experience into Keratin AuthN, an open source authentication server for any application. He'd love to hear about your favorite tabletop game.

Distributed Teams

A clear-eyed look at distributed teams

Distributed teams can have big benefits for both employers and employees. But there are many challenges. Being successful requires changes to work practices, communication, and style — and not just from the remote people. Everyone will experience changes. It helps to be prepared … and most of what we see being written and discussed is focused on remote workers, not the organization that supports them.

In this talk, we will look at the challenges and rewards of working in a distributed team setting based on several years of experience growing large distributed engineering teams.

Maria Gutierrez

Maria Gutierrez is VP of Engineering at FreeAgent, one of the UK's most popular online accounting software providers.

Glenn and Maria recently worked together at LivingSocial where they led large, globally distributed teams from Dallas and Edinburgh, respectively.

Glenn Vanderburg

Glenn Vanderburg is VP of Engineering at, a startup building software to amplify the effectiveness of residential real estate agents. He has worked on distributed teams at Relevance, InfoEther, LivingSocial, and now First.


Rough to Fine: Programming Lessons from Woodworking

Woodworking has experienced quite a renaissance as of late, and a very popular style involves using power tools for rough work and hand tools for detail and precision work. Using both defines each woodworker's speed and ability to produce beautiful/functional pieces. The same can be true of developers. What can we as developers learn from this mix of modern and ancient craft? Come find out.

Mark Simoneau

Based in Austin, TX, Mark has 15 years of full time development experience, 9 of which have been in Ruby and Rails. He's been at Upworthy and Stitch Fix in recent years, as a lead in both engineering organizations. Mark has a passion for connecting with people, BBQ, board games, woodworking and simple solutions to problems.

Machine Learning

Is it Food? An Introduction to Machine Learning

Machine Learning is no longer just an academic study. Tools like Tensorflow have opened new doorways in the world of application development. Learn about the current tools available and how easy it is to integrate them into your rails application. We'll start by looking at a real-world example currently being used in the wild and then delve into creating a sample application that utilizes machine learning.

Matthew Mongeau

A passion for cooking, programming, and Japanese brought Matt to work at Cookpad, an international recipe sharing website. As a member of the web team he works to bring together all the technologies they use into the international rails application. Recent adventures has brought about an interest in Machine Learning and figuring out how to use it in order to change the ways we create and share recipes.

Leading at all Levels
View Slides

Bebop to the Top - The Jazz Band As A Guide To Leadership

The ideal workplace, with motivated employees, supportive managers and a clear vision in the "C-suite", is where we'd all like to work, isn't it? The question then, is, how do we create it? How do managers walk the fine line of "micromanaging" and "anarchy"? How can we, as employees, maximize our contribution to our company and love what we do at the same time?

The secret is in the big band.

Inspired by Max Dupree's Leadership Jazz, this talk will show you how to apply the principles of improvisation to your company/team and make your workplace more efficient, effective and fun!

Michael Cain

Minnesota-raised, Philadephia-made.

Michael is a creative guy who likes to make things, especially music and apps. He's spent the last 15 years performing as a professional musician, from the Minnesota Opera to clubs of all kinds up and down the East coast. Prior to joining the Ruby community in 2014, Michael taught an assortment of music courses for Camden County College and the University of Phoenix at Center City.

View Slides

The Art & Craft of Secrets: Using the Cryptographic Toolbox

Picking an encryption algorithm is like choosing a lock for your door. Some are better than others - but there's more to keeping burglars out of your house (or web site) than just the door lock. This talk will review what the crypto tools are and how they fit together with our frameworks to provide trust and privacy for our applications. We'll look under the hood of websites like Facebook, at game-changing exploits like Firesheep, and at how tools from our application layer (Rails,) our protocol layer (HTTP,) and our transport layer (TLS) combine build user-visible features like single sign-on.

Michael Swieton

I am a software developer at Atomic Object. For more than decade I've crafted code into software of all sorts. I enjoy peeking under the hood of everything, be it math, or software, or board games, or cake.


Your App Server Config is Wrong

This is a sponsored talk by Heroku.

As developers we spend hours optimizing our code, often overlooking a simpler, more efficient way to make quick gains in performance: application server configuration.

Come learn about configuration failures that could be slowing down your Rails app. We’ll use tooling on Heroku to identify configuration that causes slower response times, increased timeouts, high server bills and unnecessary restarts.

You’ll be surprised by how much value you can deliver to your users by changing a few simple configuration settings.

Nate Berkopec

Nate is the owner of Speedshop, a Ruby on Rails performance consultancy. Nate has worked for several startups, including Craft Coffee (YC S14), Unwind Me (YC S14), Scaffold (500 Startups), Branch (now a division of Facebook) and many others. Nate is a contributor to several open source projects, such as Ruby on Rails, Puma and Sentry.

Exploring the History of a 12-year-old Rails Application

Come on a journey backward through time from the present all the way to August 2005 to see how a living and evolving Rails application started, changed, and continues.

Find out some of the challenges and temptations in maintaining this application. See how different influences have coursed through the application as the team changed, the business grew and as Rails and Ruby evolved.

We'll explore history through code and learn from some of the developers involved in the application over its lifecycle to build an understanding of where the application is now and how it became what it is.

Nathan L. Walls

Nathan L. Walls is a developer who works with and trains up software teams to test well, refactor to clarify intent and improve understanding, separate concerns, and stay adaptive with an emphasis on learning, respect and empathy.

Nathan's also a photographer, kung fu student, qigong practitioner, day hiker and cat herder. He writes at


Warning: May Be Habit Forming

Over the past year, I’ve spoken at several conferences, lost 30 pounds, and worked up to running my first 5K, all while leading an engineering team and spending significant time with my family. I also have less willpower than just about everyone I know. So how’d I accomplish those things?

Let’s talk about how to build goals the right way so that you’ll be all but guaranteed to hit them. We’ll work through the process of creating systems and nurturing habits to turn your brain into your biggest ally, no matter what you want to accomplish!

Nickolas Means

In addition to being a breakfast taco connoisseur, Nickolas Means is also a connoisseur of disaster stories. He loves seeing how sometimes the absolute worst thing that could possibly happen sometimes brings out the absolute best in the people it happens to. When he's not studying the macabre, Nick is VP of Engineering at Muve Health, working to change how healthcare gets paid for in the US.

Managing Unmanageable Complexity

As systems get more complex they inevitably fail. Many of those failures are preventable.

We’re not lazy, stupid, or careless. The complexity of our systems simply exceeds our cognitive abilities. Thankfully, we’re not alone. People have successfully managed complex systems long before software came along.

In this session, we’ll see how surgeons, pilots, and builders have developed techniques to safely manage increasingly complex systems in life and death situations. We will learn how simple checklists improve communication, reduce preventable errors, and drive faster recovery time.

Patrick Joyce

I’ve helped teams grow from a handful of people to dozens of people deploying multiple applications dozens of times a day.

Currently, I’m a Director of Engineering at Stitch Fix where we’re reinventing retail and I lead customer facing development. Previously, I was an early employee at LivingSocial and eventually led 30 developers across seven teams to build the customer experience.

I fell in love with Ruby and Rails in 2005 and attended my first RailsConf in 2007.

Developer Happiness

Panel: Developer Happiness through Getting Involved

We have amazing skills and abilities, but for a lot of us the missing piece is finding a way to give back. We have an amazing panel of people who have used their skills and talents from both previous careers and current to make the world a better place. Learn how they got involved, and in turn what you can do to get involved in areas you’re passionate about to fill this missing piece that will keep you happy throughout your career.

Polly Schandorf

In her previous life, Polly was a teacher of elementary through high school students. After being introduced to coding using a Raspberry Pi in a teacher workshop - she was hooked, and never looked back. During the day she is a software developer at STAQ and by night she's working to make the world better.

Terian Koscik

Software Engineer, GitHub

Sean Marcia

Happiness Maker, Ruby for Good

Sarah Mei

Chief Consultant, DevMynd

Upgrading a big application to Rails 5

In this talk we would take a look in different strategies to upgrade Rails application to the newest version taking as example a huge monolithic Rails application. We will learn what were the biggest challenges and how they could be avoided. We will also learn why the changes were made in Rails and how they work.

Rafael França

Member of the Rails Core Team. Production engineer at Shopify.

Leading at all Levels

Panel: Becoming an engineering leader

Are you a new manager? Have you been asked to lead a project? Do you want to see change in your company but don't feel you have the position to enact it? Are you terrified or nervous or unsure where to start? Has a recent situation left you questioning what you did wrong and how to be a better leader?

Software development doesn't prepare us for taking on everyday or official leadership and yet, leadership is what every team and company desperately need.

Let talk with a group of folks at various stages of the leadership hierarchy about what they have and want to learn.

Rebecca Miller-Webster

Rebecca Miller-Webster is a software engineer, conference organizer, and educator. She is the founder of Write/Speak/Code and Practice Lead at DevMynd. Rebecca has been developing software professionally for over a dozen years & previously organized GORUCO. Rebecca's hobbies include drinking Diet Coke, wearing trousers, telling computers what to do, pugs, & swearing.

Neha Batra


Shay Howe

VP of Product, Yello

Abel Martin

Lead Software Engineer, Optoro


Google Cloud <3 Ruby

This is a sponsored talk by Google Cloud Platform.

Ruby developers welcome! Our dedicated Google Cloud Platform Ruby team has built a great experience for Ruby developers using GCP. In this session, we'll walk through the steps to deploy, debug and scale a Ruby on Rails application on Google App Engine. You'll also learn about some of the exciting Ruby libraries available today for adding features to your app with GCP services like BigQuery and Cloud Vision API.

Remi Taylor

Remi works on the Ruby Cloud team, crafting elegant code to help Ruby developers use Google Cloud Platform.  Now in Seattle, she started her career in Phoenix where she was an active member of the local developer community.  Her passions include developer experience, domain specific languages, and dogs.  If you can’t find her after the conference, she is undoubtedly at Oregano’s.

Machine Learning

Bayes is BAE

Before programming, before formal probability there was Bayes. He introduced the notion that multiple uncertain estimates which are related could be combined to form a more certain estimate. It turns out that this extremely simple idea has a profound impact on how we write programs and how we can think about life. The applications range from machine learning and robotics to determining cancer treatments. In this talk we'll take an in depth look at Bayses rule and how it can be applied to solve problems in programming and beyond.

Richard Schneeman

Schneems writes Ruby at Heroku, maintains, and co-organizes Keep Ruby Weird. He is in the top 50 Rails contributors and is an accidental maintainer of Sprockets. He writes such gems as Wicked, and derailed_benchmarks.

Open Source Deep Dive

Teaching RSpec to Play nice with Rails

RSpec gives you many ways to test your Rails app. Controller, view, model, and so on. Often, it's not clear which to use. In this talk, you'll get some practical advice to improve your testing by understanding how RSpec integrates with Rails. To do this we'll look through some real world RSpec bugs, and with each one, clarify our understanding of the boundaries between RSpec and Rails.

If you're looking to level up your testing, understand RSpec's internals a little better, or improve your Rails knowledge, this talk will have something for you. Some knowledge of RSpec's test types will be assumed.

Sam Phippen

Sam Phippen is an Engineer at DigitalOcean. He comes to the table with enthusiasm, and a great deal of love for the Ruby community. He fights for the forces of justice as a member of the RSpec core team. He's sad that he can't hug every cat.

High Volume

Panel: Performance... performance

Is your application running too slow? How can you make it run leaner and faster? Is Ruby 2.4 going to make anything faster or better? Should you be upgrading to the latest version of Rails? Is your Rails application being weighed down by a large swarm of dependencies?

In this panel, the panelists will discuss their favorite performance related tools and guidelines. Expect to learn about changes in Ruby 2.4 and beyond that may help make your applications snappy and lean.

Sam Saffron

Sam Saffron is a co founder of Discourse. Creator of the mini_profiler, memory_profiler, mini_mime and mini_racer gems. He has written extensively about various performance topics on Sam loves making sure Discourse keeps running fast.

Nate Berkopec

Performance Consultant, Self-employed

Rafael França

Production Engineer, Shopify

Richard Schneeman

Engineer, Heroku

Eileen M. Uchitelle

Senior Systems Engineer, GitHub

Leading at all Levels
View Slides

Leading When You're Not in Charge

Just because you don't have lead / senior / manager / owner in your title, doesn't mean there isn't plenty of opportunity to lead. No matter where you are in your career, come discover how to communicate more effectively, embrace self-awareness, and influence those leading you. Don't wait for a title to tell you to lead. Take responsibility where you are, and let the titles come to you.

Scott Lesser

Scott has been developing professionally for 10+ years. Currently he is the senior developer on the Open Network team at Life.Church. When he's not building software for churches, he's begging for laughs as an amateur stand-up comedian and dadding so hard he sees Legos in his sleep.

Panel: Ruby's Killer Feature: The Community

What makes Ruby so wonderful? The Community.

The community around Ruby is really what sets it apart, and the cornerstone of it is the small local meetups. Come learn how to get involved, help out, or step up and start a local group of your own. We will discuss how to develop and nurture the group. Share our experiences in expanding a small group to larger events like unconferences or workshops. Find out how community leaders can help everyone build a solid network, assist newbies in kick-starting their career, and most importantly ensure that everyone feels welcome and safe.

Sean Marcia

Sean is a tireless do-gooder. He created and organizes Ruby for Good and spends his day job working to make government more sane. He loves the programming community and can't believe he is paid to have this much fun. When not programming he loves being outdoors (especially national parks), drinking coffee from Portland, eating dried seaweed and playing with dogs.

Christopher Sexton

Christopher is the VP of Engineering at Radius Networks, where he builds mobile proximity tools and services. He cofounded the Arlington Ruby group, and helps organize both Ruby Retrocession and Ruby for Good events.

LaToya Allen

Founder, SheNomads

Zuri Hunter

Software Engineer, Digital Globe

High Volume
View Slides

5 Years of Rails Scaling to Support Massive Sales

Shopify has taken Rails through some of the world's largest sales: Superbowl, Celebrity Launches, and Black Friday. In this talk, we will go through the evolution of the Shopify infrastructure: from re-architecting and caching in 2012, sharding in 2013, and reducing the blast radius of every point of failure in 2014. To 2016, where we accomplished running our 325,000+ stores out of multiple datacenters. It'll be whirlwind tour of the lessons learned scaling one of the world's largest Rails deployments for half a decade.

Simon Eskildsen

When Simon's not researching walruses or playing chaos monkey for the company's infrastructure, he's hard at work taming the wildlife of production, protecting Shopify from flash sales, scale, misbehaving resources and itself. Other than that, as a new resident of Canada, fulfilling his obligation to call everyone out when they think they've experienced "cold weather".

Distributed Tracing: From Theory to Practice

Application performance monitoring is great for debugging inside a single app. However, as a system expands into multiple services, how can you understand the health of the system as a whole? Distributed tracing can help! You’ll learn the theory behind how distributed tracing works. But we’ll also dive into other practical considerations you won’t get from a README, like choosing libraries for Ruby apps and polyglot systems, infrastructure considerations, and security.

Stella Cotton

Stella Cotton is a Tools engineer at Heroku and co-founder of AndConf and Fog City Ruby. She loves good abstractions and boring technology.

Code Organization
View Slides

Architecture: The Next Generation

As our applications grow, we start thinking of better ways to organize and scale our growing codebases. We've recently seen Microservices start to emerge as a prominent response to Monoliths, but is it all really worth it? What about our other options? We often romanticize leaving our current architecture situation because we believe it will cure what ails us. However, architecture certainly has no silver bullet . Beam up with me as we explore the past, present, and future of reconsidering architecture.

Taylor Jones

I'm a Florida-based developer with a lovely wife and a bunch of animals. I program Ruby-based things for IZEA, but I tend to write a lot in my spare time. I'm constantly looking for the weirder, more abstract parts of programming that we often don't look at (process, empathy, design).

High Volume

Processing streaming data at a large scale with Kafka

Using a standard Rails stack is great, but when you want to process streams of data at a large scale you'll hit the stack's limitations. What if you want to build an analytics system on a global scale and want to stay within the Ruby world you know and love?

In this talk we'll see how we can leverage Kafka to build and painlessly scale an analytics pipeline. We'll talk about Kafka's unique properties that make this possible, and we'll go through a full demo application step by step. At the end of the talk you'll have a good idea of when and how to get started with Kafka yourself.

Thijs Cadier

Co-founder of AppSignal from Amsterdam, the Netherlands. Been programming in Ruby since discovering Rails when it was still in beta in 2005.

Reporting on Rails - ActiveRecord and ROLAP Working Together

It'll happen eventually. Someone will come down with a feature request for your app to "create dashboards and reporting on our data". So how do you go about doing it? What parts of your database should you start thinking about differently? What is "reporting" anyway? Is ActiveRecord enough to pull this off?

Let's go on a journey through the world of Relational Online Analytical Processing (ROLAP) and see how this can apply to Rails. We'll also look at database considerations and finish with looking at a light DSL that works with ActiveRecord to help make your data dance.

Tony Drake

I’m currently senior developer on a team specializing in billing and reporting for an enterprise-level Rails application where I co-architected a custom ROLAP framework using PostgreSQL on the backend. I'd like to share my ten years (seven of those with Rails) of professional web development experience with others. I can also kick anyone's butt in Mario Kart with Rosalina.

Goldilocks And The Three Code Reviews

Once upon a time, Goldilocks had a few minutes to spare before morning standup. She logged into Github and saw that there were three pull requests waiting for her to review.

We've probably all heard that peer code reviews can do wonders to a codebase. But not all types of code reviews are effective. Some of them seem to go on and on forever, while others pick at syntax and formatting but miss bugs. This talk explores what makes a strong code review and what makes a painful one. Join Goldilocks as she seeks to find a code review process that's neither too long nor too short, but just right!

Vaidehi Joshi

Vaidehi is an engineer at Tilde, where she works on Skylight. She enjoys building and breaking code, but loves creating empathetic engineering teams a whole lot more. In her spare time, she runs basecs, a weekly writing series that explores the fundamentals of computer science.


​Postgres at Any Scale​

This is a sponsored talk by Citus Data.

Postgres has powerful datatypes and a general emphasis on correctness which makes it a great choice for apps small and medium. Growing to very large sizes has been challenging—until now!

First you'll learn how to take advantage of all PG has to offer for small scales, especially when it comes to keeping data consistent. Next you'll learn techniques for keeping apps running well at medium scales. And finally you'll learn how to take advantage of the open-source Citus extension that makes PG a distributed db, when your app joins the big leagues.

Will Leinweber

Will is based out of San Francisco and has been helping people with Postgres for over six years. He is currently on the Citus Cloud team, and prior to that he was a principal member of the Heroku Postgres team.



Interested in Sponsoring?

Download our Prospectus