– Chicago, Illinois
Register Now


Thursday, September 17th

9:15am–9:45am Jeffrey Cohen

Computer Science: The Good Parts

Jeffrey Cohen

Most of us became developers without a computer science degree, proving that most CS curriculum are heavy on low-level theory and mathematics, and light on practical application.

But there are a few good parts of computer science that are very applicable to modern web development work, and we could all benefit from leveling up our game when it comes to algorithm design, pattern recognition, and coding efficiency.

Jeff will present five practical ways to use the Ruby you already know to learn the essentials of computer science, in ways that are immediately applicable to your next Rails app or open source project.

Jeffrey Cohen is a lecturer in the Masters Program for Computer Science at the University of Chicago, cofounder of Go Learn To Code, and a freelance web developer in the Chicago area.



10:00am–10:30am Sarah Mei

Understanding SOLID

Sarah Mei , DevMynd Software

The SOLID principles describe what your code looks like when you’ve found the optimal set of abstractions.That’s cool & everything, but… How do we evolve existing code from a mess of muddy abstractions towards SOLID? The principles themselves give us absolutely no guidance. Many people, thinking it’s what “professional software developers” do, scrap messy working code & design a brand new set of abstractions. But that doesn’t work. We think we know the abstractions we need when we’re eyeballing code that has the wrong abstractions. But we don’t. The only way to find the right abstractions for your system is to evolve the dirty working code that has the wrong ones, and pay attention. Our devotion to the cult of SOLID obscures the fact that getting code to that state is difficult and error-prone.

This presentation will show how to stop using SOLID as a shibboleth for “good developer”, and how to do the real work - small-scale, sometimes tedious, evolutionary - that actually makes your code SOLID.

This rant has been brought to you by the letter S, the number 6, and too much Laphroaig.

Sarah Mei has been doing software since before the internet had cats. She’s currently the Chief Consultant of DevMynd, where she helps teams refactor their way out of interesting messes. She also teaches object-oriented design with Sandi Metz, is a director of Ruby Central, and co-founded RailsBridge back in the day. Sarah lives in San Francisco, which is way colder than the California you imagine.



10:45am–11:15am Lionel Barrow

Rails for the Long Term

Lionel Barrow , Braintree

Braintree typed ‘rails new’ for their payment gateway in August 2008. In the 7 years since then, hundreds of developers have contributed more than 25,000 commits to a 400,000 line codebase. Today, the gateway processes tens of billions of dollars of payments for thousands of businesses all over the world. This makes it one of the largest, oldest and most mission-critical Rails deployments worldwide.

Seven years of development have taught Braintree a lot about how to build a Rails application with an eye toward long-term maintainability. This talk will focus on the practices Braintree has adopted to ensure they stay productive in the long, long term. We’ll discuss the importance of investing in developer tooling, fearlessly revising your domain model, and rigorous testing. We’ll step through some concrete examples of where these practices have made a huge difference, using the gateway as a central case study. We’ll also examine a few missteps and mistakes that were made along the way.

Lionel is a developer at Braintree and a grad student at the University of Chicago. He works mostly on backend systems at Braintree, and is interested in programming languages, compilers, and distributed systems.



11:30am–12:00pm Benjamin Smith

Refactoring Rails Apps with Engines

Benjamin Smith , hobbyDB

Having an app broken into small, loosely coupled, highly cohesive components is great. Using Rails Engines is one way to do this, but how do you take an existing monolithic Rails app and convert it to use Engines?

This talk will walk through Benjamin’s experience of refactoring a Rails codebase with zero Engines to an architecture with 40 different Rails Engines. He will also compare and contrast with another Rails application he built from the ground up using an Engines architecture. Not only will this talk include lessons learned, it will also feature concrete step by step instructions needed to smoothly refactor your codebase into an Engines based architecture.

Benjamin Smith is the CTO at hobbyDB. He has a strong passion for TDD, pairing, agile and using technologies that get out of the programmer’s way. When not writing code, he follows his other passions into the outdoors to rock climb, back country snowboard, and surf.




Lightning Talks: Day One

Lightning talks are short, five-minute talks given by your fellow attendees! Have a topic that you’re passionate about that you’d like to share with the WindyCityRails audience? We’ll open the call for lightning talk proposals about a week before the conference.



3:00pm–3:30pm Kyle Crum

Communicating Code

Kyle Crum ,

The code you write is like your handwriting. It makes sense to you, but others might not understand what you write or why you write it. In many ways, writing code is the easy part. Ensuring that your colleagues understand your intentions is more difficult.

This talk will focus on how to communicate effectively via code. Better programmer-to-programmer communication leads to stronger technical teams.

Kyle has been programming Ruby for almost 8 years now and still finds new ways to use the language. He is currently a senior programmer and team leader at where he finally gets to combine his musical and technical passions.



3:45pm–4:15pm Noel Rappin

Beyond Red/Green/Refactor: Testing as a Mindset

Noel Rappin , Table XI

“Red. Green. Refactor” is a great slogan for Test-Driven Development. It’s less great as a guide to actual TDD practice. The slogan provides no guidance for two very important questions in a TDD process: “What do I test next?” and “How do I break my problem into testable pieces”.

You may have struggled with TDD on these two issues, leading to giving up, or winding up with “uncanny valley” tests that are hard to maintain but don’t provide support for change. Using a puzzle problem, we’ll show how to expand on Red Green Refactor, so you can take advantage of the code-quality benefit of TDD.

Noel Rappin is the Director of Talent at Table XI. Noel has authored multiple technical books, including “Rails 4 Test Prescriptions”, “Master Space and Time With JavaScript”, and Trust-Driven Development.



4:30pm–5:00pm Jackie Mutua

Building Better Acceptance Tests

Jackie Mutua , ThoughtWorks

When applications are poorly tested, code quality suffers and business needs are unaddressed. Automated acceptance testing is at the heart of any good Continuous Delivery (CD) process. When the acceptance tests accurately describe how the end-user uses the system, developers can push new releases without danger.

This talk will explore practical ways to build better acceptance tests, including choice of design implementation, clear DSLs, and effective abstraction.

Jackline Mutua is a Kenyan developer currently with ThoughtWorks, always excited about all things code and she loves Ruby. Jackie is pretty keen on the intersection between Diversity and Tech, so she jumps at the opportunity to coach. When not pairing and writing code with awesome folks at ThoughtWorks, she’s probably working on her video game addiction.


After Party

Friday, September 18th

9:15am–9:45am Greg Baugues

Passwords Are Not Enough

Greg Baugues , Twilio

Every week we hear of another security breach. It’s starting to feel inevitable that eventually someone’s going to hack into the app you’re building today.

Antiquated passwords are no longer enough. Companies are increasingly moving towards two factor authentication to provide an additional layer of security. When Slack announced that they had been hacked, their blog post title was “Security Incident and the Launch of Two Factor Authentication.”

This talk is for Rails developers who are concerned about the security of their app, but don’t have the time or expertise to roll their own solution. We’ll discuss the background, best practices and considerations of TFA and then live code the integration of TFA into a Rails app in less than 20 minutes using Authy.

Greg serves as a developer evangelist for Twilio where his mission is to inspire and equip developers to change communications forever. He’s lived in Chicago for ten years and writes about this amazing city and miscellaneous nerdery at



10:00am–10:30am Aaron Kalin

The Remarkable Journey of a Single Web Request

Aaron Kalin , DNSimple

How far would you have to travel to deliver just one request to a server when you type in their web address? Have you wondered why the web address you typed in takes a little time to load up that cute cat video? We’ll explore the journey a single request takes from the browser address bar, to the server, and back. You’ll see just how many services, protocols, and systems are involved in delivering those oh so cute cat videos to your browser each day.

Aaron Kalin is a System Administrator for DNSimple hailing from Chicago and has been programming for over 15 years. At night you’ll find him hacking on game servers or experimenting with other programming languages. He’s passionate about solving problems and enjoys giving back as much as possible.



10:45am–11:15am Eileen Uchitelle

How to Performance

Eileen Uchitelle , Basecamp

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 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 test 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 each performance tool.

Eileen M. Uchitelle is a programmer on Basecamp’s Performance, Security, and Infrastructure team. Eileen is an ardent contributor to open source, focusing most of her energy on improving Rails. When taking a break from the excitement of refactoring source code, Eileen enjoys craft beer and hiking in New York’s Hudson Valley with her husband and their dog.



11:30am–12:00pm Kelsey Hightower

Ruby on Kubernetes

Kelsey Hightower , CoreOS

Deploying Ruby applications can be painful. On a typical Linux system you need to deal with Ruby runtime versions and gem dependencies. While there are many tools that can automate these common tasks, they won’t scale to 1000s of servers. That’s where Linux Containers and Kubernetes, the container cluster manager from Google, come in. Kubernetes delivers the perfect platform for running containers and offers a deployment workflow that puts the focus on applications and not individual machines.

In this session attendees will learn how to package Ruby applications in Docker containers to streamline the packaging and distribution problem inherent to all web applications. Then attendees will get a high level overview of Kubernetes and what it means to run an application in a cluster with an automated scheduler. Finally, attendees will learn some of the best practices for deploying multi-tier web applications and performing application upgrades with minimal down time within the Kubernetes framework.

Kelsey, developer advocate and Toolsmith at CoreOS, has worn every hat possible throughout his career in tech and enjoys leadership roles focused on making things happen and shipping software.

Kelsey is a strong open source advocate focused on building simple tools that make people smile. When he is not slinging Go code you can catch him giving technical workshops covering everything from Programming, System Administration, and his favorite Linux distro (CoreOS).




Lightning Talks

Lightning talks are short, five-minute talks given by your fellow attendees! Have a topic that you’re passionate about that you’d like to share with the WindyCityRails audience? We’ll open the call for lightning talk proposals about a week before the conference.



3:00pm–3:30pm Rebecca Miller-Webster

Three Ways to Use JavaScript in Your Rails App

Rebecca Miller-Webster , thoughtbot

You’ve learned some JavaScript and some Rails and even how to connect the two with AJAX. But how do you really bring complicated JavaScript together with your server without duplicating code or doing weird stuff to connect the two?

In this talk, we’ll discuss the three standard ways to connect JavaScript with Rails: html fragments, JSON, and bootstrapping your Javascript. Then we’ll talk about the pros and cons of each approach. You’ll leave the talk able to assess the best approach for your app’s needs.

Rebecca Miller-Webster is a software engineer, conference organizer, and teacher. She is the founder of Write/Speak/Code and Managing Director for thoughtbot Chicago. Rebecca has been developing software professionally for over 10 years and previously organized GORUCO. She was the founding teacher at Dev Bootcamp NYC and has taught hundreds of students software development as well as led workshops on public speaking, leadership, and oppression. Rebecca holds an Masters in Computer Science and a BA in Women and Gender Studies from Washington University in St. Louis and was named one of 7 Brillant Women in Tech by Craig Nemark, founder of Craigslist. She loves cupcakes, sea mammals, and prosecco. Rebecca lives in Oak Park, IL with her husband, black pug, and rescued havenese. And she changes her hair. A lot.



3:45pm–4:15pm Chris Ball

Mind the Front-End Gap: Navigating the Path from Rails to Ember

Chris Ball , Echobind

You’ve heard great things about Ember as a front-end framework and want to give it a try. You’re experienced with Rails but don’t know where to start in this brave new world. This talk will give actionable advice on how to best leverage your Rails experience to help ease your transition to Ember.

You’ll still use Rails for the API and domain layer, it’s awesome for that. But by leaning on Ember’s strong conventions just like you did with Rails, you’ll find that working on the front-end is much more enjoyable and productive when you’re not jumping through Russian Dolls and sprinkles of JavaScript.

Chris is the Founder of Echobind, a web consultancy specializing in Rails and Ember. When he’s not helping clients create great products, Chris works on “From Rails to Ember” ( as a way to guide developers with Rails experience through the transition of using Ember as a front-end framework.

If you’re the type bored by technical bios, he’s into cycling, camping, and toured the midwest in a rock band in a past life.



4:30pm–5:00pm Sean Griffin

Designing a Great Ruby API - How We're Simplifying Rails 5

Sean Griffin , thoughtbot

The most useful APIs are simple and composeable. Omnipotent DSLs can be great, but sometimes we want to just write Ruby. We’re going to look at the process of designing a new API for attributes and type casting in Rails 5.0, and why simpler is better. We’ll unravel some of the mysteries behind the internals of Active Record. After all, Rails is ultimately just a large legacy code base.

In this talk you’ll learn about the process of finding those simple APIs which are begging to be extracted. You’ll learn the refactoring process that can be used to tease them out slowly. And you’ll be getting a sneak peak at several of the features coming in Rails 5.0.

Sean is a Rails committer, cohost of “The Bike Shed”, and a web developer for thoughtbot. He is a fanatic about Vim, Rails, and TDD. He may call Ruby and Rails his home, but he enjoys spending time in functional languages such as Haskell and Scala, and bringing those concepts back to the Ruby community.


After Party