Automatically discover distributed systems skills when working with consensus, CRDTs, replication, partitioning, and distributed algorithms