Sabeer Bhatia, cofounder of Hotmail quoted in Founders at Work, p. 21 Also, when you are hardware designers, you have tremendously more discipline in writing and describing software because in hardware you cannot get it wrong. Every turn of every chip costs you millions of dollars, so when hardware designers design any piece of software, they normally get it right. They use something called state machines to describe the functioning of the software. When you do that, you are very deterministic: if this is the input, then this will be the output. So you write it in a very deterministic fashion and therefore you tend not to make too many mistakes. Whereas the pure software writers - the way they think and architect software is very creative. They put in lots of bells and whistles, but they think, "No big deal. If there is a bug, we'll fix it. Put in a patch." You can't do that in hardware. There's no patch Once you ship a chip, it has to work all the time. So in terms of being able to test it out, there is somewhat of a difference, but I just think that hardware designers would be pretty good software designers as well.