API
https://my.transfergo.com/api/fx-rates?from=EUR&to=DKK&amount=100

Supported currencies
DKK, EUR, GBP, HUF, NOK, PLN, RON, SEK

Project
There is skeleton project, invitation to repository sent to your email

We would expect you to

  1. Finish/improve/refactor existing project (please, create separate branch for your work)
  2. Keep using selected technologies: MVVM, Dagger Hilt, RxJava, DataBinding
  3. Follow Clean Architecture principles
  4. Write some unit tests

How we review
Your application will be reviewed by a senior engineer. We do take into consideration your experience level.
We value quality over feature-completeness. It is fine to leave things aside provided you call them out in your project’s README. The goal of this code sample is to help us identify what you consider production-ready code. You should consider this code ready for final review with your colleague, i.e. this would be the last step before deploying to production.
The aspects of your code we will assess include:

  • Clarity: does the README clearly and concisely explains the problem and solution? Are technical tradeoffs explained?
  • Correctness: does the application do what was asked? If there is anything missing, does the README explain why it is missing?
  • Code quality: is the code simple, easy to understand, and maintainable? Are there any code smells or other red flags? Does object-oriented code follows principles such as the single responsibility principle? Is the coding style consistent with the language’s guidelines? Is it consistent throughout the codebase?
  • Testing: are there minimum sufficient unit / integration tests? Are those extensible?
  • Technical choices: do choices of libraries, databases, architecture etc. seem appropriate for the chosen application?
  • Design quality: is your system design addressing the scope (functional enough)? Do you recognise key non-functional aspects (quality of service)?

Design