The largest official gathering of the year, RailsConf brings together top talent, companies, and project representatives from around the world. Learn and build with the best in sessions, workshops, keynotes and parties.
Evolving Talent

The idea that confidence is solely the result of positive self-talk is circular: If I believed in my ability to talk myself up, I would. But if I did, I wouldn't need to talk myself up. It's not as simple as having faith.

There's a thread amongst all peak performers and skilled practitioners: specific habits, routines, and processes that wrap uncertainty and create confidence. Oscar-winning actors rehearse, pro-drivers do laps, chefs prep.

This talk will help you recognize and design habits, routines, and practices that embed confidence into the body.

Adam Cuppy

Chief Operating Officer @CodingZeal and speaker of all things related to people.

Testing out of the Box

Test All the F***ing Time is one of the values of the Ruby community. But how many of us test in production in addition to running our test suites as part of CI? This talk will discuss a variety of approaches to testing in prod including canaries, blue-green deployment, beta and A/B tests, and general functional tests. I'll share a few times these techniques have found bugs before our users did and how you can use them today with your Rails Application.

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. In the last three years she has become a developer happiness crusader. In her free time she enjoys skiing, cooking, knitting, and long coding sessions on the beach.

One day I joined a team maintaining a huge, legacy, and slow Rails app. We thought that we have to optimize the application throughput for the user happiness, and so we formed a task force that focuses on the performance.

Now, here's the record of the team's battle, including how we inspected and measured the app, how we found the bottlenecks, and how we tackled each real problem, about the following topics:

  • Tuning Ruby processes
  • Finding slow parts inside Rails, and significantly improving them
  • Fixing existing slow libraries, or crafting ultimately performant alternatives
Akira Matsuda

A Ruby committer, a Rails committer, the creator of so many gems, to name some, kaminari, active_decorator, action_args, stateful_enum, jb, database_rewinder, gem-src... The maintainer of Haml and some other gems.

Rails and Services

For many of us, APIs and their client libraries are the face of our applications to the world. We need to innovate with new features, but breaking changes are toxic to customer trust.

In this session you will pick-up concrete design patterns that you can use and anti-patterns that you can recognize so that your service API or library can continue to grow without breaking the world. Using real APIs and open source libraries as a case study, we’ll look at actual examples of specific strategies that you can employ to keep your API backwards compatible without painting yourself into a corner.

Alex Wood

Alex works for Amazon Web Services, is the lead maintainer of the AWS SDK for Ruby, and author of the aws-sdk-rails and aws-record gems.

Have you ever been frustrated with code that is sprinkled with poorly named classes, methods, and variables?

One of the most valuable things you can do as a developer is to choose good names and to sensitize your teammates to the benefits of improving names.

It turns out that improving names is deeply connected to improving design. And vice-versa. You will see and experience this deep connection as we explore a real world example.

By the end of this talk, you will have learned a process to get you started with improving names and improving design—a process simple enough for you to teach others.

Alistair McKinnell

Alistair McKinnell has been writing software since the days of punch cards. After reading Kent Beck’s Extreme Programming Explained in 1999 he realized he had found his people. These days Alistair works as an Full-Stack Rails developer and Agile Coach at Nulogy. Alistair thinks of himself as a gardener: growing software, growing teams, and growing organizations.

Business and Rails

Your application is a dragon and here’s how we’re going to form a successful raiding party to come out victorious (with minimal casualties!). When entering the field of web development, I discovered that the parallels of building a strong multiplayer gaming community and optimizing companies for success were undeniable. Your quest, should you choose to accept it, is to listen to these parallels and use the lessons to strengthen your biggest asset-–your team–-to build a better company and a better web.

Aly Fulton

Gaming community leader, developer convert, and toddler chaser.

Deploying and Running Rails

Pilots have the flight deck, Captain Kirk had his bridge, but what do you have for managing failure in your application?

Every app comes under stress, whether it's from downstream failures to unmaintainable high load to a spike in intensive requests. We'll cover code patterns you can use to change the behavior of your application on the fly to gracefully fail.

You’ll walk away from this talk with tools you can have on hand to ensure you remain in control even when your application is under stress.

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.

Evolving Talent

Despite general consensus that pairing is good, the desire to pair doesn’t come with instructions. Come to this talk to learn how to pair with someone more experienced, how (and why) to pair with your peers, and how to pair productively with someone less experienced. (Hint: productivity isn’t about the speed of new features.) Pairing is a fantastic tool for your professional toolbox: let’s design, refine, and refactor, together.

André Arko

André Arko is the lead developer of Bundler and RubyGems, works at Cloud City as a software development consultant, and is the founder of Ruby Together, a non-profit trade association that funds work on Ruby open source software.

Unusual Rails Apps

Machine learning and AI are all the rage, but there’s often no replacement for real human input. This talk will explore how to automate the integration of human-work directly into a RoR app, by enabling background workers to request and retrieve data from actual human workers. The secret is Amazon Mechanical Turk, a crowdsourcing marketplace connecting ‘requesters’ who post tasks with ‘workers’ who complete them. Attendees will learn how to automate the completion of human tasks (e.g. price research, image tagging, sentiment analysis, etc) with impressive speed, accuracy and scalability.

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.

Testing out of the Box

Ugh, documentation.

It's the afterthought of every system, scrambled together in the final days before launch, updated sparingly, generally out of date.

What if we could programmatically verify that our API documentation was accurate? What if this helped us build more intuitive APIs by putting our users first? What if documentation came first, and helped us write our code?

With Swagger and Apivore as our weapons of choice, we'll write documentation that will make your APIs better, your clients more satisfied, and you happier.

Ariel Caplan

Ariel Caplan is a prolific author (of tweets), editor (of pull requests), and journalist (reporting on what he ate for dinner). Despite the clear love of language, it wasn't until 2 years ago that he really began to appreciate documentation.

Ariel works at Vitals, where he evangelizes a docs-first approach to software development.

We put a lot of effort into web speed for our website One day in November we woke to our greatest traffic day ever, and the source was Japanese Dev-Twitter catching wind of just how fast a site could be. American websites don't typically give so much care to global performance, but it pays off if you do. In this talk I will describe how we think about performance.

Ben Halpern

Founder of (@ThePracticalDev)

Creator of those parody O'Reilly book covers you might have seen around. 😄

Unusual Rails Apps

Rails is a great framework to empower people to work smarter, not harder. I'll be sharing the evolution of technology in a Pittsburgh brewery, from a simple MVP to a production application. This talk will explore how Ruby and Rails was leveraged to help manage brewery data, control aspects of the taproom environment, and automate the tedious parts of the job to a few clicks.

Ben Shippee

Ben is a full time, full stack software engineer and the tech director of Brew Gentlemen. He specializes in Ruby, but also develops in Swift, Python, and Javascript regularly.

Unusual Rails Apps

Contextual Camouflage is an open-source gallery art installation built in RoR that guides visitors to anonymously report mental health disorders that affect themselves or their relationships. After users submit a disorder, they have the option to include anecdotes and demographic data for intervention researchers. The data is molded into an interactive real-time display using ActionCable. Come see how code can double as art and an educational tool.

Brittany Martin

Brittany Martin works for the Pittsburgh Cultural Trust as the nonprofit’s Lead Web Developer, where she is part of the team that develops, supports and maintains the Trust’s ticketing and festival web applications. Under her alter-ego, Norma Skates, Brittany plays and referees roller derby for the Pittsburgh East Roller Villains. She tweets at @brittjmartin.

Business and Rails

Production support is not a priority. No one on the team wants to work on support cards. Being on-call is a pain. Does this ring a bell? We've all been there! There is a better way to handle Support Engineering for your product. A way that will level up your team, and create positive support experiences for your customers. Drawing on 3+ years of Support Engineering at two different companies, I will share successful Support patterns and tools you can start using today to improve your product support.

Cecy Correa

Software Engineer, ReturnPath. Chapter Leader, Girl Develop It Austin. Organizer, Austin on Rails. Passionate about APIs and bringing underrepresented voices into tech.

As a former orchestral clarinetist turned programmer, I’ll be sharing some of my experiences studying music performance and how they influenced my programming career. I’ll discuss parallels between these two professions - complexity, hero worship, imposter syndrome, true concentration, and more - and I might even throw in a live solo clarinet performance in at the end!

Chris Arcand

Chris is a platform engineer at Red Hat on the ManageIQ core team. He enjoys working full time on open source software to manage The Cloud™ and has contributed to various projects in the Ruby ecosystem. Chris hails from Minnesota and also enjoys hockey, hiking, and tasty beers.

Rails and Services

So this one time we ran Rails services over AMQP (instead of HTTP). You may be thinking “Why? Was that their first mistake?” It was not. From handling shared models poorly to deploying & operating services with inadequate tooling, we've many mistakes. I'm glad we did; they helped us grow. We have patterns & practices for everything we’ve seen so far, from API contracts to distributed consensus protocols. Over this talk’s 40 minutes, you'll learn things it took us 3 years to grasp. Whether you have a monolith or pine for when you did, you'll be more prepared and better armed than we were.

Chris Hoffman

Chris Hoffman is a Senior Developer on the Developer Empowerment team at Optoro. He builds tools and systems that help engineers develop, test, package, and deliver code to production, then understand it once it's there.

“Everything looks like this, but we want it to look like that.” This is the story of how the team at Betterment replaced our front end code base to launch our new brand. Across all our apps. In secret. And make everything responsive. In 8 weeks.

Rails conventions come in handy when a wholesale UI transformation is called for. Learn how we launched a design system, dark deployed an all-new view layer, and unveiled our new brand identity right on schedule.

We shipped a lot of code extremely quickly yet managed to elevate code quality and capabilities in the process.

Constraint breeds creativity.

Chris LoPresto

Chris is a software engineer and musician who grew up as an oldest child in Delaware, the oldest state. He leads front end architecture as a Staff Engineer at Betterment, before which his career dealt in startups, Patriot missiles, and e-readers. More miscellaneously, he is an Eagle Scout who has visited 46 of the 50 states, performed on Late Night with David Letterman, ridden a private elevator with a pope, and swum a mile in Beijing. Chris is always game to debate which is better, cake or pie.

How It Works

Rails 5.2 ships with a new library to support file uploads: Active Storage.

In this talk, we will analyze its internal code, learning how it integrates with Active Record and Action Pack to supply amazing features out of the box, from image previews to cloud storage.

We will review its class architecture and delve into the implementation of several Active Storage methods, such as has_one_attached and upload. On the way, we will better understand some Ruby patterns frequently used within Rails: meta-programming, macros, auto-loading, initializers, class attributes.

Claudio Baccigalupo

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".

Evolving Talent

In the late 1700s the discovery of the principle of interchangeable parts shifted the demand for the expertise of artisans from production to design and invention. This shift transformed Western civilization and opened the way for the industrial revolution. We face a similar opportunity now as one generation of software developers reaches its professional peak and a new wave of developers enter the field. This talk will trace the historical evolution of the artisan and explore how understanding this history can help us to maximize and multiply the impact of senior software developers.

Coraline Ada Ehmke

Coraline Ada Ehmke is a an open source advocate and developer with over 20 years of experience. She was recognized for her work on diversity in open source with a Ruby Hero award in 2016. Coraline is the creator of the Contributor Covenant, the most popular open source code of conduct in the world with over 25,000 adoptions. She is a founding panelist on the Greater than Code podcast. In her free time Coraline pursues her interests in AI and writes and records music in her home studio.

Reconsidering the Basics

Booleans are pretty simple — they're either true or false. But that doesn't mean that they're always easy to use, or that they're always the right choice when they appear to be the obvious choice.

We'll cover several anti-patterns in the use of booleans. We'll discuss why they're problematic, and explore some better alternatives.

Craig Buchek

Craig has been using Ruby and Rails since 2005. He enjoys coding, and Ruby increases that enjoyment. In addition to development work, he specializes in helping teams improve the way they work — through technical practices, processes, and automation.

If you want to make small talk, ask Craig about attending concerts, traveling, canoeing, or beekeeping.

Reconsidering the Basics

Understanding indexes is key to demystifying database performance, and will have huge impact on one's ability to plan, contribute, and troubleshoot as one progresses in their career. Having said all that: many engineers still don’t really know what indexes ARE. Most simply know what indexes can DO. This presentation takes a look at the most commonly used index for any RDBMS: the B-tree. We will pull apart the data structure, discuss how it works, and briefly touch on some of the algorithms they use. With this baseline established, we will revisit a few common assumptions about indexes.

David McDonald

I spent my 20's pursuing photography in Paris. One day, a photographer that I was assisting turned to me and asked, "can you fix my website?" The second I touched code I was hooked for life. I am currently a Rails Engineer at WeedMaps and living in Los Angeles.

How It Works

You run rake db:migrate and rake db:schema:load regularly, but what do they actually do? How does rake db:rollback automatically reverse migrations and why can't it reverse all of them? How can you teach these tasks new tricks to support additional database constructs?

We'll answer all of this and more as we explore the world of schema management in Rails. You will leave this talk with a deep understanding of how Rails manages schema, a better idea of its pitfalls, and ready to bend it to your will.

Derek Prior

Derek's been writing software for the web for nearly 20 years and is the lead maintainer of Clearance, thoughtbot's authentication library. You can hear his thoughts on interesting technology problems, exciting new languages and libraries, and industry trends on The Bike Shed.

Do you keep telling yourself you want to get into open source? Have you been thinking about contributing to Rails? Don’t know where to get started? Right here! Come learn about how to find an interesting issue to work on, set up your dev environment, and ask for help when you get stuck. We’ll also talk about what happens after the first patch and where to go from there.

Dinah Shi

Dinah is wrapping up her engineering degree at the University of Waterloo. In 2017, she spent four months backpacking around Europe and China while looking for half-decent WIFI connections to power her open-source contributions. For the last few months, she has been building a public API to expose more preloading options in Ruby on Rails.

Does your git log output resemble an archaeological site from 500BC? Ransacked by Persians with some Spartan conflict? When we code and commit, our decisions, for better or worse, are preserved. As though in an archaeological record. Thanks to the archaeological record we can understand entire human cultures, but how much do we understand about the decisions developers are making today? Applying the same practices archaeologists utilise can help us understand the decisions developers are making in 2018.

Eleanor Kiefel Haggerty

Eleanor spent many years translating Ancient Greek texts and working with antiquities before she began tinkering with code — now she writes Ruby instead of reading Homer. When she's not digging into code at The Conversation in Melbourne, Australia, she's probably cooking, attending a yoga class, or patting other people's dogs at the park.

If you've ever had inconsistent data show up in your app even though you wrapped the relevant code in a transaction, you're not alone! Database isolation levels might be the solution...

This talk will discuss what database isolation levels are, how to set them in Rails applications, and Rails-specific situations where not choosing the right isolation level can lead to faulty behavior. We'll also talk about how testing code that sets isolation levels requires special care and what to expect to see when monitoring your apps.

Emil Ong

Emil has worked with Rails for several years in a variety of contexts and always seems to find himself looking at interactions databases and application monitoring. He has worked at a number of startups in the San Francisco Bay Area, the experience of which has inspired a few meetup and conference talks and several blog posts. He is currently a software engineer at Binti.

Fear is not a gut feeling. Fear is your brain delivering critical information derived from countless cues that have added up to one conclusion. Stop. Get out. Run.

But sometimes fear isn’t life or death. Often, it’s code smell. It’s a bad feeling before a deploy. There are endless dark alleys in our codebases. This talk will explore fear, instinct and denial. We’ll focus on our two brains — what Daniel Kahneman describes as System 1 and System 2. And we’ll look at how we can start to view “feelings” as pre-incident indicators.

Emily Freeman

After many years of ghostwriting, Emily Freeman made the bold (insane?!) choice to switch careers into software engineering. She now works as a developer advocate for Kickbox and lives in Denver, Colorado.

Throughout much of this conference you're going to hear people state obvious things. Sometimes, they'll even tell you that they think what they're saying is obvious. Why are they saying them at all, then?

It's obvious there must be more to the story, so let's examine what we mean by "obvious". You'll leave this talk encouraged and ready to apply what you've learned to better empathize with others. Through application, you'll see growth in both your professional and personal life.

Ernie Miller

Ernie's been programming since he was 6, and professionally for a couple of decades or so. He took the better part of 2017 off from conference speaking in order to reset, and figure out what he really wanted to share with you, if he could talk about only one thing. This talk is that one thing.

Deploying and Running Rails

Writing a system alone is hard. Building many systems with many people is harder.

As our company has grown, we tried many approaches to user-friendly, shared development environments and learned what works and what doesn't. We incorporated what we learned into a tool called devly. Devly is used to develop products at Fastly that span many services written in different languages.

We learned that the design of our tools must be guided by how teams work and communicate. To respond to these needs, Devly allows self-service, control, and safety so that developers can focus on their work.

Ezekiel Templin

Ezekiel Templin has worked with people to build systems using networked computers for most of the last 20 years. He also works at Fastly building developer and deployment tools.

Eric Hodel

Eric Hodel is a ruby committer and maintainer of many gems. He works at Fastly building developer tools that allow his coworkers to work on distributed teams with minimum difficulty.

Rails is made possible by Ruby’s unique combination of deep dynamism and pragmatic elegance. In turn, Ruby inherited many of its core ideas from older languages including Lisp, Smalltalk, and Perl.

In this talk, we’ll take a tour of these languages and their myriad influences on Ruby, to better understand the foundations of our tools, improve our ability to use them to their full potential, and imagine how they might be further improved.

Geoffrey Litt

Geoffrey is a senior software engineer at Panorama Education, using Rails to build data analytics software for K-12 schools. He enjoys thinking about the past and future of programming languages and tools.

Sometimes vanilla Javascript and Rails out-of-the box UJS is good enough, especially when it comes to building things like admin panels and other types of content management. We'll discuss strategies for building rich user interfaces using minimal vanilla Javascript that leverages as much of Rails UJS as we can.

Graham Conzett

Graham Conzett is a developer from Columbus, OH with over ten years of experience primarily in the healthcare and general startup space. As a result, he is very interested in finding ways of helping developers move quickly while still being able to scale their company, teams, and products, safely. He currently works for Orange Barrel Media.

Evolving Talent

Last summer, two high school juniors with very little coding experience joined Vitals as software engineering interns. Over the course of six weeks, they attempted to level up their programming skills while also learning the Vitals domain. They struggled through obstacles and experienced thrilling code highs, and ultimately emerged as more confident developers.

Using their story as a guide, this talk will explore practical ways of structuring mentoring and onboarding processes. Whether your next hires are newbies or seasoned pros, you’ll walk away with strategies to help them code confidently.

Gretchen Ziegler

Gretchen Ziegler works as a Rails developer at Vitals, and volunteers as a teacher for New York On Tech. Back in the day, she taught high school English and drama. She pretends to be offended by bad puns, but it's obvious she loves them.

Most Rails applications out there in the world deal with the manipulation and presentation of data. So the speed of our application is proportional to how fast we can work with data. Rails is good with presenting data. And our Database is the one who is good at processing data. But we sometimes make the mistake of just using the database as a file cabinet, and using ruby to process. The database is built for crunching data and returning to us the results that we need. This talk is about how to optimize your database so as to speed up your existing Rails application.

Harisankar P S

Harisankar P S has been building SaaS application and API's using Ruby and Rails for the past 5 years. He is also the founder of Red Panthers, a Ruby on Rails dev shop based out in Kochi, India. He is interested in open source and organizes Open Source Saturdays and Ruby Meetup in Kochi. He also contributes to open source as well.



The History of Rails

Have you ever had a crazy idea that you were quietly convinced was great, but that everyone else thought was dumb? Well guess what: the future of Rails is depending on you.

I’d like rewind time by more than ten years, to tell you about one particular crazy idea that almost everyone hated, until it quietly became one of the core architectural components of Rails.

At the same time, we’ll meet the crazy ones, the misfits, the rebels and the trouble makers that ended up shaping Rails as we know it… and maybe, just maybe, we will realise that we can be one of them too.

James Adam

James has been working with Ruby since he fell in love with its quirky charm in 2002, and professionally with Rails since 2005. He's published numerous gems, of varying value and repute. He invented Rails Engines, which, at the time, was a lot like saying "I invented the piano key neck tie!", but eventually even DHH came around, so it's not all bad.

Star Wars fans may have been excited about 2016’s release of Rogue One because of the courageous new rebel characters it introduced, but it also provided a lot more insight into the Empire's Corp of Engineers and how they ended up building the Death Star. As developers, we have a responsibility to think about the ethical implications of our work and how it might be used. This session will discuss ways of deciding for yourself what kinds of projects you are or aren't comfortable working and tips for self-accountability in your career - through the lens of characters we know and love from Star Wars.

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. Currently they’re working as a professional plant-liker (and software engineer) for Agrilyst, a data analysis platform for indoor agriculture. They’re also a permanent panelist on the podcast Greater Than Code! They spend most of their free time camping and thinking about Star Wars, often even at the same time.

Upgrading Rails can go from easy-to-hard quickly. If you've struggled to upgrade to a new version of Rails, you're not alone. And yet, with useful deprecation warnings and extensive beta periods, Rails has never made it easier to upgrade. So what makes it hard?

By looking at the past ten years of Rails upgrades at Clio (and other notable apps), let's see what we can learn. Gain insight into the tradeoffs between different timelines and approaches and learn practical ways to keep your app up-to-date.

Jordan Raine

I love to write code, play music, cycle, and play board games. I've been an avid Ruby fan ever since I picked up Peter Cooper's "Beginning Ruby" book on a plane ride (I couldn't put it down for the entire 8-hour flight).

The History of Rails

Rails has a reputation for being secure by default, but how deserved is that reputation? Let's take a look back at some of the low points in Rails security history: from the first Rails CVE, to the controversial GitHub mass assignment, the 2013 Rails apocalypse, and more recent remote code execution issues. Then we'll cheer ourselves up with the many cool security features Rails has added over the years! We'll cover auto-escaping, strong parameters, default security headers, secret storage, and less well-known features like per-form CSRF tokens and upcoming Content Security Policy support.

Justin Collins

Justin is the primary author of Brakeman, a static analysis security tool for Ruby on Rails, and has been doing application security for the last eight years.

Have you ever clicked "Save" on a document, and caused a coworker to lose hours of work? Or spent more time coordinating "Who has permission to edit" in Slack than you did actually writing the document?

Google-Docs-style collaboration used to be nice to have. Now, it's expected. Companies like Quip and Coda have based their business on real-time collaboration features. Atom and Sublime Text have collaborative editing plugins. Even Confluence now supports collaborative editing!

In this talk, you'll learn how to build a great collaborative experience, based on solid fundamental ideas.

Justin Weiss

Justin Weiss writes software at Aha!, the world's #1 product roadmap software and one of the fastest growing companies in the U.S. 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.

Deploying and Running Rails

Moving from operations powered by scripts like Capistrano to containers orchestrated by Kubernetes requires a shift in practices. We'll talk about things beyond "Getting started with Kubernetes" guides, and cover such aspects of operations as gradual deployments, capacity planning, job workers and their safety, and how cloud environments like Kubernetes drastically change how we solve them.

This presentation is about the lessons we learned while migrating hundreds of Rails apps within the organization to Kubernetes.

Kir Shatrov

Kir Shatrov is a Platform Engineer at Shopify where he works on application scalability and resiliency. When not into working, Kir enjoys cooking delicious food and gastronomic travels.

We know how to communicate — we do it on a daily basis, so why spend time perfecting something you feel you already know how to do? Well, what you say and how you say it impacts how you are understood and how others perceive you. In written communication, a single missing comma can wildly change the meaning of what you said. In this talk, we'll walk through 5 tips that improve how you communicate. Using real world examples, we'll show how common these pitfalls are and how to overcome them. You'll leave armed with the ability to positively impact your relationships through how you communicate.

Laura Mosher

Laura is a software engineer with a passion for clean code and oxford commas. She's passionate about creating a better world through code, kindness, and understanding. When she isn't coding, she enjoys rescuing hedgehogs, making things, and playing games.

Authentication is one of the most common features of web applications, so it makes sense to have libraries that provide solutions for this problem. You've probably heard of or maybe used Devise: all you have to do is add it to your Gemfile and run a generator, and you have a robust authentication system.

Behind the scenes, Devise uses Warden to handle authentication. In this talk, I'll explain what Warden is, why it's useful and how Devise takes advantage of it to build the most popular authentication gem for Rails.

Leonardo Tegon

Software Developer who was lucky enough to work with Ruby as his first professional programming language. Passionate about open source, now he works at Plataformatec with software consultancy and open source projects - including Devise. He also loves sports - especially football and basketball - and, of course, coffee.

Reconsidering the Basics

Creating truly 100% accessible websites often requires specialized knowledge of the ins and outs of screen reader settings, browser defaults and HTML quirks, yet most of us still need to google how to turn on a screen reader. We attend "Web Accessibility 101" seminars and workshops over and over but very few of us end up with the kind of specialized knowledge necessary to make truly accessible websites. In this talk, we'll discuss why this is, and how we can eventually get to accessibility 102.

Liz Certa

Liz Certa has been milking her humanities degrees for talk fodder since she entered the tech industry in 2014. Liz is an Angular developer at Vitals and doesn't do as much Rails as she used to, but she enjoys coming to Rails meetups and conferences because the Ruby and Rails communities are so darn nice, and the stuff they work on is just so darn cool. Liz lives in Brooklyn with her very talented developer husband Jon and her dog Milo. Both Jon and Milo are very good boys.

When It All Goes Wrong

Legacy code is unpredictable and difficult to understand. Most of us will work with legacy code, so it’s important for us to understand its major pain points and their underlying causes. You’ ll come away from this talk with practical strategies to help you understand, improve, and even love legacy code.

Loren Crawford

Loren Crawford is a full-time weirdo and part-time software engineer at MailChimp. As a career changer, she works to bring different perspectives into the development process, and help underrepresented groups make their own way in tech. In addition to her love of refactoring and testing, she also loves the German language and her dog, Luna Grey.

Evolving Talent

Currently, our industry has a surplus of bright junior developers, but a lack of open junior positions. Building a developer apprenticeship in your organization is a great way to provide a haven for these talented devs, while simultaneously making your team more productive and easing the pain of hiring.

In this talk, you'll learn from the mistakes I've made and wins I've had in creating an apprenticeship. From pitching the idea to growing your apprentices, you'll gain a step-by-step guide to successfully building your own apprenticeship program.

Megan Tiu

Megan Tiu is a Senior Software Engineer at CallRail that loves solving problems with Ruby and helping other developers grow. She works to make technology more accessible to women and people of underrepresented groups in any way she can. Megan also hopes to pet every dog in existence.

Reconsidering the Basics

Polymorphism is a mainstay of the Ruby on Rails stack, affording us a lean, concise way of relating objects in a dynamic way. Using a candy shop application, this presentation will pragmatically explain and demonstrate polymorphism and its benefits/usefulness in Rails.

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.

Modern Javascript in Rails

How much JavaScript you include in your Rails application can feel like a choice between basically none or a full JavaScript single page application backed by a Rails API. When you have a team of people whose confidence with JavaScript is all over the place, this can feel like an impossible choice. Fortunately, there are many options in the middle that can allow those with less JavaScript confidence to stretch and grow while those with more confidence can build UI components with fewer constraints.

Michael Crismali

I started my life in software at The Starter League before becoming an apprentice at a great Chicago and San Francisco based consultancy called DevMynd. Since then I've moved up to being a senior consultant and have had the opportunity to work on many different apps across many different industries. I've written plenty of Ruby and JavaScript and have spent time in other languages as well. Outside of software, sometimes I perform stand up comedy at open mics around Chicago.

The History of Rails

Come see how Rails has evolved over the years through the lens of introductory Rails tutorials. Marvel at Rails pre-REST, survive the merger with Merb, feel the joy & pain of the then-new asset pipeline, and watch testing techniques grow, evolve, and simplify. Leave with a deeper appreciation for where Rails came from and where it is today.

Michael Hartl

Michael Hartl is the author of the Ruby on Rails Tutorial and founder of

Business and Rails

So you have something new to sell: maybe your first book or a hip new SaaS. How do you decide the price? How do you know you're not overpricing? Or underpricing? Why, oh why, did you ever think to sell something?!

Instead of choosing a number by looking inward at your costs, you can use what programmers use best: an abstraction! You'll learn a model for picking the right price for your product and what that price communicates so you can confidently price your next great invention. You'll leave with an actionable list of next steps for pricing your future projects.

Michael Herold

Michael is the Lead Application Engineer at Flywheel, where he builds a delightful WordPress hosting experience for creatives. He uses Ruby every day to coordinate thousands of servers that run customer sites. Yes, that's right: Ruby. Never fear that you can use your favorite programming language, even when you host PHP-based websites!

He is married to an economist and wants to help programmers better understand the application of economics to their work.

Deploying and Running Rails

In any production rails application’s simplest form, there is one version of the app deployed to a single host or cloud provider of your choice, but what if there were laws and regulations in place that required your application to be replicated and maintained within the geographical boundaries of other countries. This is a requirement of countries that have data sovereignty laws and a regular hurdle to overcome when dealing with sensitive data such as protected health information. This talk provides a case study of how we devised an automatic deployment strategy to deploy to multiple countries.

Mike Calhoun

Hi I’m Mike! I started writing software after earning a Master’s of Library Science from St. John’s University in Queens, NY. Initially, I wrote a lot of PHP but came to really enjoy working in Rails and subsequently supporting and improving Rails applications. When not programming, I spend time in Vancouver, WA with my wife, son, two cats, and our corgi named Ruby.

Testing out of the Box

Stop trying to be a computer; you're a human! You know what humans are good at? Storytelling. Stop trying to write tests just to get a green test suite, and start telling rich, descriptive stories. Once you have a good story, then you can worry about the implementation details (wait, is testing a form of abstraction and encapsulation?!). In this talk, we look at writing tests as simply telling stories to the test suite. By telling stories about the application (methods, controllers, features, &c.) the suite holds the storyteller accountable for making those stories become, and stay, true.

Mike Schutte

I'm a developer at Quikly in Detroit. In 2016, I pivoted my career aspirations from academic sociology to software development (graduate of Turing School in Denver). I have a deep passion for learning, teaching, and writing elegant code for software that improves everyday life. I believe cultivating a perspective around testing that brings developers closer to the perspective of an end-user (via storytelling) helps us write holistically better software.

When It All Goes Wrong

On March 28, 1979 at exactly 4:00am, control rods flew into the reactor core of Three Mile Island Unit #2. A fault in the cooling system had tripped the reactor. At 4:02, the emergency cooling system automatically kicked in as reactor temperature continued to climb. At 4:04, one of the operators switched the emergency cooling system off, dooming the reactor to partial meltdown. Why?

Let’s let the incredibly complex failure at Three Mile Island teach us how to dig into our own incidents. We'll learn how the ideas behind just culture can help us learn from our mistakes and build stronger teams.

Nickolas Means

Nickolas Means is infatuated with disasters of all kinds and the amazing things we can learn from them. When he's not stuck in a Wikipedia binge loop reading about plane crashes, he leads the engineering team at Muve Health, helping build software to improve the joint replacement experience for patients and caregivers. He works remote from Austin, TX, and spends most of his spare time hanging out with his wife and kids or going for a run.

Reconsidering the Basics

Have you written JSON APIs in Rails a few times? Even if you’re escaped implementing a “render: :json” call, some day soon you’ll need to get JSON data out to a native client or your front-end framework. Your Rails apps might change, but the pitfalls for JSON APIs stay the same: They’re hard to discover, difficult to change from the client side, and documenting them is a pain. For your next app, or your current one, let’s consider GraphQL. I'll show you how to implement it in your app and offer real-world advice from making it work in an existing Rails app.

Nick Quaranto

Nick has been writing Ruby for over 10 years. After attending a panel at RailsConf 2008, he started a small website to share gems that turned into Nick is a recovering GIF hoarder and loves taking long walks through codebases. He is a short, sturdy creature fond of industry.

Now that it has become a mature web development framework, Rails is no longer the exclusive realm of burgeoning startups. Healthy small and large businesses have grown with Rails for years. Shrinking and dying companies too. In this talk we'll look at how Rails and its ecosystem of libraries and services can support both newborn and aging apps, and when it struggles to do so.

Olivier Lacan

Olivier likes to use computers to help people and not the other way around. He's worked on Code School for the past six years, created and Keep a Changelog to try and make open source projects more accessible to humans. More importantly, he's the kind person who stops in the middle of a book to figure out the etymology of a cool new word.

When it comes to evaluating candidates for software engineering roles, it's hard to keep up with the latest and greatest techniques. We know logic puzzles don't work. Writing pseudocode on a white board is so tired and cliche at this point that companies brag about not doing that. Teams have resorted to what seems like an obvious choice at first blush: just have the candidate write some code. This new trend may have some unintended consequences, though.

In this talk, you'll learn how to design an interview process which allows you to evaluate candidates without making them code for you.

Pete Holiday

Pete Holiday is an Engineering Manager at CallRail. He's been programming for more than 20 years and took his first engineering leadership role eight years ago. Pete and his wife live in Atlanta with their three dogs, who would absolutely love to lick your face.

Modern Javascript in Rails

Perhaps you've thought about switching to Webpack. Then you open a Webpack config file and your heart sinks; it looks like an alien life-form. You try to get it working, but your old jQuery plugins won't even load in the browser.

Moving from Webpack basics to using it in production means understanding how it works. We'll demystify how Webpack bundles assets for the browser, how it differs from the Rails asset pipeline, and highlight common challenges that may occur coming from Sprockets.

This is the talk we would have wanted to see before recently adopting Webpack in our own Rails app.

Ross Kaffenberger

Ross Kaffenberger loves building things for the web and feels lucky to have been doing so for over ten years. He counts Webpack among his favorite topics to go along with Wes Anderson movies and long-distance triathlons.

Individuals can only advance when they know they are valued, listened to, and understood. Without having lived the same life as them, it's often hard to understand why people do what they do. It requires empathy, and practicing empathy can be tough when someone differs greatly from you, personally or professionally. But, being empathetic can be learned, for instance through method acting.

Let's talk about the fascinating acting techniques of Stanislavski, Strasberg, Adler & Meisner, and learn how you too can employ the Method to better understand (and work with) the people in your life.

Roy Tomeij

Roy Tomeij is a co-founder of AppSignal, the best APM for Ruby and Elixir. At night, he takes acting lessons and has been doing that on and off for the past nine years. He has starred in various plays and has many years of improv experience. During the day, he plays a better version of himself.

Minitest 5 ships with ruby and is the standard test framework for rails. It already provides a traditional unit test framework, spec DSL, mocks, stubs, test randomization, parallelization, machine agnostic benchmarking, and tons of assertions all in under 2kloc. So what would Minitest 6 do differently? Hopefully to the end user, not much will change, and yet it will be worlds apart from Minitest 5. Come see how you can massively speed up your rails test runs and improve your testing practices by upgrading your test framework.

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.

Deploying and Running Rails

A good test suite can help you catch errors in development, but how do you know if your code starts misbehaving in production?

In this talk, we’ll learn about checkups: a powerful and flexible way to ensure that your code continues to work as intended after you deploy. Through real-world examples, we’ll see how adding a simple suite of checkups to your app can help you detect unforeseen issues, including tricky problems like race conditions and data corruption. We’ll even look at how checkups can mitigate much larger disasters in real-time. Come give your app’s health a boost!

Ryan Laughlin

Ryan is a developer, a designer, and cofounder of Splitwise, an app for splitting expenses used by millions of people around the world. He’s grateful to have had opportunities to work in a variety of areas, including API design, ops, security, mobile development, and more. This is his first RailsConf! @rofreg /

Traditionally doing a full stack test of a Rails app with RSpec has been problematic. The browser wouldn't automate, capybara configuration would be a nightmare, and cleaning up your DB was difficult. In Rails 5.1 the new 'system test' type was added to address this. With modern RSpec and Rails, testing every part of your stack including Javascript from a browser is now a breeze.

In this talk, you'll learn about the new system specs in RSpec, how to set them up, and what benefits they provide. If you want to improve your RSpec suite with full stack testing this talk is for you!

Sam Phippen

Sam Phippen is a Senior 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.

Modern Javascript in Rails

An ode to DHH's classic, let's build a blog with a Rails backend using a graphQL API and a React frontend. Through this live-coding session, you will learn how to set up an isomorphic app, the basic concepts of each library, and at the end have a fully functioning blog application! Follow along on your computer or clone the repo.

Sasha Grodzins

As a child, Sasha could be found drawing in coloring books, singing along loudly with the radio, or quietly solving a jigsaw puzzle. In 2014, a miracle happened--Sasha opened her computer's terminal and wrote her first program. That year she enrolled in Dev Bootcamp where she learned the basics of Ruby and Javascript and was excited to start her career. She joined DevMynd Software in 2014 as an apprentice and is continuing to learn the art of consulting and web development.

When It All Goes Wrong

Tracking down bugs can be hard. Tracking down bugs in a codebase touched by 5000 people is even harder. Making heads or tails of an inheritance-happy codebase like Rails can be a nightmare. How do you find where the bug in save is when save is overridden by 15 different modules?!

In this talk, we'll look at the process that goes into fixing a bug in Rails itself. You'll learn about every step from the initial report to when the fix is eventually committed. You'll learn how to navigate Rails' internals, and how to find the source of the problem -- even if you've never committed to Rails.

Sean Griffin

Sean is a committer on Ruby on Rails, the maintainer of Active Record, cohost of The Bike Shed podcast, and the creator of Diesel, an ORM and query builder for Rust. Having spent over a decade in the industry, he now works for Shopify doing open source full time.

Rails and Services

It’s easier than ever to integrate a distributed commit log system like Kafka into your stack. But once you have it, what do you do with it? Come learn the basics about Kafka and event-driven systems and how you can use them to power your Rails services. We’ll also venture beyond the theoretical to talk about practical considerations and unusual operational challenges that your event-driven Rails services might face, like monitoring, queue processing, and scaling slow consumers.

Stella Cotton

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

We are told that junior developers are a secret weapon, but this alleged "competitive advantage" is so elusive! Typical advice about evolving talent can be broad, un-relatable, and impractical. Aren't there any specific and actionable tactics that teams can employ for leveling up new devs? (Yes, there are!)

Sumeet Jain

Sumeet Jain is the Development Director at Unabridged Software, in Omaha, Nebraska. He loves developing for the web, but his latest passion is building teams that grow gracefully and creating software development processes that make everyone's life a little easier.

Webpack integration landed in Rails 5.1 to a bit of excitement and confusion. On one hand, folks who had been using Javascript frameworks like Angular and React now have a clearer way to tie in their client-side application into the asset pipeline. Yet, why would we want to do this? What’s the purpose of adding Webpack to Rails, and what’s the advantage of utilizing it? How does this affect javascript frameworks that aren’t Webpack friendly? In this talk, we’ll explore these ideas as well as the future of client side integrations into Rails.

Taylor Jones

Taylor Jones is a Florida-based Software Developer working at IZEA. He also writes for publications like Codeship and his personal blog at

Evolving Talent

Being a mom is awesome! You finally get to be the one to post a million cute pictures of your adorable baby. It is also one of most challenging and hard things a woman can go through, especially if they're in software.

In this talk you'll hear stories from women in the programming community, struggles they have gone through, and why many of them left their jobs after or during maternity leave (including me). If you want to help your mom friends stick around and feel included, or if you are from a company who wants to support the growth of your mom employees, then this talk is for you.

Tess Griffin

Having moved around a lot, Tess has settled in New Mexico with her husband Sean and her one year old daughter Ruby. She is a web developer at and is a graduate and former assistant instructor the Turing School of Software Design.

Business and Rails

Lying on the beach and enjoying the 4-hour work week: who wouldn't like the recurring revenue stream of a SaaS business? It's why many start building a SaaS company "on the side", only to find out they don't make enough money to buy a latte and fall back to getting paid by the hour. They're stuck on the long, slow Ramp of Death.

Coming to you live from the trenches of running an organically growing SaaS for five years, this is an honest –and sometimes brutal– story of perseverance, sacrifice and reward. Find out how to overcome the ramp, and why it isn't as bad as you might think.

Thijs Cadier

Thijs is a co-founder of AppSignal, hailing from Amsterdam. Ruby developer for thirteen years, Ramp of Death navigator for five.

Business and Rails

Building a business is both mysterious and hard. We can't do much to make it easier, but after 6 years running Test Double, we can make it less mysterious. This talk is a slow-motion Q & A: submit a question to and we'll build a slide deck that gives as many practical (and colorful) answers we can fit in a 45 minute session.

This talk is for anyone whose interest in starting a software company has ever been held back by fear, uncertainty or doubt. It assumes no knowledge of business jargon and will strive to explain each financial concept covered.

Todd Kaufman

Todd Kaufman’s experience spans the arc of startup to enterprise, waterfall to agile, and Java to JavaScript. In the last 20 years Todd has worked professionally as a developer, development manager, project manager, agile coach, salesperson, and most recently an entrepreneur. In 2011 he co-founded Test Double a rapidly growing software consultancy with a bevy of smart, driven and creative people.

Justin Searls

Nobody knows bad code like Justin Searls—he writes bad code effortlessly. And it's given him the chance to study why the industry has gotten so good at making bad software. He co-founded Test Double, an agency focused on fixing everything that's broken about software.

How It Works

Rails is incredibly powerful because of its abstractions. For years, developers have been able to hit the ground running and be productive without having to know the in's and out's of the core computer science concepts that fuel this framework. But just because something is hidden away doesn't mean that it's not worth knowing! In this talk, we'll unpack the CS fundamentals that are used in the Rails router. Together, we'll demystify the graph data structure that lies under the hood of the router in order to understand how a simple structure allows for routing to actually work in a Rails app.

Vaidehi Joshi

Vaidehi is an engineer at Tilde, in Portland, Oregon, 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, and is co-host of the Base.cs Podcast.

Reconsidering the Basics

Rails brings us a lot of useful tools out-of-the-box, but there are missing parts too. For example, for such essential tasks as authorization we are on our own. Even if we choose a trending OSS solution, we still have to care about the way to keep our code maintainable, efficient, and, of course, bug-less. Working on Rails projects, I've noticed some common patterns in designing access systems as well as useful code techniques I'd like to share with you in this talk.

Vladimir Dementyev

A mathematician found his happiness in programming Ruby and Erlang, contributing to open source, mentoring Rails devs and being an Evil Martian. Author of AnyCable and TestProf.