So You Wanna Be a Software Engineer? Part 4: Distributed Systems - Because Making One Thing Talk Was Too Simple.