Domanda di colloquio di Nubank

Multi level OOP style coding question in increasing difficulty