Have you ever hurt yourself from your own code?
About seven years ago I got a bright idea to build a quadcopter. I had experience with little $25-50 drones that bumped around the house with their fragile one-inch propellers, which obviously qualified me to build and pilot something significantly bigger.<p>Off to Aliexpress and Banggood I went. I ordered a carbon-fiber chassis, big strong motors, ESCs, 3-inch propellers, a FrSky receiver, a Devention transmitter, an STM32-based controller, giant li-poly batteries, and all the cables and fasteners I needed. Over the coming weeks the parts trickled in. Finally once the whole kit had arrived, I assembled everything, connected the TTL serial, built the firmware, downloaded it to the controller, and like the brilliant software engineer I am, plugged in the batteries on my bench at home.<p>Nothing happened. Those of you who have blown off fingers wondering why the firecracker under the Coke can hasn&#x27;t exploded yet can guess what I did next.<p>I examined the chassis closely and began fiddling with the cables and connectors. Again, like the brilliant software NOT HARDWARE engineer that I am.<p>Evidently, I fixed the problem. Which caused four gigantic propellers to begin whirling around my hands and face. And four brushless electric motors to emit their usual high-pitched whine, which today I instinctively hear as them saying to me &quot;You god damned idiot. You are <i>so</i> ours.&quot;<p>I was not injured. But that evening, I came close to slicing at least a couple things off my body. I hadn&#x27;t appreciated the scale of the thing I was building, or the inherent risk in debugging it once I&#x27;d slapped it all together. I shelved the project for years, eventually giving it to someone at work who claimed to know his stuff when it came to drones. I hear he&#x27;s doing fine.<p><i>Disclaimer: this story isn&#x27;t about code or my own code. But I think it fits here because I approached dangerous hardware with the &quot;build, run, see what happens&quot; mindset of a software developer.</i>