eileen goruco 2015 How to Performance talk at GORUCO 2015. Photo by Jesse Chan-Norris.

Upcoming Talks

Building Rails ActionDispatch::SystemTestCase Framework
RubyConf Colombia | Medellín, Colombia | September 8-9, 2017

The Unbearable Vulnerability of Open Source
GitHub Universe | San Francisco, CA | October 10-12, 2017

Past Talks

Building Rails ActionDispatch::SystemTestCase Framework

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

Keynote Speaker at RubyNation | Washington, DC | June 16, 2017

RailsConf | Phoenix, AZ | April 25, 2017
Video | Slides

Security is Broken: Understanding Common Vulnerabilities

The Internet is built on technology that was never meant to work together. Basic features in seemingly simple and innocuous technologies, such as XML, resulted in these technologies being insecure. In this session we’ll talk about how attackers exploit well known vulnerabilities like XSS, XXE, and CSRF and how to make more secure software by avoiding similar decisions that resulted in these exploits.

Abstractions | Pittsburgh, PA | August 19, 2016

Brighton Ruby | Brighton, UK | July 8, 2016
Video | Slides

Twilio SignalConf | San Francisco, CA | May 24-25, 2016

Mountain West Ruby Conference | Salt Lak City, UT | March 21-22, 2016
Video | Slides

How to Performance

Understanding performance output can feel like reading tea leaves. It makes sense to a few people, but many of us are left in the dark; overwhelmed and frustrated by the data. On top of that there are a ton of performance tools to choose from; StackProf, RubyProf, AllocationTracer. Where do you even start?

While working on speeding up integration tests in Rails source, I learned that the key to improving the performance of Ruby code is having a baseline, not relying on one profiler and understanding the advantages and limitations of your tools. By utilizing these methods, integration tests are now 3 times faster than they were in Rails 4.2.0, with more improvements being made every day.

In this talk we will not only look at how to read performance output, but when and how to use the right profilers for the job. We’ll discuss a variety of methods and techniques for benchmarking and profiling so you can get the most out of any performance tool.

RubyConf | San Antonio, TX | November 15-17, 2015
Video | Slides

WindyCityRails | Chicago, IL | September 18, 2015
Video | Slides

FullStackFest | Barcelona, Spain | September 1, 2015
Video | Slides

Burlington Ruby | Burlington, VT | August 1, 2015

GORUCO | New York, NY | June 20, 2015
Video | Slides

Breaking Down the Barrier: Demystifying Contributing to Rails

Contributing to Rails for the first time can be terrifying. In this lab I’ll make contributing to Rails more approachable by going over the contributing guidelines and technical details you need to know. We’ll walk through traversing the source code with tools such as CTags, source_location and TracePoint. Additionally, we’ll create reproduction scripts for reporting issues and learn advanced git commands like bisect and squash. At the end of this session you’ll have the confidence to fix bugs and add features to Ruby on Rails.

RailsConf | Atlanta, GA | April 23, 2015
Video | Slides | Workshop Repo

CRUD! Dear Active Record, It’s Not You, It’s Me

The magic of ActiveRecord database interactions is easy to rely on and allows us assume it knows best. Without a solid understanding of how ActiveRecord translates into MySQL, however, significant issues can arise. This is particularly true with large data sets and complex model relationships. My talk explores an example for each CRUD function and shows how these queries can result in MySQL timeouts, memory issues or stack level too deep errors. The examples will examine the consequences of chaining large datasets, uses for Arel, and how to avoid encountering major problems and most importantly, how these queries can be rewritten to run more efficiently.

RubyNation | Washington, DC | June 6, 2014

Mountain West Ruby | Salt Lake City, UT | March 21, 2014
Video | Slides

Big Ruby | Dallas, TX | February, 2014
Workshop Repo


Tech Done Right | March 29, 2017
Episode 007: Software, Open Source, and Rails with Eileen Uchitelle and Andrew Horner

Developer on Fire | January 21, 2016
Episode 092 - Eileen Uchitelle - Facing Fear

The Changelog | May 16, 2015
#154: All Things Ruby with 2015’s Ruby Heroes

The Bike Shed | July 7, 2015
22: No Capes! (Eileen Uchitelle)

RubyRogues | September 10, 2014
173 RR ActiveRecord CRUD with Eileen Uchitelle