Damian Stasiak
- There are two version of algorithm: OOP and recursive. Both use some of functional programming. I didn't implement fully functional version because it would kill readability.
- Controller tests use real implementation, not mocks.
- I don't validate input. This should be added in the future.
- My background is Java/Kotlin. Probably this code could be more Groovy idiomatic.