Mars rover code kata solved using Scala.
- be pragmatic, don't overdo the solution
- use the type system to your advantage
- make the "core" immutable
- use Scala language's strengths (pattern matching etc)
- separate concerns (parsing/moving/etc)
- Bugs easily occurred using the same primitive for different semantics (e.g. swapping x for y coordinate)
- Tests caught these bugs early