What I’ve been listening to since last time| Kevin Murphy
The videos for RailsConf 2025 have been posted on YouTube, which includes my session| Kevin Murphy
How can we approach being consistent within a codebase while also continuing to evolve?| Kevin Murphy
RailsConf 2025 🔗 RailsConf recently wrapped up in Philadelphia, Pennsylvania. The 2025 conference, and also the RailsConf event itself is now over as far as we know it. This post is meant to highlight the great work from all involved. I hope you’ll seek out the full videos of all the sessions that interest you once they are available. Unfortunately, I couldn’t be everywhere, so this covers what I saw. Preparing 🔗 Just as I’ve done in the past, I joined Ruby Central members for the...| Posts on Kevin Murphy
Abstract 🔗 RailsConf has played an important role in my professional and personal life. I’ve learned about technology in ways I wouldn’t have otherwise at RailsConf. I’ve learned about myself in ways I wouldn’t have otherwise thanks to RailsConf. I’ve met people that changed the course of my career thanks to RailsConf. I’ve met others who have become dear friends thanks to RailsConf. I’ve done things I’ve never done before thanks to RailsConf. The same may be true for you. ...| Posts on Kevin Murphy
Frequently Played 🔗 I tend to listen to the same songs or albums on repeat that are evocative of how I’m feeling or what’s going on with me. Here is what I’m currently listening to over, and over, and over, and over, again. Nothing Matters 🔗 I am definitely consuming all things The Last Dinner Party lately. Full Lyrics Even when the cold comes crashing through, I’m putting all my bets on you I hope they never understand us I put my heart inside your palms, my home in your arms, ...| Posts on Kevin Murphy
The proposal for a talk I gave at RailsConf 2025.| Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
This post explores how concerns with controller callbacks are ordered against other callbacks| Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
RailsConf 2025 🔗 I’m honored to be speaking at the final RailsConf this July in Philadelphia.I’ll be speaking on Thursday, July 10 at 10:15am on the Main Stage in theLiberty room. How 10 years of RailsConfs can inform the next 10 years of your career 🔗 RailsConf has played an important role in my professional and personal life. I’ve learned about technology in ways I wouldn’t have otherwise at RailsConf. I’ve learned about myself in ways I wouldn’t have otherwise thanks to R...| Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
Flash Sale! 🔗 We’re offering our best deals on select products for a limited time. We’re going to link to this flash sale from many different pages on our site. The call-to-action (CTA) we display at the top of the flash sale page will change based on which page you access the flash sale from. We’re going to store that text in a flash message. For example, let’s say you’re looking for the contact information for everyone at the shop. If you click a link on that page to visit the ...| Posts on Kevin Murphy
I try to do the bare minimum of development work on this actual site. That way my time spent here is on actually blogging. That’s why I chose hugo over something like Bridgetown. By intentionally choosing a static site generator written in a language I’m less familiar with, I’m less likely to tinker. Due to a tragedy with a git submodule this morning (that is…deleting it), I ran into an issue where my custom deploy script would no longer deploy. Attempts to reconfigure the submodule w...| Posts on Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
This post may appear to be about new functionality in Ruby. However, it may instead be an attempt to write an article with the worst possible SEO. Anyway, hit it. What Is It? 🔗 As of Ruby 3.4, it is another way to refer to the first parameter in a block. This may be more obvious by way of an example. ["What is it?"].map { it +" It's it" } *4=>["What is it? It's it","What is it? It's it","What is it? It's it","What is it? It's it",] The block we pass to map does not define a name for the pa...| Posts on Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
This isn’t a “real” post. This is a summary of all the things that made up my year in 2024 (almost all in a professional context). Thanks to all who were a part of it. Writing 🔗 I published 7 articles about Ruby or software development in general this year. The first was about possible RailsConf tracks. My last post of the year covered what I saw at RubyConf. In between conference posts, I wrote about Sidekiq batches, accessing request headers in Rails, and RSpec stubbing. I continue...| Posts on Kevin Murphy
What I’ve been listening to since last time| Kevin Murphy
RubyConf 2024 🔗 RubyConf recently wrapped up in Chicago, Illinois. This post is meant to highlight the great work from all involved. I documented my updates from “on the ground” elsewhere. I hope you’ll seek out the full videos of all the sessions that interest you once they are available. Unfortunately, I couldn’t be everywhere, so this covers what I saw. I certainly did not come anywhere close to doing all the things I planned. Day 1 🔗 Opening Keynote 🔗 Yukihiro “Matz” ...| Posts on Kevin Murphy
RubyConf 2024 🔗 I’m starting this post from Terminal B in Logan Airport (Boston). Waiting for my plane, I figured I might put together a post to document a quick and loose exploration of what I see while I’m in Chicago. Travel 🔗 I had a surprisingly uneventful airport experience. Got there bright and early. Left and arrived without issue. For anyone landing at Midway, look for the “Ground Transportation” signs, and eventually “CTA”. The Orange Line Loop to Roosevelt will get...| Kevin Murphy
Frequently Played 🔗 I tend to listen to the same songs or albums on repeat that are evocative of how I’m feeling or what’s going on with me. Here is what I’m currently listening to over, and over, and over, and over, again. Great Expectations 🔗 I have to admit, I’ve never read the book. Full Lyrics And I learned about the blues from this kitten that I knew Her hair was raven and her heart was like a tomb My heart is like a wound And I saw taillights last night in a dream about m...| Posts on Kevin Murphy
Frequently Played 🔗 Maybe you’re wearing a witch hat today, like my daughter will be. Maybe you’d befine treating it like just another day, like I am. Either way, enjoy the day. Halloween 🔗 Full Lyrics And who are you supposed to be? You look like heaven tonight Me, I’m a tomb, a corpse in a suit Trying to look a little alive Are you alright? ‘Cause I worry sometimes Are you dressed up to take my life? A Night with the Jersey Devil 🔗 Full Lyrics Set my flesh to burning, whils...| Posts on Kevin Murphy
Frequently Played 🔗 I tend to listen to the same songs or albums on repeat that are evocative of how I’m feeling or what’s going on with me. Here is what I’m currently listening to over, and over, and over, and over, again. 21 Days 🔗 In my experience, it takes more than 21 days. Full Lyrics I miss you most In the morning We used to talk Over coffee But now I’m gonna have to find Another friend When it’s over We do the leaving We do the crying We do the healing And they...| Posts on Kevin Murphy
Conference Talk Preparation Series 🔗 Sharing Past Conference Proposals Building Conference Talk Content Preparing Conference Talk Delivery Happy CFP Season! 🔗 Is it time to respond to a CFP? CFP stands for Call For Proposals. Conferences are looking for speakers, and they want to hear from you. I hope you’ll consider submitting. To celebrate, I’ve published each of my accepted proposals. This is definitely not me procrastinating on writing new proposals. This post is a whimsical sum...| Posts on Kevin Murphy
Building in 3D 🔗 I make a lot of things. Most commonly code. I blog (maybe you’re aware, given you’re here). I build conference talks. Sometimes manifestos. Most of these live on the computer. Sometimes I need to step away and not look at a screen. On occasion, I’ll build some piece of furniture we need in the house. Or some small accessory out of wood that I’ll use on my desk. This is one such time, and I decided to document it. Similar to my recent posts on music I’m listening ...| Posts on Kevin Murphy
eBike eXcitement 🔗 This evening, on the way home from gymnastics, with my daughter in the rear cargo seat, my eBike’s odometer ticked over 1,000 miles. I was riding at the time, so you’ll need to settle for the obligatory picture of it at 1,001 miles. And you’ll have to trust me that by getting to 1,001 I first rode 1,000 miles. We’ve had the eBike for almost 14 months, and it’s been the primary way my daughter and I get around town. I ride her into school every day on the bike, ...| Kevin Murphy
Building in 3D 🔗 I make a lot of things. Most commonly code. I blog (maybe you’re aware, given you’re here). I build conference talks. Sometimes manifestos. Most of these live on the computer. Sometimes I need to step away and not look at a screen. On occasion, I’ll build some piece of furniture we need in the house. Or some small accessory out of wood that I’ll use on my desk. This is one such time, and I decided to document it. Similar to my recent posts on music I’m listening ...| Kevin Murphy
Publish or Perish 🔗 Let’s say we’ve been sitting on a handful of blog posts that are ready to publish, but we haven’t released yet. This is a fictional story that in no way mirrors reality of any particular writer. Certainly not the author writing this post now. In a spirit of inspiration, we decide to write a small class to publish all these posts that exist in our system. classDraftPostdefself.publish_allPost.draft.map(&:publish)endend Rather than actually publish them, we’ve suc...| Posts on Kevin Murphy
Frequently Played 🔗 I tend to listen to the same songs or albums on repeat that are evocative of how I’m feeling or what’s going on with me. Here is what I’m currently listening to over, and over, and over, and over, again. The Blues, Mary 🔗 Brian Fallon may be best known as the lead singer of The Gaslight Anthem. I appreciate his solo work during their hiatus too. I think future entries of this series will feature a lot of Brian’s output. Full Lyrics I learned how to cry In the...| Posts on Kevin Murphy
This post explores where to access request headers by looking at the Rails source code after unexpectedly accessing the response headers.| Kevin Murphy
This discusses the importance that conferences have on my career and what was great about RailsConf 2024.| kevinjmurphy.com
A summary of my time at RailsConf 2024.| Kevin Murphy
I was a guest on the Ruby for All podcast.| Kevin Murphy
This post provides an introduction to using Sidekiq batches, which is available in Sidekiq Pro.| Kevin Murphy
I'm on the RailsConf 2024 Program Committee. We just released the program and I'm sharing some tracks I brainstormed that will not be part of the program.| kevinjmurphy.com
I'm on the RailsConf 2024 Program Committee. I hope you'll consider submitting a talk to the CFP and joining us in Detroit May 7-9.| Kevin Murphy
I read a lot of Ruby news throughout the week. When someone asks me what they should follow, I first suggest that they not follow exactly the same blogs I do. Then I share the RSS feeds I follow just in case. But what I do suggest is starting with the following places. These highlight the work of others on a weekly basis. I then suggest they keep up with what resonates with them inside these round-ups. Sunday 🔗 As you get ready to start your work week, what’s new out there that can get y...| Posts on Kevin Murphy
I’ve created an account on Bluesky. You can follow along and connect with me here. At the time of this writing, I have no invite codes available to share.| Posts on Kevin Murphy
I’m thrilled to be part of the program for Blue Ridge Ruby 2023 in Asheville, North Carolina. I’ll be speaking about Ruby’s Coverage module. I hope you can join us!| Posts on Kevin Murphy
I was a guest on episode 456 of The Ruby on Rails Podcast| kevinjmurphy.com
RubyConf 2022 Videos Released 🔗 RubyCentral has released the videos from RubyConf and RubyConf Mini 2022 ontheir YouTube page. That includes my talk, “Anyone Can Play Guitar (With Ruby)”. My slides, proposal, code examples, and related blog posts are available to accompany the talk. If you’re curious for other talks to check out, you can see my RubyConf Mini recap for some ideas.| Posts on Kevin Murphy
This isn’t a “real” post. This is a summary of all the things that made up my year in 2022. Thanks to all that were a part of it. Writing 🔗 I published 16 articles about Ruby or software development in general this year. I started with a series about what we as developers can apply from a MBA curriculum. My last post of the year covered what I saw at RubyConf Mini. In between, I wrote about find_or_initialize_by, RSpec request specs, released my past conference proposals, and more. M...| Posts on Kevin Murphy
I’ve created an account on Mastodon, specifically on the ruby.socialinstance. You can follow along and connect with me here.| Posts on Kevin Murphy
I am the latest guest on the Code and the Coding Coders who Code it podcast. Drew Bragg and I cover prepping a talk for RailsConf, finding a job, and writingwords about code that aren’t code. You can listen here. Drew and I stuck around unexpectedly to discuss our shared love of hockey, thatyou can hear here.| Posts on Kevin Murphy
Here is a list of the main things, mostly professional, that happened with me this year.| kevinjmurphy.com
I’m happy to say that today is my first day as a member of Vendr! I’m looking forward to meeting everyone. I’m excited to help the development team help everyone reduce the friction involved with buying SaaS products.| Posts on Kevin Murphy
Today is my last day at The Gnar Company. I joinedthe company over five years ago excited to work with a great group ofindividuals, many of whom I’d worked with before. Though many of the people havechanged, and the team has grown, the people that work at The Gnar are stillsome of the greatest people I’ve had the pleasure to work with. I’m thankful to every member of the team, past and present, who helped makeworking at The Gnar Company the special experience that it is.| Posts on Kevin Murphy
Last week, I wrote a post on myemployer’s blog about using blocks in ruby to temporarily alter the state ofthe application, and how that can be particularly helpful in tests. That post was featured in Ruby Radar #12. This post was also featured in Ruby Weekly #568.| Posts on Kevin Murphy
Last week, I wrote a post on myemployer’s blog aboutvalidating input from a CSV file using ActiveModel::Validations. That post was featured in Ruby Weekly #562. It was also shared in Awesome Ruby #270. This is the first time I’ve been inAwesome Ruby! All of my blog posts are cross-posted on dev.to,and their ruby community was nice enough to share my post with their twitterfollowers. Validate CSV Input With ActiveModel::Validations { author: @kevin_j_m } #DEVCommunityhttps://t.co/8AYMpkX7y...| Posts on Kevin Murphy
Installing nokogiri with MY instructions| Kevin Murphy
I'm still going to be writing, but not holding myself to publishing an article every month.| kevinjmurphy.com
The Blue Ridge Ruby 2023 videos are available on YouTube| kevinjmurphy.com
Here is a list of the main things, mostly professional, that happened with me this year.| kevinjmurphy.com
This site now has search site powered by Pagefind| kevinjmurphy.com
A summary of my time at RubyConf 2023| kevinjmurphy.com
I had a great time meeting ruby friends old and new at RubyConf. This shares the selfies I took.| kevinjmurphy.com
I was a guest on the Ruby for All podcast.| kevinjmurphy.com
This post walks through the steps I take once I've built a conference talk slide deck. These are the practice steps and preparations I take to hit the stage.| kevinjmurphy.com
I co-hosted episode 488 of The Ruby on Rails Podcast to talk about RubyConf 2023.| kevinjmurphy.com
This documents my methodology of taking an accepted talk proposal and building the slides and content around it.| kevinjmurphy.com
Presentation resources for a talk about teaching a computer to play guitar with object-oriented design principles.| kevinjmurphy.com
Be The Boss of Your Own Work| Kevin Murphy
This post describes different ways of testing inherited behavior, including duplicating the tests, not testing the inherited behavior, and using a shared example.| kevinjmurphy.com
Today is my first day joining the team at BookBub.| kevinjmurphy.com
Using Coverage To Stage A Concert Tour| Kevin Murphy
A summary of my time at Blue Ridge Ruby 2023| kevinjmurphy.com
This post explores how flog, a tool that analyzes the complexity of your code, can identify areas to refactor.| kevinjmurphy.com
This post explores inheritance and composition as a way to build and share behavior in a system to model guitar amplifiers.| kevinjmurphy.com
This post explores different domain modeling tools and object-oriented development to teach a computer how to play the guitar like Stevie Ray Vaughan.| kevinjmurphy.com
Calling freeze on an object may not provide the immutability you expect. Here we dig into some of freeze's nuances to explore a surprise of my own making I encountered working with ActiveSupport.| kevinjmurphy.com
I had my first commit with a code change introduced into the Ruby programming language.| kevinjmurphy.com
A summary of my time at RubyConf Mini 2022| kevinjmurphy.com
This provides a crude mechanism for piping sound output from your ruby program into Sonic Pi to have it sound like playing a guitar.| kevinjmurphy.com
The proposal for a talk I gave at RubyConf Mini 2022.| kevinjmurphy.com
This post utilizes a score of Array and Enumerable methods to model music notes.| kevinjmurphy.com
There are many options to arrange test doubles with RSpec. This article proposes doing so in a way that provides a consistent test organization.| kevinjmurphy.com
The proposal for a talk I gave at RailsConf 2022.| kevinjmurphy.com
The proposal for a talk I gave at RailsConf 2021.| kevinjmurphy.com
The proposal for a talk I gave at RubyConf 2020.| kevinjmurphy.com
The proposal for a talk I gave at RailsConf 2020.| kevinjmurphy.com
The proposal for a talk I gave at RubyConf 2019.| kevinjmurphy.com
The proposal for a talk I gave at RailsConf 2019.| Kevin Murphy
RSpec request specs can test endpoints that raise exceptions handled by Rails to return 4xx or 5xx responses. To test the returned response code, rather than the exception, you need extra setup.| kevinjmurphy.com
This article decomposes an interaction with an external dependency into its component parts.| kevinjmurphy.com
There are many ways to test usage of third-party dependencies. This article explores four approaches: direct interaction, stubbing, faking, and fixtures.| kevinjmurphy.com
Why do we search for information? I consider the four main reasons I do: solving direct problems, recalling details, revisiting assumptions, and sharing communal knowledge.| kevinjmurphy.com
I wrote a small script to scrape a website to tell me when guitars were in stock.| kevinjmurphy.com
Presentation resources for a talk about why we search for help in our day-to-day lives as software developers.| kevinjmurphy.com
Kevin Murphy is looking for his next full-time remote role.| kevinjmurphy.com
Rails' find_or_initialize_by method accepts an optional block, but that block is only executed when an existing record is not found by the provided attributes.| kevinjmurphy.com
Business Process Management follows five steps to continuously improve processes. Developers are responsible for representing business processes in the applications they build.| kevinjmurphy.com
Core competencies are unique capabilities that a firm delivers. Developers can consider their group's core competencies to make a build vs. buy vs. borrow decision.| kevinjmurphy.com
Competitive Advantage strategies (cost, differentiation, and focus) provide a blueprint for options available to succeed as a company with competitors or as an individual looking for your next job.| kevinjmurphy.com
The Situational Leadership model introduces four different leadership styles: directing, coaching, supporting, and delegating. Knowing which to use in the current situation is what makes for a successful and adaptable leader.| kevinjmurphy.com
Ruby setter methods may not return the result you expect them to. Find out what they return, and why, in this article.| kevinjmurphy.com
Ruby's expressiveness and vast API provides a myriad of ways to solve the same problem. This post proposes different ways to add elements to an array only if a certain condition applies.| kevinjmurphy.com
Ruby IO may not immediately write where you are asking it to. Here we explore where writing to a stream goes and when it may or may not be committed where you would expect it to.| kevinjmurphy.com
Clarifying who is responsible for conveying the intent of best practices, as heard on Remote Ruby 143.| kevinjmurphy.com