RuBy – Blocking Russia and Belarus
The Internet is a funny place. At the exact same moment that Russian troops are committing war crimes in the real world, Russian users online are just bopping around as if everything is … Continue reading RuBy – Blocking Russia and Belarus
Three Logs, a Chainsaw, and the Scary Wheel of Death
A few weeks ago upon hauling another awesome log up off of the beach, I realized that there was in fact nowhere to put it. Every mostly-out-of-the-rain nook and cranny on our property … Continue reading Three Logs, a Chainsaw, and the Scary Wheel of Death
You got your code in my data, or, how hacks work.
Once upon a time, hacking was easy and cheap entertainment, and we did it all the time: Microsoft’s web server used to just pass URLs through to the file system, so often you … Continue reading You got your code in my data, or, how hacks work.
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.