Question d’entretien chez Revolut

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