Domanda di colloquio di Revolut

Code challenge regarding TDD, SOLID, Design Patterns and best OOP practices