Thanks, Phil! Good question. Yes, there is some overlap with the Maelstrom docs but most of the challenges either have different goals or they are new (Kafka, Totally-Available Transactions). These challenges also are aimed at people who are familiar with distributed systems and want to test their ability as opposed to the Maelstrom docs where they are meant to walk folks through the issue.
We also contributed a Go implementation of a Maelstrom client library and we were able to fix a handful of bugs in Maelstrom during the process. Kyle uses Maelstrom for teaching classes as well so work we did on these challenges were also contributed back into the repo.
The fun part about these challenges is there isn't one right way to do them. Many of the later challenges have several approaches and they each have their own trade-offs. Some of the challenge goals are performance targets so you can continue to optimize your implementation to get better numbers.
We also contributed a Go implementation of a Maelstrom client library and we were able to fix a handful of bugs in Maelstrom during the process. Kyle uses Maelstrom for teaching classes as well so work we did on these challenges were also contributed back into the repo.
The fun part about these challenges is there isn't one right way to do them. Many of the later challenges have several approaches and they each have their own trade-offs. Some of the challenge goals are performance targets so you can continue to optimize your implementation to get better numbers.