Solving Uber's Technical Test

I came across a coding challenge from Uber that used to be part of their selection process, and I decided to give it a try to practice my Java Spring Boot skills.
You can check out the challenge instructions here:
From the 4 options they have, I decided to do the Email Service, but I wanted to make things harder and I know that when registering on a website, for the verification, you can often choose to verify by email or by phone number.
So, I implemented not only an Email Sender, but also an SMS Sender. And here's the result:
According to the original coding challenge, the project uses abstraction to immediately use another Email Service provider in case the first one fails.
I also wrote some documentation on the README of the repository.
I learned a lot developing this project, it's always interesting to develop something that you can visualize the real use of it in a bigger project.