I was asked to share a few memories of Jim Weirich as someone prepared for a conference talk about him, so I figured I'd share what came to mind here:
My cofounder Todd Kaufman would often refer to Jim as the "Santa Claus of the Ruby community". He was a big, jolly guy and he always brought joy to every room he was in. If people take away one thing to know about Jim, it's that even when he had 30 years of experience on someone, he always treated them with tremendous deference and respect. He always approached my ideas and questions as if they were urgent and fascinating, even if he'd encountered them dozens of times before. It's a trait I strive to imitate whenever I meet people at a user group or a conference, because it made such an impact on me when someone that I looked up to treated me like my experiences mattered to them.
I would sometimes drive 2 hours from Columbus to Cincinnati just to hang out at Jim's office. No matter what client work he had to do, he was never too busy for me. I remember when he was building rspec-given, which provided a clever approach to organizing your tests. I loved debating the finer points of how design decisions in a testing API would subtly influence the behavior of developers as they worked. Jim negotiated the nuanced intersection between software's cold technical realities and their mushy human counterparts like few others can.
Jim and I collaborated on the design of my test double gem
gimme. With the naive zealotry of youth, I implored Jim that the test double "spy" design pattern was superior to the traditional mocking approach he'd taken with his gem
flexmock. He debated me on the merits, and then actually followed up by going home and using gimme "in anger," so he could fully understand my perspective. Years later, he mentioned that I had convinced him and that he had actually redesigned flexmock to adopt the Arrange-Act-Assert flow enabled by the "spy" pattern.
Jim attended a few of my conference talks over the years, but on one occasion he sat in the front row, 5 feet in front of me as I presented. Jim was a hero to me and one of my favorite speakers, so I was terrified from the first minute on stage. Then, halfway through the presentation, Jim fell sound asleep. By the end of the talk, he was audibly snoring right there in front of everyone. As we were walking out of the room, he told me he absolutely loved the talk and proceeded to hold court with me as folks asked questions; naturally, he effortlessly answered a bunch of questions about the half of the presentation he'd slept through.