41554 blogs · [ { "id": "01a08795-2b91-72dc-b92e-aeb54db74e41", "title": "Engineering MBA - The Proposal", "url": "https://kevinjmurphy.com/posts/engineering-mba-proposal/", "published_at": "2022-08-04T01:27:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb54e2d084a", "title": "Enough Coverage To Beat The Band - The Proposal", "url": "https://kevinjmurphy.com/posts/enough-coverage-to-beat-the-band-proposal/", "published_at": "2022-08-04T01:26:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb54e50ae2f", "title": "Fake It While You Make It - The Proposal", "url": "https://kevinjmurphy.com/posts/fake-it-while-you-make-it-proposal/", "published_at": "2022-08-04T01:25:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb54e5f7ca7", "title": "Don’t Hang Me Out To DRY - The Proposal", "url": "https://kevinjmurphy.com/posts/dont-hang-me-out-to-dry-proposal/", "published_at": "2022-08-04T01:24:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb54f4fbc8d", "title": "I know I can, but should I? Evaluating Alternatives - The Proposal", "url": "https://kevinjmurphy.com/posts/evaluating-alternatives-proposal/", "published_at": "2022-08-04T01:23:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5502c5438", "title": "Request Spec Realistic Error Response", "url": "https://kevinjmurphy.com/posts/request-spec-realistic-error-response/", "published_at": "2022-07-17T11:33:10+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55030be94", "title": "Designing A Dependency's Domain", "url": "https://kevinjmurphy.com/posts/designing-dependency-domain/", "published_at": "2022-06-20T00:00:00+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5506c5da7", "title": "Testing Dependencies: Fake It While You Make It", "url": "https://kevinjmurphy.com/posts/testing-dependencies/", "published_at": "2022-06-06T01:15:06+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb551413b60", "title": "Searching for a Reason", "url": "https://kevinjmurphy.com/posts/searching-for-a-reason/", "published_at": "2022-05-15T11:00:00+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb551e47c7e", "title": "Scraping Buy: Scripting for a Purchase", "url": "https://kevinjmurphy.com/posts/scraping-buy/", "published_at": "2022-05-11T20:53:59+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb552864671", "title": "Code and the Coding Coders who Code it Podcast Appearance", "url": "https://kevinjmurphy.com/posts/coding-coders-podcast-2022/", "published_at": "2022-05-11T12:27:36+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb552eb0c52", "title": "Joining BookBub", "url": "https://kevinjmurphy.com/posts/bookbub-start/", "published_at": "2022-05-02T10:23:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb553788231", "title": "Browser History Confessional: Searching My Recent Searches", "url": "https://kevinjmurphy.com/posts/browser-history/", "published_at": "2022-04-13T12:55:10+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5540c1b82", "title": "Available For Hire", "url": "https://kevinjmurphy.com/posts/available-for-hire-2022/", "published_at": "2022-03-28T16:16:47+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb554d9a0f0", "title": "Finding an Initially Confusing Result in Rails", "url": "https://kevinjmurphy.com/posts/find-or-initialize-by-block/", "published_at": "2022-03-14T11:30:41+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5554baf22", "title": "Business Process Management: A Developer's Business", "url": "https://kevinjmurphy.com/posts/business-process-management/", "published_at": "2022-02-28T12:19:33+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5556efdb2", "title": "Core Competency: A Developer's Business", "url": "https://kevinjmurphy.com/posts/core-competency/", "published_at": "2022-02-14T12:19:33+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55624fc19", "title": "Competitive Advantage: A Developer's Business", "url": "https://kevinjmurphy.com/posts/competitive-advantage/", "published_at": "2022-01-31T12:19:33+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5566e46e6", "title": "Situational Leadership: A Developer's Business", "url": "https://kevinjmurphy.com/posts/situational-leadership/", "published_at": "2022-01-17T12:25:00+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5572c568a", "title": "2021 Year-End Review", "url": "https://kevinjmurphy.com/posts/2021-review/", "published_at": "2021-12-13T22:04:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55779c3b5", "title": "Setter Method Return Values In Ruby", "url": "https://kevinjmurphy.com/posts/ruby-setter-return-value/", "published_at": "2021-11-18T00:04:22+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55794c69a", "title": "Joining Vendr", "url": "https://kevinjmurphy.com/posts/vendr-start/", "published_at": "2021-10-25T11:00:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5585fb926", "title": "Ruby's Got You Covered", "url": "https://kevinjmurphy.com/posts/rubys-got-you-covered/", "published_at": "2021-10-22T00:00:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb559268345", "title": "Gnarly Endings", "url": "https://kevinjmurphy.com/posts/gnarly-endings/", "published_at": "2021-10-15T11:00:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb559a7c572", "title": "Code Golf: Conditionally Add To An Array", "url": "https://kevinjmurphy.com/posts/code-golf-conditionally-add-to-array/", "published_at": "2021-09-28T23:00:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55a22b188", "title": "Buffered IO Streams In Ruby", "url": "https://kevinjmurphy.com/posts/ruby-io-buffer/", "published_at": "2021-09-20T13:00:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55ab41667", "title": "Best Practices Are The Best For Whom?", "url": "https://kevinjmurphy.com/posts/remote-ruby-143/", "published_at": "2021-08-26T23:13:09+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55b717862", "title": "Temporary State With Blocks Post Sharing", "url": "https://kevinjmurphy.com/posts/temporary-state-blocks-sharing/", "published_at": "2021-08-22T23:13:09+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55be6bc71", "title": "Temporary State in Tests: Bloc(k) Party", "url": "https://kevinjmurphy.com/posts/temporary-state-in-tests/", "published_at": "2021-08-14T18:05:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55cd203e9", "title": "CSV Validation Post Sharing", "url": "https://kevinjmurphy.com/posts/csv-validation-sharing/", "published_at": "2021-07-27T23:13:09+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55d11d82d", "title": "Validate CSV Input With ActiveModel::Validations", "url": "https://kevinjmurphy.com/posts/active-model-validations-csv/", "published_at": "2021-07-19T12:08:53+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55d7caa09", "title": "Appearance on Rails With Jason Podcast", "url": "https://kevinjmurphy.com/posts/rails-with-jason-podcast/", "published_at": "2021-06-17T15:45:52+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55e6e0d96", "title": "Ruby Weekly 554", "url": "https://kevinjmurphy.com/posts/ruby-weekly-554/", "published_at": "2021-05-28T11:50:04+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55ec9548f", "title": "RailsConf Roundup 2021", "url": "https://kevinjmurphy.com/posts/railsconf-roundup-2021/", "published_at": "2021-05-19T14:50:20+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb55f1824aa", "title": "ActiveRecord's New Takes a Block, Kid", "url": "https://kevinjmurphy.com/posts/activerecord-new-block/", "published_at": "2021-05-14T17:20:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56010559c", "title": "Consistency Conundrum", "url": "https://kevinjmurphy.com/posts/consistency-conundrum/", "published_at": "2021-04-24T18:14:09+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56069ff21", "title": "To Change or Not to Change", "url": "https://kevinjmurphy.com/posts/to-change-or-not-to-change/", "published_at": "2021-04-18T11:29:25+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb560e6c8cf", "title": "Wrapping Up Rails Exceptional Behavior", "url": "https://kevinjmurphy.com/posts/wrapping-up-rails-exceptional-behavior/", "published_at": "2021-03-28T18:15:20+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb561174951", "title": "(W)rapping About Exceptional Behavior in Rails", "url": "https://kevinjmurphy.com/posts/wrapping-about-exceptional-behavior-in-rails/", "published_at": "2021-03-22T00:24:01+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb561467292", "title": "Engineering MBA", "url": "https://kevinjmurphy.com/posts/engineering-mba/", "published_at": "2021-03-13T01:30:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb562415fea", "title": "Engineering MBA @ RailsConf", "url": "https://kevinjmurphy.com/posts/engineering-mba-railsconf/", "published_at": "2021-03-08T12:12:10+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5624a546e", "title": "Featured in Ruby Weekly 541", "url": "https://kevinjmurphy.com/posts/ruby-weekly-541/", "published_at": "2021-02-25T23:20:36+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb562fbb702", "title": "Querying PaperTrail Object Changes in JSON", "url": "https://kevinjmurphy.com/posts/querying-papertrail-object-changes-json/", "published_at": "2021-02-15T21:47:03+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb563dae647", "title": "Featured in Ruby Weekly", "url": "https://kevinjmurphy.com/posts/ruby-weekly-539/", "published_at": "2021-02-11T20:20:36+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb564c14513", "title": "Nokogiri Notoriety", "url": "https://kevinjmurphy.com/posts/nokogiri-notoriety/", "published_at": "2021-01-13T23:20:36+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5658a82ed", "title": "Caching All Native Ruby Gem Platforms", "url": "https://kevinjmurphy.com/posts/caching-all-native-gem-platforms/", "published_at": "2021-01-06T17:20:07+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb565db2d59", "title": "Stringing Code Together to Play Music", "url": "https://kevinjmurphy.com/posts/stringing-code-together-to-play-music/", "published_at": "2020-12-15T12:03:46+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb566b6d3ea", "title": "Using Sonic Pi to Play Music With Ruby", "url": "https://kevinjmurphy.com/posts/using-sonic-pi-to-play-music-with-ruby/", "published_at": "2020-12-14T23:48:24+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb566f3f115", "title": "Inheritance: Derivative Songwriting", "url": "https://kevinjmurphy.com/posts/inheritance-derivative-songwriting/", "published_at": "2020-12-10T21:56:38+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb567963bd8", "title": "Synthesizing Composition With Delegation", "url": "https://kevinjmurphy.com/posts/synthesizing-composition-with-delegation/", "published_at": "2020-12-05T19:00:55+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56859d9ce", "title": "Shedding a Light on Duck Typing", "url": "https://kevinjmurphy.com/posts/shedding-light-on-duck-typing/", "published_at": "2020-12-03T17:10:31+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb568a5a748", "title": "Dependency Injection: Plug In", "url": "https://kevinjmurphy.com/posts/dependency-injection-plug-in/", "published_at": "2020-11-24T19:10:31+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb5693a7b17", "title": "Explain Like I'm Five", "url": "https://kevinjmurphy.com/posts/explain-like-im-five/", "published_at": "2020-11-11T20:38:10+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56a2d5b50", "title": "Enough Coverage To Beat The Band", "url": "https://kevinjmurphy.com/posts/coverage/", "published_at": "2020-10-19T12:12:10+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56ab48e12", "title": "Enough Coverage To Beat The Band at RubyConf", "url": "https://kevinjmurphy.com/posts/rubyconf-2020/", "published_at": "2020-09-16T23:47:00+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56ba43abe", "title": "Fake It While You Make It", "url": "https://kevinjmurphy.com/posts/railsconf-2020/", "published_at": "2020-04-07T00:05:03+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56c88fafe", "title": "Coding for Fun (Not Profit)", "url": "https://kevinjmurphy.com/posts/coding-for-fun-not-profit/", "published_at": "2019-12-31T13:56:04+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56d6f9b25", "title": "Diffin' Dots", "url": "https://kevinjmurphy.com/posts/diffin-dots/", "published_at": "2019-12-31T02:04:53+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56e0406ae", "title": "Don’t Hang Me Out To DRY", "url": "https://kevinjmurphy.com/posts/rubyconf-2019/", "published_at": "2019-12-31T01:57:49+00:00" }, { "id": "01a08795-2b91-72dc-b92e-aeb56e34cca0", "title": "I Know I Can, But Should I?", "url": "https://kevinjmurphy.com/posts/railsconf-2019/", "published_at": "2019-12-30T22:40:50+00:00" } ] posts Claim your blog
Back to kevinjmurphy.com
Blog · corpus.blog/blogs/kevinjmurphy.com/posts

kevinjmurphy.com

kevinjmurphy.com

2022

2021

2020

2019