Disclaimer: views are not my own.
-
Reflecting on "The Ray Tracer Challenge"
07 Aug 2025
In December of 2023, I got a copy of “The Ray Tracer Challenge: A Test-Drive Guide to Your First 3D Renderer”. Getting close to the two year anniversary of that purchase and semi-frequent work on the project, and having been knocked out by some sort of bronchitis the past week, I figured it might be a good time to put some sort of “bow” on my work (I’ve gotten through 11 of the 17 chapters). These are some collected thoughts, mostly having to do with Rust. I’ve worked with Rust a bit before, but this was the most ambitious project I’ve undertaken with it. As a degenerate JVM-enjoyer, I rarely have to think about memory. This is obviously a double-edged sword, and getting a better handle on how the JVM does it’s garbage collection is another on-going project of mine (“The Well-Grounded Java Developer” is an excellent book I recently more-or-less completed). I’d highly recommend working with Rust, if only to have it make you think about the real “cost” of the abstractions provided by other languages! So, here are some thoughts.
-
Do you actually want things to be hard?
26 Mar 2025
There’s an instructional video from guitarist Joe Pass where he eloquently instructs the viewer: “Never play anything that’s hard. If it’s hard, don’t play it.” Joe Pass was a legendary jazz guitarist, known among other things for his astounding technical ability. He’s a virtuoso, as evidenced by his solo albums Virtuoso, Virtuoso No. 2, and Virtuoso No. 3. And let’s not forget: Virtuoso No. 4! How could he possibly achieve his fluency on the instrument by avoiding playing things that are hard?
-
Who Cares About Your Tests?
13 Sep 2024
Something that I’ve been pontificating on in my chamber as of late are the definitions of various types of tests that people often treat as fact. “Unit”, “integration”, “acceptance”, “end-to-end”—these are all terms that at various points in time I’ve heard very confident assertions on their true, implacable meaning.
-
I Don't Like Pull Requests
23 Aug 2024
Update, 8/8/2025: I’ve been thinking about this post off-and-on recently, mostly because I’m just embarrassed by the writing, but also because I feel like it’s missing some stuff. Namely, none of the terms “pairing”, “mobbing”, “teaming” or “ensembling” show up. I think I was trying to do a “read between the lines” type thing of getting there, but I don’t think it worked. To me, PRs and asynchronous code review (effectively synonyms, but I know they aren’t really) are the greatest indicator that the software industry has teamwork completely wrong. Truly, how is it possible that this has become the default? To many, it seems completely incomprehensible that you could work without them, and even crazier that alternatives would actually improve things. So, there are a few more sentences for me to be embarrassed about! The original post follows…