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.

The JavaScript Playbook

Writing production quality JavaScript is hard, but it's not impossible. This talk looks at the patterns, tools, libraries and workflows that I use to be successful with this challenging language in the browser. I talk about the pain we've felt from mistakes I've made and how that informed my tool choices.

We'll cover when it's a good idea to isolate the frontend code and how to do that. I'll talk about stubbing API calls so that frontend workflow can be free of server side concerns. Finally, we'll cover the testing libraries and tools that Test Double uses to keep code sane.

  • Geekfest - February 2014
  • KCDC - May 2014
  • Path To Craft - May 2014

You’re Not Special

Top Talent, Rockstars, A-Players. Tradition states that these are exceptional humans, possessing talents that others do not. The good news is they are not special, they were not born into success.

The better news is that you’re not special either.

This talk is about learning to learn, putting ourselves in a place where being more awesome is inevitable. It will explore how the brain’s structure changes as we internalize skills and how that can be used to build positive feedback loops. It talks about how I believe that focus itself is an acquired skill and how we can nurture that to build more grit. Finally, we explore how our perception of others effects their ability to grow.

This talk is for anybody who’s ready to stop being special and start becoming great.

  • DBCx - April 2014
  • KalamazooX - April 2014
  • Geekfest - June 2014

What's Your Problem?

You're 3 nested conditionals deep in a 50 line procedure wondering what you did to deserve this incomprehensible codebase. BDD, TDD, OOP, FP, and all the other letters of the alphabet won't help, at least not on their own. Before better coding practices must come the question: "What is the problem we're solving?

This talk makes the case that it is impossible to do our jobs as software creators without first fully grasping the problem being solved. We'll then discuss practical ways to discover the problem statement when all we have to work with is a feature request.

  • Refactor::Chicago - August 2014

Angular’s Missing Guide: Build Anything With These 5 Concepts

AngularJS empowers developers by providing the means to rapidly create rich user experiences, but its API is massive and you’re busy. This session teaches the 5 concepts that you need to get productive in Angular, fast: ng-controller, ng-repeat, ng-model, ng-click, and filter. You’ll then see how they’re used together by exploring realistic and approachable code examples. Attendees will walk out of this session with the tools needed to ship engaging, interactive, websites.

  • CodeMash - January 2015

Angular 2 in Plain JavaScript

Angular sure seemed like a good idea…that is, until Angular 2 was announced. Overhauled syntax, confusing upgrade news, and all the official examples written in TypeScript by default; did we make a huge mistake? I don’t know but maybe we can find out together. This session illustrates Angular 2 being used with plain JavaScript. Attendees will leave the session having seen specific examples of Angular 2 being used for routing, network requests, form validation, and basic data binding. More importantly, attendees will leave the session with enough information to make up their own minds about the future of the Angular framework.

  • CodeMash - January 2016

JavaScript for Rails

Frontend JavaScript is a swampland of buzzwords, leaky abstractions, and complicated toolchains. Lucky for you and me, there are some simple techniques we can use to avoid the quagmire and build dynamic, modern user interfaces that solve human problems. In this talk I’ll show you a technique for embedding JavaScript components inside of otherwise server rendered pages to create islands of interactivity. This can be done with your existing build system, adding nothing but 20KB of gzipped JavaScript and a dash of common sense.