1. Materials are cheap, how much did the roommate spend?
2. Laziness in code and physical is exactly the same psychological fuel: being bored doing always the same annoying task (eg remove the things to make room for the pizzas) is a strong incentive to find a hack to avoid the bore (add a contraption on the side of the table).
A former colleague was a great hacker, and he also did his own rollerblades, and built a part of his house.
I am some kind of software hacker too (daylong in python internals) and I did fix a car with a stone, I did elevated bed on two shelves, and currently I'm transforming a dead pot plant root into a nice piece of arte povera.
Another way for software and physical world hacking to be similar: in both cases, many people believe it to be hard, are afraid or somewhat restrained, but nearly all it takes is to just say to oneself "it's easy, let's try". While there are a few people with a brain that is no fit for fiddling with computers or screwdrivers, most of them who think they can't do it just never tried.