Learning from Concurrent, Parallel, and Distributed Systems Design