Book review: Good Intentions

I received a free copy of the audiobook through a randomized giveaway on StoryGraph. I did not receive any compensation for this review.

Twins have a connection that the rest of us can’t understand. So when your twin dies unexpectedly, what happens? For Cady, it’s a spiral.

Every grief is different, but Cady’s is very different. Unlike most of the psychological thrillers I’ve read, Marisa Walz’s protagonist isn’t running from “the bad guys.” Instead, she’s running from her grief and alienating everyone along the way. Her relationship falls apart, her once-thriving business crumbles, all in pursuit of something that she seems to get but the reader does not understand.

I’ll be honest: I did not like Cady and I spent most of the book being uncomfortable. Only at the end did it make sense. The ending didn’t make Cady any more likeable, but it made a sort of sense of her actions.

Did I like the book despite the discomfort? I think I did. I certainly found it thought-provoking. Had I DNFed it, I wouldn’t get the payoff.

Marisa Walz does a masterful job of building the suspense and discomfort through a slow drip of reveals. Told as a one-sided conversation that Cady has with her late sister, the reader can never quite know how much to believe the narrator. It’s a brilliant work, if you can handle the building sense of discomfort. You never know what Cady will do next, but you know it will be a bad idea.

Good Intentions is available from St. Martin’s Press.

Chase results: 3 April 2026 in West Central Indiana

Despite the forecast of severe weather, it wasn’t really on my mind today. Charles had his first college visit, so the focus of the day was the University of Chicago. I saw some deep convection as we drove down I-65, so I opened RadarScope. I noticed a tornado warning to our southwest, so I figured “what the hell?”

I took the US 231 exit and drove through White County. As we approached Round Grove, I could see a lowering, so we turned west on White County Road West 1100 South (location). Unfortunately, it fell apart almost immediately.

A wall cloud under a thunderstorm. A gravel road crosses in the foreground.
Lowering on the tornado-warned storm over Benton County as seen from near Round Grove. Taken approximately 2154Z. View is to the west-southwest.

When the rain shaft reached us, I continued back down US 231 through Montmorenci. The storms west of Greater Lafayette looked marginally interesting, so I continued south on Jackson Highway to SR 26. After a brief pause at the Purdue Airport, we decided to go home. I made a quick bio break, grabbed my camera, and set off again solo.

By that point, the storm in southwestern Tippecanoe County was looking interesting, so I headed southeast on US 52. The storm showed broad rotation on radar, but had no warnings at the time. I stopped at the Marathon station on Dale Drive.

Ragged cloud base behind a Marathon gas station sign.
View of the storm from southeast of Lafayette. Taken approximately 2300Z. View is to the southwest.

I was almost directly under the rotation, which seemed like a suboptimal location, so I dropped south and then headed east on Tippecanoe County Road East 550 South. I turned north on CR South 1075 East and stopped at the railroad crossing just south of SR 38. At some point during the drive, Indianapolis issued a severe thunderstorm warning for this storm. Although the storm looked decent on radar, it was not particularly impressive visually.

I continued to head northeast and the appearance improved quickly. On Clinton County Road West 550 North, I stopped along with a few other storm enthusiasts.

I watched for about five minutes. As the storm continued to move, I decided to continue following it east. By the time I reached Rossville, the storm seemed like it was falling apart for good. Since I was almost out of daylight, I decided to call it a night.

For an unplanned chase, I’m pretty happy with how it turned out. Except I wish I had paid attention to the ISO setting on my camera and not used 3200.

Other writing: February 2026

What have I been writing when I haven’t been writing here?

Duck Alignment Academy

Book review: Darkening Song

I received a free copy of the audiobook through a randomized giveaway on StoryGraph. I did not receive any compensation for this review.

What happens when you mix a traumatic past with sudden fame? For music superstar Alora (and her intern-turned-manager Eva), the answer is both “you get everything you always wanted” and “you lose what you had.”

Delphine Seddon’s debut novel draws on her decades of experience in the music industry. Darkening Song is the story of a young record label intern who boldly becomes the manager of a 16 year old musician with superstar potential. The narration follows two threads: Eva describes the history of finding Alora, getting her signed to a contract, producing an album, and going on tour. Alora’s story is primarily told from an inpatient rehab center, where ends up after the weight and trauma of her meteoric rise become too much to bear.

Because you know early on that Alora is in rehab, the plot unfolds more as a “how did we get there?” instead of “where are we going?” The two threads are somewhat disjoint at first and converge as you approach the end. Instead of being confusing, Seddon uses the back-and-forth to build excitement, resulting in a book that’s hard to put down.

The characters live lives that are completely foreign to me, but they seem like authentically real people. They have flaws, some of which they grow out of, some of are made worse by success. The realness of characters is what keeps Darkening Song from being a “lol look at how messed up famous people are” story.

Overall, I enjoyed the plot, although the ending felt a little too out-there for me. But the style is good and the audiobook narrators were terrific. I gave it 4.25/5 stars on my totally-consistent-and-reasoned review scale.

Darkening Song is available later this month from Macmillan.

Other writing: January 2026

What have I been writing when I haven’t been writing here?

Duck Alignment Academy

  • Open source trends in 2026 — I peer into my crystal ball to see what 2026 will hold.
  • GitHub Discussions versus Discourse — The GitHub Discussions versus Discourse comparison isn’t about which is better — both are good. But which is better for your specific project?
  • Measuring contributor affiliations is complicated — Determining a contributor’s affiliation is not as easy as it seems. It’s not always clear if a contribution is part of someone’s job.
  • Use your labels — A label that you don’t use complicates the experience. A label that you’re not consistent in using will lead to unreliable analysis data.
  • Open conversations are worthwhile — There are valid reasons to hesitate about having “public” conversations, and it’s a hard skill to build, but the effort is worthwhile.

Other writing: December 2025

Where have I been writing when I haven’t been writing here?

Duck Alignment Academy

A proposal for improving the calendar

My wife said she missed me writing about non-tech things. The monkey’s paw curled.

Last night I came up with what can only be described as man’s most brilliant idea in the last century: CalendarFiasco. The Gregorian calendar — while a marked improvement over the Julian calendar — sucks. It makes no sense.

What’s in a name?

Thankfully, there’s precedent for changing the calendar. That’s part of what got us here. There was a time when September was the 7th month, October the 8th, November the 9th, and December the 10th. Those names made sense once upon a time.

Another thing that doesn’t make sense about them: they contain the sound “bər”. What do you say when you’re cold? Brr. But the northern hemisphere mid-latitude weather during many of those months isn’t particularly cold. So let’s start by re-arranging the names such that the “brr” months are the coldest months.

November and December can stay put. But we’ll replace January with September and February with October. Now the cold months are appropriately named. “But, Ben,” you whine, “what about the southern hemisphere?” Well, I guess they should have thought of this first, huh?

“Okay,” you plead, “but the names still don’t make sense from a numerical standpoint.” So what? I’ve improved some parts of it without making anything else worse. The ordinals didn’t make sense before and they don’t make sense now.

But wait! There’s more! You know what’s light and airy? Late spring. Right now, our calendar buries January and February — the “airy” months — in a pile of snow. Tragic. Since we’ve displaced those two months already, let’s move them to a more appropriate place. April and May can shove off to where September and October were. January and February will take their spot.

So my new calendar now has month names that make a lot more sense:

  1. September
  2. October
  3. March
  4. January
  5. February
  6. June
  7. July
  8. August
  9. April
  10. May
  11. November
  12. December

Where it all begins

Earth orbits the sun in a regular path. We could start the year at any arbitrary point. But January 1 is such a silly point. It’s less than two weeks after the winter solstice, which is a meaningful part of the orbit. Why not simply move the start of the year?

It is important to my wife that the winter solstice remain in December, so in the interests of marital harmony, I will make September (formerly January) 1 the first day after the (typical day of the) solstice. To make the transition easier, I put together a handy mapping of Gregorian dates to CalendarFiasco dates for your reference.

Feedback

…is not allowed. This proposal is perfect and I will not tolerate any dissent.

Book review: The Goal

I am a sucker for novels as allegory for technologists. When my friend Bex recommended Eliyahu M. Goldratt’s The Goal, I knew I had to give it a try. Surprisingly, the wait for the audiobook was measured in months, so I had plenty of time to wait. But the wait was worth it.

The Goal is set in a Rust Belt town where the local factory is struggling to remain productive (and therefore profitable). Our narrator is the plant manager, who is pouring all of himself into trying to save the plant. This, as you might expect, puts a serious strain on his home life. By chance, the narrator runs into his college physics professor. The professor works in a few moments here and there to help his former student improve the plant’s flow — often in counterintuitive ways — by asking questions that lead the team to a successful outcome.

You might ask what early-1980s industrial manufacturing has to do with the modern software industry, and you’re right to ask it. The setting is not immediately applicable, and a lot of the references (and attitudes in a few places) are very dated. But just like in my review of Tom DeMarco’s The Deadline, I did not find myself thinking “boy, I’m sure glad that problem is solved now.”

What’s the goal?

We still face (as do people in many other industries) being judged on local performance, whether or not that helps — or even hurts — the broader organizational goals. A person whose performance is graded based on the number of tasks they complete will complete as many tasks as they can, regardless of whether or not it creates a bottleneck downstream or is “wasted’ work. As Jonah, the professor character, says “a system of local optimums is not an optimum system at all. It is a very inefficient system.”

This, perhaps, is the one lesson that we’ve retained. System administrators know, even if managers and executives sometimes forget, that fully-utilized systems are brittle. If you want a resilient system, you need to have excess capacity in order to handle bursts. Stable systems are inefficient, and efficiency for efficiency’s sake is a bad goal.

The overall message of The Goal, and the first question that Jonah asks, is “what is the goal of the organization?” For businesses, the goal is to make money. It’s not to manufacture widgets, ship software, sell services, or whatever. Those are ways the business achieves the goal of making money. Market fit, quality, price, etc are factors in how successful the product is, but aren’t the goal in themselves. The rest of the book describes how to analyze flow through the process to optimize overall throughput in service of that goal.

Other lessons along the way

I’m not sure how much Goldratt intended for me to take these additional lessons from his novel, but I picked up a few other things along the way. First, is that if you’re too busy to update your documentation, you will get busier due to out-of-date documentation. At one point, the plant’s leadership team is operating under assumptions based on outdated documentation, which causes them to make the wrong decision. Bad documentation leads to rework, which is both demoralizing to the worker and counter to optimizing throughput.

Another lesson is that priorities that aren’t clearly communicated and understood aren’t priorities in fact. People have to understand what they’re supposed to be working on and why. If that changes and they don’t know about it, they’ll keep following the old priorities. Understanding the “why?”, especially when something seems counterintuitive, is important to get people to buy in and follow the plan.

Lastly, the Socratic method only works if both people are willing to use it. At one point, having seen how well the Socratic method worked to lead him to improvements at the plant, the plant manager tries it on his estranged wife. Because she sees his questions as having seemingly-obvious answers, he comes across as an asshole. Asking questions to understand the layers of an answer can be a very helpful approach, but everyone involved has to be in the right space for it.

My verdict

Overall, I thought The Goal was a solid book. The lessons are well-communicated, valuable, and not overly-preachy. The audiobook version is surprisingly well-produced, which made it fun as well as informative. If I ever become a college professor (unlikely!), I’d love to teach a course of allegorical novels, and The Goal will fit in well with The Deadline and The Phoenix Project.

Other writing: November 2025

What have I been writing when I haven’t been writing here?

Duck Alignment Academy

Kusari