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
Continental breakfast is included with your registration.
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.
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.
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.
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.
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.
Lightning Talks - Day One
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.
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!
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.
WindyCityRails After Party
Join us for the WindyCityRails After Party! More details will be announced closer to the conference.
Friday, September 16, 2016
Continental breakfast is included with your registration.
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.
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 works as a software engineer at Vitals.
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.
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.
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.
Lightning Talks - Day Two
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?
This talk will explore the benefits of progressive enhancement, how it fits into an agile workflow, and its place in today’s Web.
Enter by Bootcamp
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.
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.
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.