How a few screws cost $2000 and a 240GB multinodes cluster cost $50

About ten years ago I was an electrical engineering intern at MDA Space Robotics. They are the company that designed the Canadarm 1 and 2 used on the International Space Station. I still remember meeting the R&D team next door and seeing their demo of a 3D LIDAR system mounted on a Mars Rover model. It was one of the competing designs meant to serve as the eyes of the rover. To put this into perspective, this was at a time when a single-beam scanning laser was commonly used on a robot to gauge distances. Seeing a vision system which can generate 3D polygons of the terrain in real-time for navigation was just unbelievable.

As for our mundane electronics team, we were designing new power electronics to upgrade the Canadarm2. Obviously, I didn't contribute much as an intern. One project I had my hands on was building loading circuits to simulate the electrical response of the motors on the Canadarm2. That meant we could test the new power electronics with live circuit, without having motors spinning in the lab. For my particular role, I didn't do any of that either. What I did was design and build safety housing for these big loading circuits.

Normally, this wouldn't take more than a couple of days in a workshop. Not so in a regulated industry. Even though these boxes were only used as a superficial safety mechanism during ground support testing, and were never going to be used in production or have anything to do with the actual test itself, we still needed to follow proper engineering guidelines. My mentor told me that it's safer to have a blanket rule for every component than nit-pick over what is or isn't regulated.

After designing the housing in no time (it's just a rectangular shell to cover the circuit, how hard can it be?), I sourced a contractor to mold some polycarbonate shells for us. It's the material used in hockey masks because it's transparent and strong. To secure the shells onto the loading circuit, which were both about as big as a moving box, I needed big screws to secure them onto the baseboard. Seeing that we were an electrical team, we didn't have any suitable screws in the lab. I figured I should just drive down to Home Depot to buy them.

Not so fast. Apparently, as I was technically sourcing in a new component, I couldn't just go down the street and get them. I ended up having to order from one of our approved suppliers and had them shipped to us overnight by courier, as all our shipping was done that way. Not that I was in any hurry. And even though I needed just a few screws, the supplier didn't do small orders so I had to order the minimum of a hundred or something. Still, all of that didn't really cost very much. The majority of the cost came from my hours spent in getting technical and administrative approvals for adding this new component into our bill of materials.

And so that is how I ended up costing the company around $2000 for a few screws. I never saw an itemised bill but I figured that's about right, based on the hours spent and people's estimated salaries.

This forgotten story from my engineering days came back to me this week as my colleague Paul and I were spiking out a big data project on Amazon Redshift. On a whim, just for the sake of it, we launched a 32 virtual core, 240GB memory, 32TB storage multi-node cluster with literally just the click of a button. We played with it for a couple hours, did what was needed, and decommissioned the cloud servers. It cost us $45.

What is my point in these stories? Same concept of materialising an idea. Different time, different industry. Diametrically different prototyping experience.

Update: this post generated some discussion on Hacker News.