Managing the problems of asynchrony, robustness-under-failure, distributed calculation.
Tricks for doing lots of stuff at once without spending all day being confused by shitty thread abstractions.
CAP theorems, Byzantine generals, dining philosophers.
Although there are things of profound theoretical interest,
here I will of necessity be taking a
pragmatic, problems-driven approach.