It's common when writing threaded software for multi-core systems to have an ""edge-race," where correct behavior can depend on exact ordering of earlier processing. Most of the people I know who have never had a software edge-race are people with significant hardware knowledge. They know what it's like to have many things going on simultaneously, and have the experience to reason about it more easily than those with a pure software background
With aggressively multi-core systems becoming more common (we are routinely using systems with 32 cores, and then we use 30 or more of them) material like this is becoming more relevant.