Software Developer


I have experience speaking both in-person and remotely. I’ve delivered live and pre-recorded talks. If you’re interested in me speaking at your event, you can email me.

Anyone Can Play Guitar (With Ruby) 🔗

I’ve got the blues. I’ve been looking for the perfect guitar tone, but haven’t found it. To amp up my mood, let’s teach a computer to play the guitar through an amplifier.

Let’s string together object-oriented principles to orchestrate a blues shuffle. We’ll model our domain with the help of inheritance, composition, and dependency injection. This talk will strike a chord with you, whether you’ve strummed a guitar before or not.

Read More

Browser History Confessional 🔗

We all only have so much working memory available in our brains. Developers may joke about spending their day composing search engine queries. The reason it’s a joke is because of the truth behind it. Search-driven development is a reality.

Join me, and my actual search history, on a journey to solve recent challenges I faced. I’ll categorize the different types of information I often search for. You’ll leave with tips on retrieving the knowledge you need for your next bug, feature, or pull request.

Read More

Engineering MBA 🔗

Improve your work as a developer with an introduction to strategic planning, situational leadership, and process management. No balance sheets or income statements here; join me to learn the MBA skills valuable to developers without the opportunity costs of lost wages or additional student loans.

Demystify the strategic frameworks your management team may use to make decisions and learn how you can use those same concepts in your daily work. Explore the synergy one developer achieved by going to business school (sorry, the synergy comment slipped out - old habit).

Read More

Enough Coverage To Beat The Band 🔗

The lights cut out. The crowd roars. It’s time. The band takes the stage. They’ve practiced the songs, particularly the covers. They’ve sound checked the coverage of the speakers. They know the lighting rig has the proper colored gels covering the lamps. They’re nervous, but they’ve got it all covered.

Similarly, code coverage can give you confidence before your app performs on production and also tell you how live code is used (or not used). We’ll cover how to leverage ruby’s different coverage measurement techniques in concert to assist your crew and delight your audience.

Read More

Fake It While You Make It 🔗

We all write code to interface with external systems, like a web service or a message queue. Can you confidently write tests without requiring the system as a dependency? How can you shield users of your code from the inner workings of the interface? Explore one attempt to answer these questions.

There’s no shortage of tools at your disposal to solve these problems. This talk will introduce some available options, provide guidance on when one approach may be more appropriate than another, and discuss how to use these tools together to ease the testing process.

Read More

  • RailsConf 2020

Don’t Hang Me Out To DRY 🔗

Close your eyes and imagine the perfect codebase to work on. I bet you’ll say it has complete test coverage. It’s fully-optimized, both in terms of performance and architectural design. And, of course, it contains only DRY code. Surely we can all agree that this is an aspirational situation. But…do we really want that?

Don’t get me wrong; these qualities are all beneficial. However, if we also think we should value everything in moderation, when should we push back on these ideals? What problems can they introduce? Let’s talk about the exceptions to some of the “rules” we all hold dear.

Read More

I Know I Can, But Should I? 🔗

You can use a hammer to drive a screw into wood, but I’d recommend a screwdriver. Why? And when is a hammer the better option? This talk will propose a framework to use when comparing alternative technical choices. I won’t decide for you, but will leave you with a structure to apply in your decision-making process.

The ruby toolbox is vast. While Rails provides a default experience, it leaves plenty of room for alternatives. In learning how to do something, you may uncover different ways to accomplish the same goal. Determine which tool fits best in your situation with these lessons.

Read More

Podcasts 🔗

Rails With Jason 🔗

I joined Jason Swett on his podcast to talk about my RailsConf 2021 talk: Engineering MBA. You can listen here.

Remote Ruby 🔗

I joined Andrew, Chris, and Jason to talk about code coverage, DRY code, and writing performant code - and the potential downsides of focusing on those practices. You can listen here.

Code and the Coding Coders who Code it 🔗

Drew Bragg and I cover prepping a talk for RailsConf, finding a job, and writing words about code that aren’t code. You can listen here. If you want some bonus hockey talk, you can listen to that here.

The Ruby on Rails Podcast 🔗

Brittany Martin and I talked about BookBub, coverage, contributing to Ruby, and conference speaking. You can listen here.

The Ruby on Rails Podcast (Again) 🔗

I joined Brittany for a chance to talk with Allison McMillan and Chelsea Kaufman from Ruby Central about RubyConf 2023. You can listen here.

Ruby for All 🔗

I joined Julie and Andrew to talk about conference speaking (and attending). You can listen here.

Ruby for All (Again) 🔗

I joined Julie and Andrew to talk about RailsConf 2024. Julie and I are both on the RailsConf 2024 Program Committee, and shared our experience thus far. You can listen here.