Program

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.

General

Laying the cultural and technical foundation for Big Rails

As applications built on Rails get larger and larger, and more and more engineers work in the same monolith, our community needs to think more about what sort of tooling and architectural changes will help us continue to scale. This talk shares ideas around a toolchain, and more importantly, the social and cultural programs needed to support that toolchain, that can be used to help engineers in an ever-growing Rails codebase continue to have high velocity, manage their complexity, and claim ownership over their own business subdomains.

Play

Alex Evanczuk

Software engineer working on the Product Infrastructure team at Gusto. Living in the beautiful state of Vermont. Excited to learn and share learnings about Rails!

General

Let Your Body Lead: Career Planning With Somatics

How do you build a career you love? As engineers we try to make choices based on data, metrics, research. We make spreadsheets and “Compare Features.” And yet...so often we end up unhappy. All that careful research somehow doesn’t help.

But what if you made decisions a different way? What if you had a sophisticated decision-making apparatus to guide you, built precisely to your needs -- an always-available guide?

You do! It’s called your somatic intelligence. With practice you can learn to tune into it and let your body lead the way to satisfaction and fulfillment -- in every area of your life.

Play

Amy Newell

Amy Newell has been a software engineer since 1999, and has been programming in Ruby since 2007, when she brought her three-month-old daughter to her first Ruby meetup. She is VP of Engineering at ConvertKit. She writes and speaks about mental health, empathy, managing engineers, the tech industry, fashion, and Taylor Swift. She has bipolar disorder. She’s also a poet, mom, food snob, and boot fanatic.

General

Upgrading Rails: Everyone can do it and here’s how

Ever felt overwhelmed when figuring out how to upgrade a Rails app? Unsure where you should begin? We’ll talk about how upgrading should be treated as a feature, and how you can get buy-in from management for upgrading Rails. Have you heard about how GitHub or Shopify uses dual-booting to run two versions of Rails at once and wondered how that works? We’ll talk about three approaches you can use to upgrade your app. You’ll leave this talk with takeaways you can put into practice for your next Rails upgrade.

Play

Andrea Fomera

Andrea Fomera is a Senior Software Developer who finds enjoyment in updating dependencies and crafting high quality, robust and maintainable code. She enjoys sharing what she knows through courses and screencasts, and when not behind a computer you can find her enjoying the beautiful state of Colorado.

General

Puny to Powerful PostgreSQL Rails Apps

This talk covers 5 challenging areas when scaling Rails applications on PostgreSQL databases. From identifying symptoms to applying solutions and understanding trade-offs, this talk will equip you with practical working knowledge you can apply immediately. This talk covers topics like safe migrations, understanding database connections, query optimization, database maintenance, and database replication and partitioning.

Play

Andrew Atkinson

Andrew Atkinson is a Software Engineer with over 10 years of experience building Ruby on Rails applications with PostgreSQL at companies like Microsoft, Groupon, and LivingSocial. Currently he works as a Staff Software Engineer at Fountain on the Core team building and scaling Rails Applications on PostgreSQL databases used by millions of people around the world.

General

Computer science you might (not) want to know

One common recommendation for aspiring software developers is to pursue a degree in Computer Science (CS). While CS curricula do often cover practical software development skills, many departments heavily prioritize more academic and theoretical topics. This begs the question: how relevant is a CS degree to the day-to-day work of a professional developer?

We’ll look at a few topics that are often included in the first half of an undergraduate CS curriculum. We’ll examine this information through two lenses: why it can be helpful and why it might not be all that relevant for a typical Rails dev.

Play

Andy Andrea

Andy (he/him) has been working at SciMed Solutions in Durham, NC since graduating college in 2014 with degrees in astronomy and computer science. He’s extremely passionate about increasing access to software development as a career and loves geeking out about outer space, ballroom dancing and Star Wars.

General

The Mrs Triggs Problem

"That's a good suggestion Mrs Triggs, perhaps one of the men in the room would like to make it?"

As a society we have an attribution problem. People who look like me get it easy. Join me to explore how we can push back on the default stories & myths of who is providing value in our community.

Warning, may contain content that will make you uncomfortable about your own past behaviour. But you'll leave better able to provide a better industry for your fellow humans.

Play

Andy Croll

Product -focussed CTO, Conference Organizer, Author, Speaker, Bootstrapper & Parent of Twins.

General

Gem install: What could go wrong?

The open source gem ecosystem is a major strength of Ruby and it’s not uncommon for a production Rails application to depend upon hundreds of gems. But what are the risks of installing a gem and having it in your Gemfile?

In this talk, we’ll cover what “bad things” can actually happen when you install a gem. We’ll also talk about the ways of preventing these attacks from occurring in your application dependencies (so you can sleep well at night).

Play

Ashley Ellis Pierce

Ashley is a Software Engineer at Shopify. She loves being involved in open source, helping to get new and diverse people into the development community, and passing on what she's learned to others.

Betty Li

Betty is a developer at Shopify, a self-proclaimed emojineer, and a bubble tea enthusiast. Some say she posesses the curiosity and artistic abilities of a 5 year old. But like Meilin Lee, she accepts and embraces all labels .

What’s on the top of her mind right now: Have you enabled MFA on your RubyGems account yet?

General

Getting Good Ideas Adopted

One of the most rewarding aspects of being a software engineer is seeing our ideas transform from thought into working code. But what if our team (or manager) doesn't think an idea is good? It's frustrating to propose a solution and have it rejected. So what do we do? What are some ways we can help our teams and bosses more clearly understand our vision? How can we de-risk technical change to be less controversial? And importantly: how do we do this collaboratively and productively? We'll talk about technical and interpersonal strategies we can use to help get our good ideas adopted.

Play

Bryan Woods

Co-Founder & CTO, Rhino

General

Cultural Fit + Culturesmithing: Everyone Influences Culture

“Toxic culture” is, by far, the number one reason that people are quitting their jobs. People are no longer willing to work at organizations where they don’t feel valued, respected, and included. Economists have dubbed this “The Great Resignation.” In this talk you will learn how this situation applies to you and what you can do to make things better. You will learn a framework for evaluating whether an organization’s culture meets your personal needs, and you will learn 20 immediately implementable techniques to improve this culture.

Play

Casey Watts

Casey Watts! focuses on the human side of technology, bringing together his backgrounds in software development and psychology. Casey has worked in software development for 10-15 years, including at Heroku and the US government. Casey is the author of the applied psychology book Debugging Your Brain. Casey can play over ten musical instruments, and he owns one in every color of the rainbow (recently a white accordion!). Casey has been part of the Rails community since 2010.

General

From reactive to proactive, an accessibility journey

What is proactive accessibility? Learn about the transformation process, and take away lessons learned from the push and pull in getting a company to adopt change.

Dive into real processes and practices that you can begin using on your teams today, whether it is grassroots or top-down driven, and how those help you become more effective.

Play

Chandra Carney

Chandra loves dogs deeply and is passionate about accessibility both in and out of work. She enjoys walking around new (and old) cities, taking in the details, and exploring hidden gems.

General

Scaling Rails with JRuby in 2022

JRuby is back in 2022 with Ruby 3.1 support and new work on performance and scaling. For over a decade, Ruby users have turned to JRuby to get access to world-class garbage collection, native JIT compilation for increased performance, and true parallel threading. Today, you can take your Rails app and reduce both latency and resource costs by hosting a single JRuby process for all your concurrent users. JRuby is the only alternative Ruby deployed at scale, powering companies all over the world in mission critical areas. Come see how JRuby can help you scale today!

Play

Charles Oliver Nutter

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

General

Learn it, Do it, Teach it: How to Unstick Our Middle Devs

One definition of the middle: a difficult or unpleasant position. Yuck! It certainly can feel that way for mid-level developers. Fortunately, we've uncovered a model that will help managers create an environment where their devs can thrive. Our Learn it Do it Teach it (LDT) model will foster more learning, while keeping their hands on the code, and adding in the magic touch, teaching. This talk will demonstrate how managers can implement a LDT model into a developer’s day to day. Growth plans like this model will allow your team to move from mids into seniors both faster and more confidently.

Play

Chelsea Kaufman

Chelsea Kaufman is the Co-Founder and CEO of LEARN Academy and The Software Residency- As the leader of this San Diego based tech start-up she sets strategy and vision for the company, builds and maintains the company culture, and provides the tools the staff needs to do their job to the best of their abilities. Prior to her role at LEARN, she spent a decade in the theatre arts, producing and directing theatre. She is a theatre kid at heart.

General

Your TDD Treasure Map

We know testing is vital and makes refactoring painless. But how to set sail to that TDD treasure? Yarr, we need to test to get experience, but need experience to test. Let’s draw a map with simple strategies for identifying test cases and building a robust test suite. X marks the spot w/ TDD tools for newbies and seasoned pirates alike.

Play

Christopher "Aji" Slater

I started my adult-like career years as a theatre professional, a vaudevillian to be specific. Toured with Ringling Brothers, juggled through Canada, and made corporate types laugh at conferences. But I spent more time making my website than performing. In 2015 I got serious about computers as a focus and went to Dev Bootcamp and learned Ruby, Rails, and js. I've been working as a professional developer ever since and haven't looked back. I might not be Banksy.

General

Don't page me! How we limit pager noise at New Relic

New Relic's largest monolith handles 200k req/min and communicates with >40 external services and 11 mysql databases; this should result in constant downtime. Being mindful and alerting on the right things has been critical for us.

This talk will cover a successful process for identifying trustworthy data, refining alert conditions, and what kinds of checks to page on.

Play

Chuck Lauer Vose

Chuck Lauer Vose is a nerd from Florida who has been programming in Rails since pre-1.0. Currently he works at New Relic, but he loves teaching and founded the Portland Code School. He also loves mechanical keyboards, speed cubes (rubik's cubes), magnets, and ducks.

General

Unboxing Rails 7: what's new in the latest major version

Rails 7.0 removes webpacker and spring from the default stack, adds encrypted attributes, allows for asynchronous query loading, changes autoloading defaults, attaches comments to Active Record queries, and introduces new tools for front-end development.

Learn about these and many other Pull Requests that were merged in rails/rails in 2021. Understand the motivation behind some architectural decisions. Review the process to upgrade from Rails 6.1 to Rails 7.

Play

Claudio Baccigalupo

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

General

"Build vs Buy" on Rails

Your SaaS app is adding new engaged users every day and your roadmap is growing with features to delight them! Users are requesting new 3rd party integrations, more powerful search, reporting capabilities, and live chat, oh my!

Should you try and build all of these features? Should you work with partner services to add these features? The answer: it depends!

In 2022, the classic "Build vs Buy" question is more nuanced than ever and we'll dig into the pros and cons when building (or buying) on Rails.

Play

Colin Loretz

Colin has been building in, on, and around APIs for over a decade and believes APIs are the lingua franca of the modern technology stack. He is currently a software engineer on the Ecosystem team at Orbit: Mission Control for your Community.

General

A Rails performance guidebook: from 0 to 1B requests/day

Building a feature is not good enough anymore: all your work won't be of use if it's not performant enough. So how to improve performance? After all, performance is not an easy discipline to master: all slow applications are slow in their own way, meaning that there is no silver bullet for these kinds of problems.

In this presentation, we will guide you across patterns, strategies, and little tricks to improve performance. We will do that by sharing real stories of our daily experience facing and solving real performance issues in an application that daily serves billions of requests per day.

Play

Cristian Planas

I am a software engineer currently based in New York City. I have been working primarily with Rails since the release of Rails 3, more than 10 years ago. Performance optimization has been an obsession for me since I founded my first start-up as a solo engineer in 2012. Currently, I am a group tech lead and senior staff engineer at Zendesk, where I focus on performance optimization.

General

Reflecting on Active Record Associations

Active Record associations seem magical—add a has_many here, a belongs_to there, and suddenly your models are loaded with behavior. Could it be magic, or is it plain old Ruby with some thoughtful design and a bit of metaprogramming? In this talk we'll study Active Record associations by writing our own belongs_to and has_many macros. We'll dynamically define methods, cache query results, replace a a Relation with a CollectionProxy, and automatically prevent N+1 queries with inverses. You'll leave with a deeper understanding of associations, and a new appreciation for their magic.

Play

Daniel Colson

Daniel Colson is a software developer on the Ruby Architecture team at GitHub. He is an active contributor to Ruby open source, and was formerly a member of the Rails issue team, and a maintainer of factory_bot and factory_bot_rails. Daniel was once a composer and professor of music, and you are likely to hear him humming his favorite dodecaphonic tunes.

General

Your Service Layer Needn't be Fancy, It Just Needs to Exist

Where would you put your business logic if not in Active Records? The answer is a service layer. Your service layer provides a seam between your user interface and your database that contains all the code that makes your app your app. This single design decision will buoy your app's sustainability for years. You'll learn why this is and how to start a service layer today without any patterns, principles, or fancy libraries.

Play

David Copeland

David Copeland is a programmer and author. He's the author of "Sustainable Web Development with Ruby on Rails", “Agile Web Development with Rails”, and "The Senior Software Engineer". He helped build the engineering team at Stitch Fix from 3 engineers to over 100, through fast growth, IPO, and International Expansion. He's worked at LivingSocial and Opower, and is currently CTO at mental health startup Mood Health.

General

Functional Programming in Plain Terms

Have you ever wanted to know what a monad is? How about a functor? What about algebraic data types and parametric polymorphism? If you've been interested in these ideas but scared off by the language, you're not alone: for an approach that champions composing simple pieces, functional programming is full of complex jargon. In this talk, we'll cover these topics from a Ruby and Rails perspective, composing small ideas in everyday language. Before we're through, you'll have a rich new set of FP ideas to apply to your projects—and you'll finally learn what a monad is (hint: it's not a burrito).

Play

Eric Weinstein

Eric Weinstein is the author of Ruby Wizardry (No Starch Press), an illustrated guide to the language for children. He enjoys writing Ruby, Elm, Elixir, and Rust, as well as working on problems at the intersection of programming and philosophy (such as machine ethics). He lives in Los Angeles with his wife and son.

General

GraphQL and Rails beyond HTTP APIs

Are you considering building a GraphQL API for your Rails project or already have one? Do you know GraphQL can be leveraged beyond HTTP APIs?

We will explore how GraphQL does not depend on HTTP and can be used as a secure and structured data layer for Rails projects. You will learn to deliver real-time GGraphQL through Websockets, Webhooks containing all the data you need, provide data for WebAssembly code and parallelize queries exporting large amounts of data. Every Rails project needs consistent access to data and GraphQL brings solutions beyond the typical HTTP API.

Play

Gui Vieira

Gui Vieira is a senior software developer at Shopify’s API Patterns team. He loves building tools to help developers turn their ideas into products that solve real-world problems for businesses of all sizes. He grew up a few blocks from a Formula 1 circuit and has been a fan of this sport ever since.

General

Ooops! You named it wrong. What now?

You hear everybody talk about the newest feature to Widgets but you can’t find a single model reference to that in the code. What happened? Sometimes the business changes aren’t reflected in the code. Sometimes, you're missing information or the code grows into something different. What do you do? ‘Cuz you still gotta ship.

Buckle up for a fast paced ride through the opportunities and pitfalls faced when you find yourself in this position. Through success and failure stories, learn how to leave space for names to breathe, make changes safely, and walking that fine line of changing just in time.

Play

Ian Norris

Ian currently manages a team of product developers who support the crowdfunding space at BackerKit. He is managed by a cat named Winnie. Winnie helps Ian pursue technology escapades, create new cat card games, and support new and current developers in the next step of their career. Also, he loves to talk about domain driven design, sustainable refactoring, and roleplaying games.

Melissa Hunt Glickman

Melissa is a Senior Developer focused on doing good things. She is a champion of D&I, an evangelist for pair programming, & an enthusiastic mentor. Melissa combines her passions in her work creating innovative digital therapeutics. Today she works at AppliedVR bringing to market the first ever virtual reality-based treatment to receive FDA approval. Melissa is a lifelong learner constantly in pursuit of knowledge. In her spare time she enjoys spending time with her husband, children, & family.

General

Call me back, Postgres

Rails' Active Record callbacks provide a simple interface for executing a process when something happens to a database record. However, sometimes Active Record callbacks aren’t the best solution available. For those cases, this talk introduces a great alternative: Postgres' trigger functionality, a way of implementing callbacks at the database level. Coupled with Postgres' listen and notify features, you can develop creative solutions for making your Rails app the center of an otherwise complex system, managing data syncing and other processes seamlessly, regardless of consumers of the app.

Play

Ifat Ribon

Ifat is a principal architect at LaunchPad Lab, a digital product agency headquartered in Chicago. Ifat brings her consulting background to software development, and enjoys collaborating with others to bring new digital products to life. Her coworkers describe her as a “problem-solver to her core,” with the ability to see multiple solutions in real-time, and support her team in executing on technical decisions. Outside of work Ifat is an avid runner, with a fondness for Chicago's lakeshore path.

General

If You Know Heroku, You Can Use Kubernetes

You've probably heard "Kubernetes is overcomplicated! Just use Heroku!" But it turns out that, while Kubernetes can be complicated, it doesn't have to be. In this talk, you'll learn how to deploy with Kubernetes in a way that is nearly as friendly as with Heroku.

Play

Jamie Gaskins

Jamie (he/him) is a Principal Site Reliability Engineer at Forem/DEV

General

Your test suite is making too many database calls!

On a recent project, I sped up a test suite 15% by making a change to a single factory. This suite, like many others (including yours!), was making way too many database calls. It’s so easy to accidentally add extra queries to factories and test setup and these can compound to shockingly large numbers.

The chaos is your opportunity! Learn to profile and fix hot spots, build big-picture understanding through diagrams, and write code that is resistant to extraneous queries. This talk will equip you to take back control of your build times and maybe impress your teammates in the process.

Play

Joël Quenneville

Joël is a developer at thoughtbot's Boost team. He is constantly looking for ways to improve the developer experience and is a fan of Ruby's focus on developer happiness. When away from his computer, you'll find Joël buried in a history book or exploring the many neighborhoods of Boston.

General

Experimental Patterns in ActiveRecord

ActiveRecord provides a great deal of flexibility and speed of implementation for developers making new apps. As our teams and codebase grow and our services need to continue to scale, some of the patterns we use can start to get in our way. We've seen a bit of that at GitHub, and as a result have been experimenting with some new ways to work with ActiveRecord queries, reduce N+1s, and isolate model details.

In this talk, I'll go over some the problems we've been facing, cover how we've been addressing them so far, and show some new experiments & patterns I've been working through.

Play

John Crepezzi

John is a Principal Software Engineer at GitHub. He is the author of several popular Ruby gems including the ice_cube recurring date library. He is also the creator of the open source pastebin software hastebin. He enjoys speaking and blogging about code, learning new things, and writing great software.

https://github.com/seejohnrun http://johncrepezzi.com

General

Do You Trust Me?

I've got a deal for you. You give me some trust, I'll give you some time back. No strings attached.

Trust is core to working on a team. We give a little trust, so we can save time. We use systems to create/protect/and outsource trust: PRs, pairing, code cov, type systems, etc. Join me for an exploration of trust in engineering, the psychology of trust, its relationship to time, and how we can have better trust rituals when we reframe the goal. So give me a little of your time and I'll teach you a little about trust. Do we have a deal?

Play

John DeWyze

John is a ruby developer at Shopify in Chicago. He is a cares about healthy teams and the human side of engineering. He cannot draw, sing, paint, or play an instrument, but sees a keyboard and a terminal as his palette for making things. He loves being a dad, playing bridge, and is an amateur pizzaiolo.

General

The Queue Continuum: Applied Queuing Theory

A Star Trek themed exploration of queuing theory and scaling applications with parallelism and concurrency. A general overview of the differences between parallelism and concurrency as well as when to apply more threads or more processes. We’ll go over examples of sidekiq and puma with different concurrency settings in various IO scenarios.

Play

Justin Bowen

With over a decade of experience as an engineer contributing to startups in roles from senior software engineer to CTO, Justin has no degrees, but believes the best skills are humility and knowing that there is always more to learn. On the side of his day jobs, Justin has spent the past five years building smart cameras integrated with machine learning algorithms for the agriculture industry. He would like to show other Rails developers when and how to apply machine learning to their work.

General

Geolocation EXPLAINed

How do you find the location of someone visiting your site? And, how do you do it fast? If you've ever been curious about how analytics services can place your site visitors on a map, or about how to analyze and improve a slow running query, then this talk is for you!

In this session, you'll learn about IP address networking, fundamental database operations, and query performance tuning. We'll develop a geolocation system from the ground up, and make sure it's running lightning fast along the way.

Play

Kevin Lesht

Kevin is a Senior Software Technical Lead working out of Chicago, Illinois, for Home Chef, a meal kit delivery company. He is the host of the Day as a Dev podcast, where he interviews developers from all walks of life, to offer students and those interested in tech, a practical look at life in the industry. Previously, he co-founded ZeroSleep Designs, a digital design agency, and worked with dozens of clients to bring their ideas online.

General

Service Denied! Understanding How Regex DoS Attacks Work

Did you know that people can knock your Rails application offline just by submitting specially formatted strings in a form or API request? In this talk, we’ll take a look at what’s really going on with a regex denial of service (DoS) attack. We’ll take a peek into the CRuby regex engine to see what it’s really doing when we ask it to match against a string. With a basic understanding of how regular expressions work, we can better understand what these attacks do, why they tie up so much CPU, and what we can do to guard against them.

Play

Kevin Menard

Kevin is a Staff Engineer at Shopify where he works on TruffleRuby as a member of the Ruby & Rails Infrastructure team. He’s been involved with the Ruby and Rails community since 2008 and has been doing open source in some capacity since 1999. In his spare time he’s a father of two and enjoys playing drums.

General

Browser History Confessional: Searching My Recent Searches

We all only have so much working memory available in our brains. Developers may joke about spending their day composing search engine queries. The reason it's a joke is because of the truth behind it. Search-driven development is a reality.

Join me, and my actual search history, on a journey to solve recent challenges I faced. I'll categorize the different types of information I often search for. You'll leave with tips on retrieving the knowledge you need for your next bug, feature, or pull request.

Play

Kevin Murphy

Kevin is a Software Developer who lives near Boston, Massachusetts.

Consulting a search engine for Kevin Murphy will show luxury hair care products, an actor, and a University of Chicago Economist. None of that information has much to do with me, unfortunately.

General

Testing legacy code when you dislike tests (and legacy code)

Are you supporting legacy code? Would you like to stop? A good testing strategy can transform legacy code into living code that is resilient and easy to evolve.

Learn why legacy code is so difficult to maintain and identify where tests can make the most impact. Not just any tests, though! We'll dive into the characteristics of high-value versus low-value tests and learn techniques for writing tests that minimize the cost of change.

Developers of any experience level can benefit from these concepts. Familiarity with Rails and an automated testing framework is helpful but not required.

Play

Maeve Revels

Maeve is a Principal Software Engineer at Aha!, where she focuses on building lovable infrastructure and optimizing application performance as a member of the platform team. She has 20 years of software engineering experience, which makes her an expert in writing legacy code.

General

A Rails Developer’s Guide To The Ruby VM

What happens under the hood when you run a Ruby script as simple as puts “Hello World!”?

Time to switch gears from the Rails-level of abstraction to a lower one and dive into some Ruby internals. We’ll be learning about how the Ruby code you write gets compiled and executed, then zoom in to the VM-level – what VMs are and what they do, and how the Ruby VM works. You’ll walk away with a better understanding of how Ruby and Rails works as a whole. No low-level systems knowledge needed!

Play

Maple Ong

Maple is yet another software developer without a formal education in computer science. She first got into programming when writing a Python script to automate (what would have been) a mundane research data cleanup. Now, Maple works on the TruffleRuby team at Shopify and previously on Packwerk, a Ruby gem to enforce modularity in Rails applications.

General

Come on in! Making yourself at home in a new codebase

"Welcome! We're so excited to have you 🤗 please excuse the mess." – if a codebase could talk

When we join a new team or start a new project, we have to onboard to the codebase. Diving into code that we're unfamiliar with can be stressful or make us feel like we don't know what we're doing. And the longer the codebase has been around, the more intense those feelings can be. But there are steps we can take to understand new code and start contributing quickly. In this talk, we'll cover how to build our code comprehension skills and how to make our own code welcoming to guests in the future.

Play

Mercedes Bernard

Mercedes Bernard is a Principal software engineer with Cloud City, a full-service design and software consulting firm. She is an experienced consultant specializing in web development and dedicated to team enablement. As an engineering leader, she strives to foster an environment where each individual’s unique set of strengths and ideas have space to grow and better the organization. Outside of work, she likes to unplug and enjoys crafting: spinning yarn, crocheting, and most recently pottery.

General

The Little Engines That Could

Rails Engines. It’s more than just a cute name made up of two words both related to trains.

Are they plug-ins? Are they microservices? When do we use them? How do we implement them? Why aren’t they used more often?

Those are the questions I wish were answered for me when I first learned about Rails Engines. Inspired by Wired’s Explain In 5 Levels series, we will explore Rails Engines and address these quandaries using a variety of techniques, breaking down what engines are and how and when to use them.

Play

Mina Slater

Since transitioning from a career in theatre management by way of Northwestern Coding bootcamp in April of 2018, Mina has developed as Engineer and Consultant, with specific interest in the backend and Ruby On Rails. From her former career as a Stage Manager, she brings extensive leadership skills and ability to work with a gamut of personalities. In her personal time, she enjoy reading and talking about books (@prismaticpages on IG), snuggling with my dogs, and running long distances.

General

RAILS_ENV=demo

Today’s the day. You’ve prepared your pitch, deployed a special copy of your app, and confirmed—in a trial run—that your walkthrough is ready for a live audience. But, now, when you attempt to log in, something breaks. Flustered, you debug, apologize, and debug some more, before finally calling it quits. Next time, you’ll bring a prerecorded screencast... 😮‍💨

What could’ve been done to make the app more reliably "demoable"? Join us, as we use "stateful fakes" and "personas" to produce a testable, maintainable, and failure-resistant "demo" deployment, with production-like uptime guarantees!

Play

Nathan Griffith

Nathan built his first Rails application 14 years ago and hasn't been able to stop since (help!). By day, he is a Staff Engineer at Betterment, focused on wrangling cross-cutting platform concerns and on coaching engineers. By night, he sings karaoke. @smudgethefirst / ngriffith.com

General

Ruby Archaeology

In 2009 _why tweeted: "programming is rather thankless. you see your works become replaced by superior works in a year. unable to run at all in a few more."

I take this as a call to action to run old code. In this talk we dig, together, through historical Ruby. We will have fun excavating interesting gems from the past.

Further, I will answer the following questions:

  • What code greater than 12 years old still runs in Ruby 3.1?
  • What idioms have changed?
  • And for the brave: how can you set up an environment to run Ruby 1.8 code from ~2008 on a modern machine?
Play

Nick Schwaderer

Nick is a Senior Production Engineer at Shopify. He digs into Ruby lore frequently with the PastRubies newsletter. Nick has worked on projects with Ruby to help forecast pain for individuals with chronic illness and assist in communications during a natural disaster.

General

Pictures Of You, Pictures Of Me, Crypto Steganography

I was puzzled when a friend sent me a Buffy the Vampire Slayer picture out of the blue but, knowing that friend is an oddball, thought nothing of it. Days later, again without warning, a Babylon 5 picture. A few days after that a picture from Firefly. Then he repeated the pictures. A cryptic comment led me to understand that there was more to them than met the eye. Come learn the history, applications, and math behind crypto steganography how unravelling the mystery of the pictures culminated in the resolution of a 15 year rivalry when the US Olympic men’s curling team won the gold in 2018.

Play

Sean Marcia

Sean Marcia, pronouns he, him, his, founded Ruby for Good in 2013 to fill the gap created by inaccessible and uneconomical technology solutions for nonprofits. He built an inclusive community of gooders—technologists determined to make the world a better place—who build open source, technology solutions for individuals and nonprofits serving vital missions. Sean is a passionate zymurgist, avid coffee roaster, enthusiastic writer of screenplays, and connoisseur of practical jokes.

General

O(1), O(n) and O(#$*&!)

Reasoning about the performance of your code doesn't need to require a PhD in computer science or specialized tooling - We'll learn how to quickly recognize and diagnose common performance issues like excessive algorithmic complexity and IO waiting using OpenTelemetry compatible tools. Then we'll fix those issues, and ensure that they stay fixed using automated performance testing, even as your application grows.

Play

Stephen Prater

Prater has been writing Ruby since 2006, and helping businesses scale Rails for most of that. He is currently a Staff Developer at Shopify with the CX RnD team, where he works on developing the tools that support Shopify Merchants.

General

How music works, using Ruby

That strange phenomenon where air molecules bounce against each other in a way that somehow comforts you, makes you cry, or makes you dance all night: music. Since the advent of recorded audio, a musician doesn't even need to be present anymore for this to happen (which makes putting "I will always love you" on repeat a little less awkward).

Sound engineers have found many ways of making music sound good when played from a record. Some of their methods have become industry staples used on every recording released today.

Let's look at what they do and reproduce some of their methods in Ruby!

Play

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. Been producing music as a serious hobby for a couple of years now, and using Ruby as a way of actually learning to understand what I'm doing.

General

Leveling Up from Planning to Production

The biggest difference between a mid-level engineer and a senior engineer is the scale and scope of the work they're responsible for. How do you dive into complex tasks, report progress to project leadership, and stay focused with so many unknowns?

These are the questions I've continued to ask myself as I grow in my career. In this session, we'll explore the tools myself and other senior-level individual contributors use to shape our work from project inception to delivery.

Play

Thomas Countz

Thomas is a member of the Ruby Core team at Zendesk where he gets to dive into all things Ruby and Rails. In his free time, he loves to hack away on hardware projects, play board games, and go hiking in the forest with his husband. His independent studies have three purposes: to make, to learn, and to share.

General

The pitfalls of realtime-ification

Building realtime applications with Rails has become a no-brainer since Action Cable came around. With Hotwire, we don't even need to leave the comfort zone of HTML and controllers to introduce live updates to a Rails app. Realtime-ification in every house!

Switching to realtime hides many pitfalls you'd better learn beforehand. How to broadcast personalized data? How not to miss updates during connection losses? Who's online? Does it scale?

Let me dig into these problems and demonstrate how to resolve them for Action Cable and Hotwire.

Play

Vladimir Dementyev

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

Explain It Like I'm Five

Don't touch that!

Ruby on Rails is a huge framework. There are modules, classes, established conventions, and a slew of code that's meant to be off-limits. But, what if we took our ornery childish self and played around? This is a talk about strategies for debugging, taught through the lens of experimentation and childish play. In this talk, we will override, extend, and disable all sorts of Rails internals and see what happens.

Play

Adam Cuppy

Adam is the co-founder of ZEAL, executive dad, and 40-something Ironman triathlon finisher. Over the last few years, he's spoken on mechanical confidence, the development process, and the practice of software engineering. He's now a father of two, which informs a lot about what he's talking about now.

Explain It Like I'm Five

ELI5: A Game Show on Rails

‘Those who know, do. Those that understand, teach.’

We might know our way around the classic conventions of our beloved Ruby on Rails, but do we understand them enough to explain those concepts to our peers? In this interactive (participation optional!) game show session, let’s find out!

After we quickly discuss some of the philosophies of teaching, we’ll divide up into teams and play a Jeopardy! meets Catchphrase hybrid game… with a few surprises along the way! Beginner, intermediate and advanced Rails-devs are welcome, and Portland-themed prizes will be awarded to the winners.

Play

Andy Glass

Andy is a Brooklyn-based Ruby On Rails dev, entrepreneur, maker, U.S. Open Ballperson and Guinness World Records Adjudicator. He loves 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 immigrants to exercise their rights. He was recently on The Price is Right, but more excited to be at RailsConf to host a Rails-themed game show! Catching him biking around Portland!

Explain It Like I'm Five

Spacecraft!: Maintaining Rails apps for fun and profit

Join us for an allegorical journey aboard the spacecraft Legacy, where the astronauts desperately need to update their aging infrastructure. Their leader, a brave spaceperson named Yuki, knows these repairs must be completed before the team gets hit by a series of feature request asteroids. This talk is an ELI5 journey through the various strategies around assessing, improving, and bullet-proofing Rails apps in need of some cosmic maintenance.

Play

Annie Lydens

Annie Lydens is currently a developer at Initialized Capital, where she works on a legacy Rails codebase. Prior to Initialized, Annie worked at Guild Education, thoughtbot, and Techstars. She has worked on projects for government, enterprise, education, and entertainment clients. She generally enjoys spelunking around older codebases. In her free time, she enjoys painting, riding her bike, and karaoke.

Jenny Allar

Jenny is a mom, wife, and senior software engineer located just north of Denver, CO. When she's not writing Rails code for Guild Education, she can be found 3D printing, propagating succulents, or doing home DIY projects. She's a 2014 graduate of Galvanize's Full-Stack Bootcamp, a former web development instructor, and a freelance technical interviewer.

Explain It Like I'm Five

Hold my thread: concurrency in Ruby

JavaScript has async and Ruby has…what exactly does Ruby have?! What is the difference between parallel, concurrent, and asynchronous execution of programs? If you have asked yourself these questions, this talk is for you! Together, let’s dive into the world of concurrent execution of computer programs. We’ll explore the vocabulary, general concepts, and inner workings of a computer before we dive into Ruby’s specific implementations of concurrency in its various forms. Finally, we will look at performance improvement considerations and shed light on the pros and cons of concurrency.

Play

Clara Morgeneyer

Clara started a career in law, but decided solving problems in Ruby was more fun instead. She began her coding journey in a bootcamp in 2017, and then turned her new knowledge into multinational roles as a teacher, freelancer, and software engineer. She lives in Seattle, WA, USA where she regularly enjoys taking pictures of the city, going for hikes, tweeting for WNB.rb, or being in front of a computer (presumably working on a Rails app).

Explain It Like I'm Five

Rails C With Me: The Interactive Console As A Superpower

Spinning up the rails console can be a quick way to answer a question with a back of the envelope calculation. But, what else can we use it for, and how does it work? Allow me to show you new ways to leverage the console's features and become an even more expert debugger. You'll leave with some simple tactics to save you time and write more performant code. While you're here, we'll look under the hood to see how the features of the console are encoded and we'll trace back the history of these libraries to see how they arrived in our Rails application.

Play

Sweta Sanghavi

Sweta is a rails developer, plant mother, and occasional Berkeley forager. She enjoys all that can be revealed from seemingly simple places when you approach them with curiosity. She enables creators to make their crowd funded dreams a reality at BackerKit.

Make a Switch

Event Streaming on Rails

Pop quiz: How do you best make one Rails app communicate with another? How do you split one big Rails app into two smaller ones? How do you switch from a Rails app to a constellation of Rails services? Event streaming provides the most robust answer. Simple but powerful Kafka streams unlock a world of capabilities with their durability and consistency, but integrating with Rails poses challenges. Join us and learn simple reading and writing to Kafka with Rails, broader distributed systems design, and the magical transactional outbox. You'll leave with the knowledge you need to make the switch.

Play

Brad Urani

Brad Urani loves Rails, Buffalo wings and vintage wristwatches. He believes happiness is directly correlated with the size of your .vimrc and refuses to buy into YAGNI. When not skiing, beating his friends at poker or losing to them at chess, he's Principal Engineer at Procore in Austin, TX

Make a Switch

Kuby: Active Deployment for Rails Apps

One of the Rails mantras is "convention over configuration," sane defaults that limit the cognitive overhead of application development. It's easy to learn and easy to build with... right up until you want to deploy your app to production. At that point, the hand-holding ends. Like the Roadrunner, Rails stops right before the cliff and lets you, Wile E. Coyote, sail over the edge. We have active record for interacting with databases, active storage for storing files, etc, but where's active deployment? Come learn how Kuby, a new deployment tool, is trying to bridge the gap.

Play

Cameron Dutro

Cameron Dutro currently works on the Design Infrastructure team at GitHub. He's been programming in Ruby and using Rails for the better part of eleven years and has held previous positions at Salesforce, Lumos Labs, and Twitter. When he's not reading about, using, or working with technology, Cameron can be found hiking in the hills behind his house or hanging out at home with his wife, two daughters, and cat.

Make a Switch

Caching Without Marshal

Marshal is Ruby's ultimate sharp knife, able to transform any object into a binary blob and back. This makes it a natural match for the diverse needs of a cache.

But Marshal's magic comes with risks. Code changes can break deploys; user input can trigger an RCE.

We recently decided these risks were not worth it. Breaking with convention, we migrated the cache on our core monolith to MessagePack, a more compact binary serialization format with stricter typing and less magic.

In this talk, I'll pry Marshal open to show how it works, how we replaced it, and why you might want to do the same.

Play

Chris Salzberg

Staff Engineer @ Shopify from Montreal, living and working in Japan. I'm the author of Mobility, a pluggable translation framework for Ruby, and committer to many open-source projects including Rails.

Make a Switch

React-ing to Hotwire

I was fully onboard with React as my front-end Javascript framework of choice for years. That all changed when I suddenly had to support a stand-alone React app that I had no hand in building. Thankfully Hotwire had just been released, and my manager was aware of how painful maintaining this application was going to be. So I started the process of migrating the React app into the Rails app, using Hotwire as the new front-end framework. How did it go, what lessons were learned, and would I do it again?

Play

David Hill

David inherited a React application that needed a lot of love after 3 developers on a 5 developer team moved on to other opportunities. After diving into Hotwire, he started rebuilding the existing application into a majestic Rails monolith, powered by Hotwire.

Make a Switch

Breaking up with the bundle

Over the course of 14 years, the GitHub.com CSS bundle grew to over 40,000 lines of custom CSS. It became almost impossible to refactor. Visual regressions were common. In this talk, we'll share an honest picture of our successes and failures as we've worked to break up with our CSS bundle by moving towards a component-driven UI architecture.

Play

Joel Hawksley

Joel is a staff engineer at GitHub, where he leads the development of the ViewComponent framework and Primer ViewComponents library.

Community Content

Behind the Lemurs - Creating an Illustrated Talk

Perhaps you've heard of a magical band of cartoon lemurs with a love for teaching Ruby, but what exactly goes into making one of these talks? We'll look at my entire toolset and process for creating illustrated conference talks including ideation, storyboarding, art, code tie-ins, and more. Perhaps you'll even learn to make a few lemurs of your own!

Play

Brandon Weaver

Brandon is a Principal Engineer at Gusto working on the Platform Infrastructure team, defining standards for Ruby across the company. He's an artist who turned programmer who had a lovely idea to teach programming with cartoon lemurs and whimsy.

Community Content

Start Your Ruby Podcast Today! No Experience Required

In 2018 a hot new Ruby meetup appeared online. 🔥 Three meetups later, it was gone. 😭

This failed experiment paved the way for a new Ruby podcast: Remote Ruby. 170 episodes later, we've learned a lot! We had no previous experience podcasting before the first episode. Along the way we've learned things like what kind of gear to use, how to perform interviews, and affirmed just how lovely the Ruby community is.

It's your turn! Come to learn from our mistakes, leave ready to start a podcast!

Play

Jason Charnes

Jason is a Ruby developer in humid Memphis, TN. He is a Lead Developer at Podia, a host on the Remote Ruby podcast, and an organizer of Southeast Ruby. Outside of writing Ruby, Jason spends his time learning how to parent, boxing in virtual reality, and watching Memphis basketball.

Chris Oliver

Chris is the founder of GoRails, host of the Remote Ruby podcast, and creator of Jumpstart and Hatchbox.io. He loves building tools to make developers' lives easier and helping people learn to code.

Andrew Mason

Andrew Mason is a Senior Product Developer at Podia. Andrew has been a host on several podcasts in the past, including Ruby Rogues and The Ruby Blend, and currently is a co-host on Remote Ruby. In addition to podcasting, he produces the Ruby Radar newsletter each week and mentors juniors whenever he can. Follow Andrew on Twitter @andrewmcodes and online at https://andrewm.codes.

Open Source Maintenance

Git your PR accepted. Rebase your changes like a pro

You want to contribute to an Open Source project, and you have a complex PR to submit. You've tried to keep it small, but sadly getting there took a lot of effort and your branch has more than 30 commits with fixes and reverting of dead ends.

You know reviewing this will be a nightmare for the project maintainers, and more importantly, it will be almost impossible for anyone in the future to understand what you did by looking at the history.

In this talk we will look at how Git branches work, and how to manicure them using Rebase to build a commit history your colleagues will love you for.

Play

Daniel Magliola

Life-long coder, expert procrastinator, maker of weird things, and occasional game programmer obsessed with code performance and weird Lego machinery.

Open Source Maintenance

Open the gate a little: strategies to protect and share data

Can you name a more terrifying set of three words in software development than "HIPAA violation fines"? I bet you can't.

We know we know we must protect access to our information at all costs, sometimes we need to provide access for legitimate reasons to our production data and this brings a dilemma to us: how to do it while minimizing the risks of data leakage.

In this talk I'll share some strategies that can give you some guidance on when to close the door, when to open the door and when to open the door to your information a little

Play

Fernando Perales

Fer is Software engineer who writes web applications on his favorite language: Ruby. He's been working as a software consultant for around nine years He is a Ruby Developer at thoughtbot, He is also actively involved in the local communities and is currently running the Mexican Ruby community as well as member and co-organizer of the RailsBridge Mexican chapter.