Welcome

Ruby Midwest is back!

Two amazing keynotes!
James Edward Gray II
Michael Feathers

Subscribe for RubyMidwest inbox love

Hashtag #rmw

#rubymidwest on freenode!

Travel & Venue

  • Town Pavilion Conference Center Town Pavilion Conference Center 1111 Main St # 2000
    Kansas City, Missouri 64106
    View Map
  • Marriott Downtown Kansas City, MO Marriott Downtown Kansas City
    200 West 12th Street
    Kansas City, MO 64105

    $139 per night
    (816) 421-6800 (RMWRMWA)

    Online Reservations
    Link includes group discount code.

Beef Jerky is high in sodium, but preserved to last through a conference... at least.

Registration

  • SOLD OUT! Early Bird Tickets Limited supply! | $129

Sponsors

Interested in sponsoring Ruby Midwest?
Check out the sponsorship package here and get in touch.

Cerner
code lever Asynchrony Chargify
New Relic Code Climate Softek

Speakers

Michael Feathers

Michael Feathers

@mfeathers

Michael Feathers is an independent consultant, an active member of the software development community and a member of the ACM and IEEE. He regularly speaks at software conferences around the world. When Michael isn't engaged with a team, he spends his time investigating new ways of altering design over time in codebases. His key passion is helping teams surmount problems and connect with practices that make software development fun and enriching. Michael is also the author of the book 'Working Effectively with Legacy Code'.

James Edward Gray II

James Edward
Gray II

@JEG2

James has been in the Ruby community since before Rails shipped. He's seen a ton of progress and survived many fads. Along the way, mostly by accident, he learned a lot about being a programmer. He now enjoys sharing that knowledge with other programmers by writing code, adding documentation, participating in the Ruby Rogues podcast, and speaking at conferences. When James isn't programming, he's usually chasing his two year old daughter around the house. It's questionable as to which of these pursuits is more taxing.

Steve Klabnik

Steve Klabnik

@steveklabnik

OOP and Philosophy

Actions are driven by ideas, and ideas are driven by philosophy. For a deep understanding of our actions, we have to go the whole way back to the philosophy that motivates them. So what's the philosophical basis for Object Oriented Programming? In this talk, [the speaker] will discuss Plato's theory of forms, its relationship to Object Oriented Programming, and its current relevance (or irrelevance) to modern philosophy.

Steve Klabnik is a Ruby Hero, Rails committer, Jumpstart Lab instructor, nomad philosopher.

Jessica Kerr

Jessica Kerr

@jessitron

Functional Principles for OO Development

So you consider yourself an Object Oriented developer? Ruby isn't limited to an OO style! See what functional programming can do for us, without learning any new language. These six principles of functional style apply in OO code. Some of these principles you already use; some express patterns old and new; all give us different ways of thinking about problems. Developers without expertise in functional programming will find new techniques for thinking and coding in Ruby.

Jessica Kerr -- better known as @jessiton -- is a Scala developer in St. Louis. She's fascinated by languages like Ruby, Clojure, and Polish. She loves user groups, Scotch, her children, beer, and cognitive science (not necessarily in that order).

Zee Spencer

Zee Spencer

@zspencer

Computer, Program Thyself!

Robots. Unthinking. Unfeeling. Cold. Incapable of surprising us. Or are they? In this demonstration I'll be walking through how I use ruby to teach computers to surprise me with answers to problems I don't know how to solve. It draws heavily on testing to model behavior, stats, and rubies power to create domain specific languages; so hang on to your hats!

Zee Spencer spent the last year digging deeper and wider into programming; giving him a broader perspective on system design, team dynamics, and product design. He's now ready to get back out there and share some of the things he's learned about making software that augments peoples natural abilities.

Bryan Helmkamp

Bryan Helmkamp

@brynary

Rails Application Security in Practice

Out of the box, Rails does its best to help you secure your app. Unfortunately, without consistent application of secure development principles, practices and tools, it's just a matter of time before vulnerabilities creep in. The best time to start locking down your app now, not after your first close call (or worse). We'll walk through exactly what you need to reduce the risk of a security breach to your business, beyond the Rails defaults.

Bryan is the founder of Code Climate, an automated code review tool for Ruby apps, and the lead organizer of the Gotham Ruby Conference in NYC. For the last seven years, he's been an active in the Ruby community as an acclaimed speaker, author and open source contributor. In 2009, he received a Ruby Hero Award for his efforts.

Matt Sears

Matt Sears

@mattsears

Make Testing Fun With Test Reporters

Slow tests got you down? As Ruby developers, we watch a lot of tests run in a given day. So why not make it more fun? In this talk, I'll take a light-hearted approach to introducing you to an array of test reporters including MiniTest's Pride, Fuubar, and my very own Nyan Cat Formatter. In addition, I will show how easy it is to make your very own test reporter for both Rspec or Minitest so you can have a more enjoyable testing experience.

Hi, I'm Matt Sears. I'm a Ruby developer in Ohio. I spend most of my days building awesome things at my company I founded in 2007 called Littlelines, a distinguished Ruby development and design firm.

Ernie Miller

Ernie Miller

@erniemiller

The Most Important Optimization: Happiness

Metaprogramming. It's awesome, right? Powerful? Maybe a little scary? Let's kick things up a notch. If writing code that writes code is powerful, what's hacking the life of the programmer writing the code? That's got to be an 11 on the meta-meter. At least. We'll talk about some of the bad assumptions we've made, lies we've bought into, and why we have the most awesome job ever.

Ernie's been writing code since he was 6 years old, but only getting paid to do so for the past 15 years or so. Sometimes he still can't believe people actually pay us to have this much fun. He's the author of a bunch of Rubygems, some of which might even be useful, a contributor to Rails, a committer to ARel, and an ardent believer that all true first person shooters are played with a mouse and keyboard.

Jaime Andrés Dávila

Jaime Andrés Dávila

@diablo_urban_o

DCI: semiotics applied to software

Formally, semiotics is the study of signs: how do they relate?, how do they structure meaning?, what rules do they follow? All these questions are important to understand how humans communicate and how we interpret the world around us, so it's no wonder that semiotics are related to the process of building software. We, as developers, create software that communicates not only to the end user, but also to other systems and even to other developers. A clear separation of each part of the ""final message"" is important to keep the code maintainable and more important, to control the meaning of our app. DCI is an elegant way to keep that separation clear, we can manage the "rules" (context), the "symbols" (data) and the "meaning" (information) of the message. During this talk I'll explore some concepts of semiotics which are important for DCI and how DCI uses those concepts to communicate. Part of the talk includes an overview of an app I'm building using grape, which allowed me to build from scratch an architecture based on DCI an experiment ideas and concepts I'd like to share with you.

Across my twelve years as software developer I've worked with several projects including high tech industries, educational organizations, financial entities. I've programmed with java, objective-c, php, js and my favorite one, ruby. However no matter what language I'm using I always follow two principles:

  1. the code I write now will be read later, so it must be comprehensible.
  2. the final product must be usable.

Among my hobbies, two of them have influenced the way I program: photography and martial arts taught me to search the balance between beauty and efficiency of the code.

Corey Ehmke

Corey Ehmke

@Bantik

Lightweight Business Intelligence

Long the provence of specialists in the hermetic world of enterprise software development, business intelligence (BI) is increasingly important to smaller, more agile companies and startups who need access to near-real-time information to make critical business decisions. With its support for aggregation and reduction of massive amounts of data and its flexible schemas, MongoDB is a great choice for creating lightweight, denormalized data stores optimized for BI, with the added bonus of peaceful co-existence with transactional data stores. In this talk I will explore how Trunk Club captures and analyzes customer information, monitors user behaviour, feeds machine-learning algorithms for decision support, and delivers value to business stakeholders through simple querying and reporting interfaces.

Corey Ehmke is a technologist with nearly 20 years of experience in developing for the web. He successfully transitioned out of enterprise software development with Java and .NET into Agile development with Ruby and Rails five years ago and has never looked back. His areas of specialization include the development of internal and external APIs, enterprise architecture, test-driven development, business intelligence, and machine learning. An active Open Source author and contributor, he's currently serving as Senior Software Engineer at Trunk Club, a successful men's fashion startup.

Matthias Günther

Matthias Günther

@wikimatze

More time for Open Source work with the help of the Pomodoro Technique

You know the constraints: Day job, time for your family, urge to hack, visiting the local user group, and start a new project about the latest rocket science technology you need to learn. There is never enough time for all this stuff at once. This talk will present the time management method, called Pomodoro. Learn how to work time-boxed, get rid of distractions, focus on a single task for 25 minutes, and relax for couple of minutes to free your mind. We all love Open Source work and Pomodoro will help you to hack on your beloved babies in a time-boxed way to get more done in less time.

Matthias is an Open Sourcer by heart, loves giving presentations about Vim, and writes a book about Padrino. When Günther is not working as a developer at MyHammer, he spends his free time visiting hacking events, painting small figures, running for his health, organizing ruby conferences like eurucamp 2012, and experimenting with making delicious cakes. His blog and website is wikimatze.de. He lives in Berlin.

Ashe Dryden

Ashe Dryden

@ashedryden

Must Have 10+ Years People Experience

Solving a technical problem is relatively easy: there tends to be precedence, easily accessible data, black and white results, and a long list of knowledgeable developers to lean on. People problems are stickier; there are far more variables, no tests you can write, no debugger to use. In this talk, I’ll focus on our biggest issues as developers and community members. We’ll examine what’s broken, what works, and some useful people katas.

Ashe Dryden is an indie developer living in Madison, WI. She's been involved with the web in some form or another over the course of the past 12 years. She's actively involved in multiple communities both off and online. Ashe is known for being outspoken about the need for diversity, inclusiveness, and empathy. When she isn't discussing technology, she's cycling, tweeting, playing board games, debating the social implications of Star Trek episodes, being that awkward girl at the party, and waiting for her next burrito fix.

David Kerber

David Kerber

@davidjkerber

Ready To Code: Automate Your Development Environment

Remember when you first get started on an existing project, and you have to get your development environment setup?

  • "You need Postgres and Ruby", so you get that installed.
  • "Oh wait, we can't run 1.9.3, you need 1.9.2", so you change Ruby.
  • "bundle is failing? Oh yeah, that gems needs some native packages, better google it".
  • "Why isn't that feature working? Oh yeah, I just remembered you need to install wkhtmltopdf for that to work"; it's still not working, "oh, you didn't install that with the package manager did you, that one never works, you have to download a binary and install it manually."
In an environment with more than one project it's even worse, since you could be moving between different projects each with their own unique requirements. Vagrant allows you to configure what you need installed on your development machine and isolate it into a headless VM to use for development. In our consulting shop, a new developer can usually be up and running in about 15 minutes with a complete development environment and ready to start coding. And if you really manage to mess something up badly, you can just destroy the whole thing and rebuild it with a couple commands.

David Kerber has been developing since 2006 for Fortune 500s and startups. Currenty he works at Agape Red as a consultant where he builds software for small to medium size companies using a variety of technologies.

Zachary Briggs

Zachary Briggs

@theotherzach

Nobody will Train You but You

Why do we all know a developer who has been pounding out unmaintainable code for a decade or more? Why do people ""believe in TDD but I don't have time to write tests during crunch?"" How is it that we have an entire industry based around rescuing teams from acutely awful Rails apps? It's because on the job experience is a poor teacher, plateauing as soon as the developer is able to ship code that meets requirements. Schools teach Computer Science which is only tangentially related to being a developer and most kata's are approached incorrectly, giving no value at best, and reinforcing poor practices at worst. On top of all this, our pairs (for the lucky ones who pair program) probably have not shown us anything new in months. This presentation will give specific, concrete steps on how to slowly and steadily improve our game through practice and hard work. I'll identify what skill Rails developers should be focusing on and walk the audience through how to target and eliminate these weaknesses so that nothing but white hot joy streams out of our fingers and into our apps. There's no magic here, no secrets, and no hacks; just you and me working our butts off until we suck a little less.

Zach Briggs works as a back-end data jockey, dev ops monkey, and Rails developer for Call Copy. His first Rails app was written in early June of 2012 with no prior professional IT experience. By August 20th 2012 he was employed full time slinging Ruby and JavaScript. He contributes to open source, bakes, smokes meats, is a cyclist, and lives in Columbus OH with a wife he doesn't deserve.

Bryan Thompson

Bryan Thompson

@bryanthompson

SOA Safari in the Amazon

Amazon’s toolbox of services can be pretty intimidating at first, and there are many possible solutions for scalability and redundancy. We’ve combined those tools with the power of Ruby to build a decoupled highly-testable platform that is a developers dream. We’re going to share what we learned on this journey.

I’ve been developing software for most of my life. I’ve coded in many languages but finally was introduced to Ruby at a conference in Denver and have never looked back. Since then, I’ve been an attendee of many conferences but hadn’t had the urge to speak until now. I am continually looking to become a better developer while pushing the envelopes of the technology people consider the norm. Having recently written a large application in Ruby with a Service Oriented Architecture I believe I have a lot of powerful information to share that will motivate others to think outside the box.

Evan Light

Evan Light

@elight

Frustration Driven Development

Everyone draws inspiration and motivation from different sources. For most, it’s often frustration. We make life decisions, define new features, or refactor code when we get too annoyed by current circumstances. This is where [the speaker] admits they has a low tolerance for frustration. Having been frustrated a great deal during his career, [the speaker] will discuss several anti-patterns that they have seen in code and how to use the Dark Side of the Force (frustration, anger, and rage) to escape from them.

I've been a developer for 17 years the past six of which have been primarily in Ruby. While I came for the Rails but I stayed for the Ruby. The more that I learn, the less I feel that I know. But I love to share what I have learned, give back to the community, and benefit others and it puts my knowledge through the crucible of peer review. I also run the annual Ruby DCamp "conference" in Northern Virginia (going into our sixth year) and provide freelance development services (and I'm always looking for more work).

Kerri Miller

Kerri Miller

@kerrizor

Failure for Fun and Profit!

Do you actually know how deliberately acquire, sharpen, and retain a technical skill? In this talk, I'll discuss common strategies to enable you to be more focused, creative, and productive while learning, by using play, exploration, and ultimately failure. You'll leave knowing several "Experiential Learning" patterns and techniques that can help you turn failure into success. When was the last time you failed in a spectacular fashion? Was it really so bad? If you want to succeed, you first need to take a little time to fail.

Kerri Miller is currently a Software Development Lead at Blue Box Group. Prior to that, she was a developer on Amazon.com's Personalization team and has worked with a number of start-ups in the action sports industry. A passionate learner, she has worked as a lighting designer, puppeteer, sous chef, and professional poker player, and enjoys hiking, collecting Vespas, and working with glass.

PJ Hagerty

PJ Hagerty

@aspleenic

Ruby Groups: Act Locally - Think Globally

There are thousands of local Ruby groups worldwide. Sadly, many suffer along, become stagnant, some even die off. How can you make your local Ruby Group better and in so doing, improve the global Ruby Community? This talk focuses on the human side of getting a group together and making it successful so the members, as a group can contribute to the larger community. It is a universally useful guide to improving all parts of the ruby community, starting on a local level.

A Ruby on Rails developer for the last 4 years, I currently work at Engine Yard as the US-East Team Lead and Community Lead for their world-class Application Support team. Additionally, I organize the Western New York Ruby Brigade. Traveling to conferences and Ruby meet ups around the US and Canada, I like to spread the word on the importance of community and coding, stressing the importance of outreach and focusing on the human side of being a coder. I've been known to organize impromptu conference jam sessions, karaoke smackdowns, and am a member of the Original "RailsConf Band".

Schedule

Friday, April 5th, 2013

8:00AM Registration & Breakfast
9:00AM Welcome to Ruby Midwest
9:15AM Ready To Code: Automate Your Development Environment
David Kerber
9:45AM SOA Safari in the Amazon
Bryan Thompson
10:15AM Break/Snack/Coffee
10:45AM OOP and Philosophy
Steve Klabnik
11:15AM Failure for Fun and Profit!
Kerri Miller
11:45AM

Lunch

provided by Ruby Midwest
1:00PM Make Testing Fun with Test Reporters
Matt Sears
1:30PM Frustration Driven Development
Evan Light
2:00PM Break/Snack/Coffee
2:30PM Must Have 10+ Years People Experience
Ashe Dryden
3:00PM Rails Application Security in Practice
Bryan Helmkamp
3:30PM Break/Snack/Coffee
4:00PM Ruby Groups: Act Locally - Think Globally
PJ Hagerty
4:30PM Michael Feathers

Keynote


Michael Feathers
5:15PM Day 1 Closing
6:00PM Party begins at 1800 Baltimore

Saturday, April 6th, 2013

8:00AM Sleep in!
9:00AM Breakfast
9:45AM Welcome to Day 2 of Ruby Midwest
10:00AM Computer, Program Thyself!
Zee Spencer
10:30AM DCI: semiotics applied to software
Jaime Andrés Dávila
11:00AM Break
11:20AM More time for Open Source work with the help of the Pomodoro Technique
Matthias Günther
11:50AM

Lunch

on your own in downtown
1:30PM Lightning Talks
2:00PM Nobody will Train You But You
Zachary Briggs
2:30PM Functional Principals for OO Development
Jessica Kerr
3:00PM Break
3:20PM Lightweight Business Intelligence
Corey Ehmke
3:50PM The Most Important Optimization: Happiness
Ernie Miller
4:20PM Break
4:40PM James Edward Gray II

Keynote


James Edward Gray II
5:25PM Day 2 Closing
6:30PM Beer Thirty