Predicting the Future (Tides)
The beach outside our Whidbey place is amazing. There’s about twenty yards of firm sand and rocks along the shore, then a broad, flat, soft expanse of sand/mud/clay for just under 100 yards,…
Anatomy of a SMART Health Card/Link Viewer
Over the last few months I’ve been working on a project with the good folks at TCP — the latest stopover on my long, painful, only-debatably-successful journey to use technology to benefit health…
Real-world IoT with LoRaWAN
Remote monitoring of a community water tank for under $500, that works kilometers away from wifi or cell service, incurs no monthly fees, and uses a battery that lasts up to ten years?…
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.