icon-pin Chicago, IL USA
icon-calendar September 15-16, 2016

Schedule

Photo of attendees watching a talk at WindyCityRails 2015.

WindyCityRails will take place over two days. Attendees will have access to all sessions, along with continental breakfast and lunch on each day.

Thursday, September 15, 2016

8:00am–9:15am

Breakfast

Continental breakfast is included with your registration.

9:15am–9:45am
Photo of Richard Schneeman

Saving Sprockets

Richard Schneeman, Heroku

What do you do when a maintainer leaves a project with over 44 million downloads? That is what we had to consider this year when Sprockets lost the developer responsible for more than 70% of the commits. In this talk we will look at recent efforts to revive Sprockets, and make it more maintainable. We will look into how your projects can be structured to avoid burnout and survive a change of maintainers. Let’s save Sprockets.

About Richard Schneeman

Richard writes Ruby at Heroku, maintains CodeTriage.com, and co-organizes Keep Ruby Weird. When he isn’t obsessively compulsively playing Starcraft 2 he writes such gems as Wicked, and derailed_benchmarks. He is in the top 50 Rails contributors and an accidental maintainer of Sprockets. Richard is a proud graduate of Space Camp and enjoys the fine art of weiner-dog walking.

10:00am–10:30am
Photo of Noel Rappin

Money Makes Your App Go Round

Noel Rappin, Table XI

Your customers have money, and you’d like them to give it to you. Payment gateways, such as Stripe, Braintree, and Paypal, make it easy to start charging credit cards and get the money flowing. But charging cards is only the beginning. You need to worry that your app responds gracefully to service failures, since charging a customer for a failed transaction is bad. You need to guard against fraud and security breaches. You need administrative tools that are flexible but secure. You want to test against external services. And you’ll run up against the law. Learn from some of my mistakes and build a robust financial application.

About Noel Rappin

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

10:45am–11:00am
Photo of Joe Mastey

Why You Should Start an Apprentice Program

Joe Mastey, Independent Consultant

Software apprenticeships have been around for years, but until recently only a handful of companies committed to them as a path to growing their teams. It’s time for that to change. If you have trouble hiring enough developers, if you struggle with retention and diversity, or if you’d like to raise the bar on your development practices, you need to give software apprenticeship a look.

In this talk, we’ll cover the real and imagined costs of running an apprenticeship, the real and imagined benefits, and some helpful tips for starting your own program. You’ll leave prepared to craft a program that fits the resources of today’s team so that you can build tomorrow’s.

About Joe Mastey

Joe Mastey consults as a software engineer and technical advisor. Recently he’s been focusing on helping companies build fantastic internal education programs. As an avid extreme weather enthusiast, Chicago has been quite kind to him, despite a distinct lack of climbable rocks.

11:00am–11:30am
Photo of Tara Scherner de la Fuente

Let the Junior Dev Upgrade Rails

Tara Scherner de la Fuente, Roostify

Horrors and triumphs await new developers and their fellow team members. How do you take a junior developer from crippling fear of failure (hardcore imposter syndrome) to confident speaker at a Rails conference (usual amounts of imposter syndrome)? Included will be concrete examples of why a junior dev shouldn’t shy away from a Rails upgrade, why an organization should bring them in to help, and what tools are necessary to set up success for everyone.

About Tara Scherner de la Fuente

Tara is a Ruby/Rails developer who currently codes at Roostify. Previously at LivingSocial, she has had careers in academia, human resources, and private investigation. She has an expansive t-shirt collection and masquerades as a goat for @GoatUserStories. She purr programs with her cat Lulu via a remote/distributed/caffeinated living room office in Portland, Oregon.

11:45am–12:15pm
Photo of Michael Dwan

Rebuilding Highrise from the Inside Out

Michael Dwan, Highrise

Highrise, one of the world’s first Rails apps, was released in in 2007 by Basecamp, makers of Ruby on Rails. In 2014 it spun out into it’s own company with a new team that’s been revitalizing it since.

This talk is about the tools and techniques we’re using to rebuild Highrise from the inside out without disrupting a large customer base or slowing product development. We’ll cover modernizing legacy Ruby and Rails code, introducing new languages and databases with microservices, migrating from bare metal to cloud infrastructure, and operating in a multi-datacenter environment.

About Michael Dwan

Michael is software designer & engineer. CTO at @highrise. Formerly Dropbox, Snapjoy, Y Combinator.

12:15pm–2:00pm

Lunch

2:00pm–2:30pm

Lightning Talks

Lightning talks are quick, five-minute talks given by your fellow attendees!

2:45pm–3:15pm
Photo of Dorian Karter

Writing Declarative, Maintainable Integration Tests Using Page Objects

Dorian Karter, Hashrocket

Integration Testing is hard. Cucumber has fallen out of favor and new ways of testing using RSpec and Capybara are becoming the industry standard. The new way of integration testing lost the declarative nature of cucumber tests, leaving tests hard to read and difficult to maintain due to tight coupling to DOM structure and styling.

Page Objects fix all of these issues, they let you write declarative DRY tests that are a pleasure to maintain and extend. In this talk Dorian will demonstrate how to write integration tests using Page Objects and touch on some of the best practices that his team has accumulated.

About Dorian Karter

Dorian is a Software Consultant working at Hashrocket. At Hashrocket he is doing TDD and pair programming on a daily basis, primarily in Rails. He is enjoys writing declarative code that documents itself. Most recently he has been playing with Elm and Redux on the front end, exploring different concurrency models in different languages, and writing Vim plugins.

3:30pm–3:45pm
Photo of Greg Baugues

Livecoding an SMS Chatbot

Greg Baugues, Twilio

We’ll use markov chains to live-code a chat bot to impersonate a Twitter celebrity.

About Greg Baugues

Greg Baugues lives in New York and serves on the developer evangelism team at Twilio.

3:45pm–4:15pm
Photo of Marko Anastasov

Scaling a Rails Monolith with Event-Driven Microservices

Marko Anastasov, Rendered Text

Microservices solve productivity and production performance problems that typically arise with monoliths — and do that best when they are implemented to work asynchronously. The thing is, as Rails developers, we are used to thinking in terms of synchronous REST APIs. To scale up, we need to rewire our brains.

Based on Marko’s experience with Semaphore CI, whose user-facing app started as a Rails monolith, Marko will first share the core principles of event-driven microservies and some ideas on where Rails apps fit in that picture and their optimal scope. Then he’ll show some code examples to help you make the first steps towards this new style of architecture. You’ll see that programming an asynchronous system is actually a lot of fun!

About Marko Anastasov

Marko is an engineer and cofounder of Rendered Text, makers of Semaphore CI, a hosted continuous delivery service. He’s enjoyed working with Ruby and Rails since 2007, and is passionate about finding better ways to develop software.

4:30pm–5:00pm
Photo of Jamie Wright

Building Your Own R2 Unit in Ruby

Jamie Wright, Tatsu

There is another massive shift happening with how we interact with companies through software. Users feel comfortable naturally talking with their applications through chat bots. Chat is the next generation of the user interface.

Companies like Slack, Facebook, WhatsApp, and WeChat have some of the most popular apps in the world and they are all betting on a messaging interface.

Ruby and it’s ecosystem of libraries can support these new types of interactions. In this session, we will see how we can build scalable, realtime web applications (or “bots”) using the Slack API. We will see what a good bot architecture looks like and how we can integrate with existing artificial intelligence services to make our bots smarter.

About Jamie Wright

Jamie Wright is a maker of internet things with a love/hate relationship for Redbull™, standing desks, and paintball guns. He has a love only relationship with teaching, learning, and building bots. Jamie runs Tatsu, a software bot that helps teams save time by performing standup meetings over Slack.

5:00pm–7:00pm

WindyCityRails After Party

Join us for the WindyCityRails After Party! More details will be announced closer to the conference.

Friday, September 16, 2016

8:00am–9:15am

Breakfast

Continental breakfast is included with your registration.

9:15am–9:45am
Photo of Jack Christensen

When Web Scale Doesn't Make Sense

Jack Christensen, Hashrocket

Service-oriented architecture, NoSQL, and cloud services have transformed how large web applications are architected, developed, and deployed. Much of the technical literature today covers how to scale up. But what if you are not building the next Twitter or Facebook? How do these techniques scale down? What are their costs? Is it worth it? What is the right way to build a small application? How do you measure the scale of your application? This talk offers answers to these questions.

About Jack Christensen

Jack began teaching himself to program in elementary school when he discovered that was how to make computer games. He deployed his first Rails application before Rails 1.0 was released and has been active in Rails application development ever since. Jack is excited to be working with Ruby, Go, PostgreSQL, and git. In his spare time, Jack occasionally still dabbles in game development.

10:00am–10:30am
Photo of Ariel Caplan

Building a Better OpenStruct

Ariel Caplan, Vitals

OpenStruct, part of Ruby’s standard library, is prized for its beautiful API. It provides dynamic data objects with automatically generated getters and setters. Unfortunately, OpenStruct also carries a hefty performance penalty.

Recently, Rubyists have tried various approaches to speed up OpenStruct or provide alternatives. We will study these attempts, learning how to take advantage of the tools in our ecosystem while advancing the state of the Ruby community.

Sometimes, we can have our cake and eat it too. But it takes creativity, hard work, and willingness to question why things are the way they are.

About Ariel Caplan

Ariel has been hacking since he was 10 years old, building websites to promote publications and make fun of teachers. In late 2013, after a brief stint in bio research, he made the switch to full-time programming. With lots of help from the Flatiron School in NYC, Ariel learned Ruby, Rails, and JavaScript, and is now getting paid to keep learning.

Ariel works as a software engineer at Vitals.

10:45am–11:00am
Photo of Eric Smith

Why TDD Is Crap

Eric Smith, 8th Light

So you’ve heard it a million times. The Debate is over! TDD won! You are unprofessional if you write a SINGLE line of production code without a failing unit tests. TDD is the one true way to good quality code. Why if you don’t do TDD you’re just a hack like DHH, Rich Hickey or Linus Torvalds. What did they ever do?

In this tongue deeply-in-cheek talk I’ll show you all the things wrong with TDD, explain why it doesn’t always work and even hit on a few alternatives.

About Eric Smith

Eric Smith is a Polyglot developer, trainer, and writer. He’s currently working on the The Guide to Real World TDD featuring real world problems for full stack developers.

By day Eric is the Director of Training Services at 8th Light, by night he’s the proud dad of 5 kids and happily married to a QA Engineer.

11:00am–11:30am
Photo of Aaron Bedra

Layered Security

Aaron Bedra, Eligible

Aaron will talk about how to perform security checks in the right place. He will go into detail around where certain security checks should be performed, focusing on the web server, Rack middleware, and Rails.

About Aaron Bedra

Aaron is Chief Security Officer at Eligible. He is the creator of Repsheet, an open source threat intelligence tool kit. Aaron is the co-author of Programming Clojure, 2nd Edition and a frequent open source contributor.

11:45am–12:15pm
Photo of Sebastian Sogamoso

TCP Sockets Programming in Ruby

Sebastian Sogamoso, Cookpad, Inc.

As software developers, a lot of the time we’re building applications that rely on some sort of network connection. Due to Ruby’s great abstractions we take most of the network related stuff for granted. We think we know how all of that works, but do we? Let’s go over the fundamentals together, learn about how Ruby models TCP Sockets and how we can make a good use of it.

This talk will explore the fundamentals of programming with sockets. This includes creating sockets, client and server life-cycle, reading and writing data, non-blocking IO and connection multiplexing. We’ll wrap up by looking at how those concepts are used in real world problems by web servers.

About Sebastian Sogamoso

Hola! My name is Sebastián. I am love pair programming and have a passion for teaching. I am part of the Cookpad, Inc team.

I organize RubyConf Colombia and I am also involved with local software development groups and help organize the Bogotá Ruby and Elixir meetups.

12:15pm–2:00pm

Lunch

2:00pm–2:30pm

Lightning Talks

Lightning talks are quick, five-minute talks given by your fellow attendees!

2:45pm–3:15pm
Photo of George Brocklehurst

Does Progressive Enhancement Have a Place in Today's Web?

George Brocklehurst, thoughtbot

Single page Web apps are everywhere these days. Is Ruby now just a language of APIs? Is there even an alternative?

Maybe there is: Progressive enhancement is a technique for iteratively improving user experience by starting with a simple HTML document, and progressively adding enhancements with CSS and JavaScript.

This talk will explore the benefits of progressive enhancement, how it fits into an agile workflow, and its place in today’s Web.

About George Brocklehurst

George works at thoughtbot in NYC. When he’s not building progressively enhanced Web apps, he can usually be found reading about space exploration, playing Go, or exploring New York.

3:30pm–3:45pm
Photo of Esther Leytush

Enter by Bootcamp

Esther Leytush

Esther is a graduate of a coding bootcamp, one of the dozens that have sprouted up over the last several years. She attended Dev Bootcamp, which takes people from all backgrounds, mostly non-CompSci or STEM, and turns them into junior fullstack Ruby on Rails developers in 18 weeks.

Esther will share why she chose the bootcamp route, what it was like to enter this field via bootcamp, the kinds of approaches the program took to bring attendees up to speed, and more. The topic of bootcamps is a controversial one, with many opposed or despairing of them, but with few voices heard of those who actually completed one.

About Esther Leytush

Esther Leytush is a fullstack Ruby on Rails developer in training. She came into web development by way of a coding bootcamp after discovering that you can learn to code outside of a university setting. Entering coding was a huge change for her, as she had previously completed two English degrees and worked in legal and HR fields. She got into code out of excitement and curiosity, and stayed because she fell heads-over-heels in love with Ruby.

3:45pm–4:15pm
Photo of Tomasz Rusilko

From OO Patterns to Functional Programming without Killing Yourself

Tomasz Rusilko, Lunar Logic

Ruby is an enabler. It empowers programmers to easily write functional code. The problem with functional concepts is that, whenever you try to learn, use them, or hear about them at a conference, it’s all about monads, folds or infinite streams.

In this talk, you’ll learn how changing requirements led us on a more evolutionary road from using OO patterns to discovering better, functional ways of writing complex logic. We’ll be converting a messy strategy pattern design to a robust plug-and-play solution (using first-class functions). You’ll learn how to repay technical debt without jeopardising customer relationships and how moving from a minimum viable to a mature product changes a programmer’s perspective towards code.

About Tomasz Rusilko

Tomasz is an experienced full-stack developer based in Kraków, Poland. He has written software and managed teams in various environments, from big enterprises to small few-person businesses. Currently, Tomasz is all into web development in lunarlogic.io - a self-managed, Rails and mobile apps chop shop. At home, he is a father to musically talented 7yo Maja, thanks to whom he started playing ukulele.

4:30pm–5:00pm
Photo of Tiffani Ashley Bell

Ruby + Water

Tiffani Ashley Bell, The Human Utility

What happens when 100,000 people in a major American city are about to have their water shut off because they can’t afford it? Rubyists step in! This talk discusses what it’s like to build a data-driven social service agency—more specifically, the Ruby infrastructure underpinning The Human Utility, a social service agency using open data, private utility data, data science, machine learning, and crowdfunding to ensure water is affordable for everyone.

About Tiffani Ashley Bell

Tiffani Ashley Bell is a Rails and iOS developer. Tiffani is Executive Director of The Human Utility, an organization that seeks to eliminate water service disconnections for low income and elderly people.