Home

Roku Channel SDK: Ferry Cameras!

Lara and I shuttle regularly between Bellevue and Whidbey Island in Washington, so the Mukilteo-Clinton ferry is a big part of our life. WA actually runs the largest ferry system in the USA,…

Skynet or parlor trick? ChatGPT is both and neither and more.

If you haven’t played around with ChatGPT yet, you really should. It’s a pretty remarkable “conversational model” that interacts more or less like a real person. It has been trained on an enormous…

TMI about Diverticulitis

Pretty unusual topic here — but it’s one that (a) has been taking up most of my brain the last few days, and (b) will hopefully be useful search fodder for others who…

So I guess I’m retired now.

I’ve been writing software for more than thirty years. I’m pretty OK at it, but not in the way most folks think about being good at writing code. I struggle to wrap my head around complex algorithms and kill a lot of trees tracing variables by hand on paper to understand them. I suspect, though, that that weakness is actually the reason behind whatever success I have had, because it’s forced me to focus on a few things that make or break large-scale production systems:

  • Get the data model right.
  • Fear complexity and crosstalk.
  • Imagine the future.

It’s been my experience that Computer Science education — from the best college-level programs to the most grassroots bootcamps — does a really crappy job with these ideas. That’s not to say they don’t teach important or useful stuff. I would be nowhere without my algorithms semester (CS25; thanks Prof. Bent). And you can’t drive well if you can’t drive at all, so hooray for the online courses that teach folks to build websites with whatever Javascript framework is cool today. But they leave a vast empty space between the abstract and the tactical, and that is where real, big, long-lasting, distributed software gets made. Or at least, the software that makes a difference in the world. Since I’ve got some time on my hands these days, I thought perhaps it’d be helpful to share some of the things I’ve learned during my wanderings in that vast empty space, with as much as possible expressed through code. Not really sure where we’ll end up, but hopefully it’ll be an entertaining trip.

Most of what I write will be Java, since that’s my go-to. I’ll link to files directly, but you can also find it in all its repo glory at https://github.com/seanno/shutdownhook.

I write about other stuff too, like my amateurish but super-fun attempts at building stuff out of wood — primarily the driftwood that washes up on our beach. Don’t say I didn’t give you fair warning.

Wayback machine: in previous lives, I wrote a few pieces about my work at Adaptive Biotechnologies and a ton while at Microsoft trying to help individuals get better healthcare.