Priyank Gupta, a respected ex-ThoughtWorker from the Pune office, wrote an excellent blog series in 2014 titled: Decoding ThoughtWorks Coding Problems.

In this blog he explains what constitutes good code & design, using the now decommissioned Mars Rover problem as an example. His code is in Java. I decided to showcase the same design in Scala, using only “the good parts” of Scala, with an aim of keeping the solution easy to understand, and enhance.

My implementation can be seen on Github here: mars-rover-scala.