working through distributed systems coursework