The World Cup is fun to watch. We need to figure out how to make software coding competitions this exciting. The problem is that there is no human adversary. It’s like mountain climbing: the adversary is the problem. But I’m not sure how to add the adversarial component in a symmetrical way. I suppose you could have both teams trying to hack into each other’s servers. Or you could let one team adjust the other’s spec in real time. I guess the closest thing to this that I know of is this event: http://builditbreakit.org.