Hello friends,

I’m writing this from Harrisburg, Pennsylvania. I spent the weekend with my kids down the road in York, and today I’m headed back to Knoxville.

One of my daughters asked me why I go to so many conferences, including one over her birthday. The temptation when a kid asks a question like this is to say “I have to”. But the truth is, I don’t have to. There’s very little we have to do. Some choices just have greater consequences than others. (And the consequences vary unevenly based on our circumstances/privileges.)

So I told her the truth: I choose to go to conferences. I choose partly because it helps with my work, and partly because I get to see old friends and meet new ones. But most of all, I go because I get to help people and sometimes change lives. I don’t just imagine this to be the case; I have countless emails and postcards and personal conversations to confirm it. I have a ministry, and my software conference presence is part of it.

I also choose my children. I choose to use my frequent flier miles and credit card points and income to fly up to see them for weekends, because summer break is just too long to wait, and because I can.

My children are not having the childhood I planned and tried to build for them. With changing circumstances, I have reconsidered many of the values I once took for granted.

I used to tell myself (and everyone else) a story about doing everything out of responsibility and obligation. Everything I did was because it needed to be done. There was no personal calling. There was little choice. It was an easy story to tell: there I was, virtuously bearing up under great responsibility, plodding forwards in the only way open to me.

I don’t know what my kids are going to think of me as they grow into adults. One thing I hope they see me model now, though, is agency. I want them to learn from me that people don’t act from opaque “have tos”. No matter what story we may tell ourselves about constraints and obligations. We choose, either consciously or unconsciously. And then we must acknowledge our choices and their consequences, and move forward.


At a conference recently someone asked me: as a Rubyist, what do I think of the Go language? I said: “ uh… it exists.”

There is an expectation in tech circles that if you want to be a serious tech power player, you have to have a hot take on everything. Microservices? Old hat. Serverless? New hotness. Ruby? Not interesting anymore. JavaScript? being ruined by featuritis.

There are people who spend their days on Reddit and Hacker News delivering hot takes on every technology, idea, or opinion that comes down the pipe. Sometimes I feel the need to remind junior devs that if that’s where they are getting their perspective, they are getting their point of view from a self-selecting subset of technologists who have nothing better to do than Have Opinions On The Internet all day.

My hot take on hot takes? As a software developer it’s important to know that technologies exist, and at least a vague sense of where they fit into the ecosystem. Beyond that, you do not need to have opinions. You do not have to have a “take” in order to be a serious player.

Stories, though. Stories are another, uh, story. By all means collect stories! And tell them at every opportunity.

Just don’t mistake stories for universal truths. Every story has a context.


OK, let’s see how I did.

  • ✔ Visit the kids over Easter/Passsover.

  • ❌ Finish landing page/video for Flawless Ruby But! I made some solid progress. All that’s left is to edit the video I made for it.

  • ❌ Edit video on building chatbots in Ruby. No movement.

  • ❌ Nail down my first part-time contracting gig. I’m a lot closer but I haven’t signed contracts quite yet. Contracts are tedious, yo.

  • ❌Start coding in earnest on That One Side Project I keep flaking on. Sigh.

  • ❌ Post another episode of The Cache Flush. Maybe I’ll get this done before it’s time to get on the plane.

Bonus points (stuff I did that wasn’t on the list):

  • ✔ Attend a users group meeting. I went to the local JS group for the first time and had a great time afterwards over beers. I even recorded some more interviews for The Cache Flush!

  • ✔ Clear out my !@%*ing work inbox. There were some things in there that were really stressing me out too.

  • ✔ Help my friend Amy with her upcoming RailsConf talk, which you should definitely go see if you are attending RailsConf. (This sort of thing is one of the reasons I started a Patreon – I’d love to spend more of my time just helping boost new voices in software.)

  • ✔ Mooch some boilerplate contract templates from a friend and customize them for my upcoming consulting clients. This was more work than I expected.

  • ✔ Get started mentoring a friend in how I run RubyTapas.

  • ✔ All the usual RubyTapas editing, copywriting, script review meetings, etc. Word-tier and higher Patreon supporters saw some new behind-the-scenes videos this week!

Yep, another week of carrying the list forward from last week. Ah well, they can’t all be hyperproductive. This week:

  • Prep to speak at Deliver:Agile in a week.

  • Finish landing page/video for Flawless Ruby

  • Edit video on building chatbots in Ruby.

  • Nail down my first part-time contracting gig.

  • Start coding in earnest on That One Side Project I keep flaking on.

  • Post another episode of The Cache Flush.

Wish me luck!

Published by Avdi Grimm