Designed and implemented a fault-tolerant MapReduce framework, Paxos-based consensus protocol, and a sharded key-value store in Go that applies distributed computing principles such as consensus, replication, dynamic sharding, leader election, and crash recovery
course website with homework descriptions and stages: https://systems.cs.columbia.edu/ds1-class/