As part of the interview process, we would like to see how you write code. To do this we are going to ask you to submit a short demonstration.
As we have previously mentioned in the first interviews at Jobandtalent, we value code quality and maintainability.
- You must use Kotlin as your main language. You can show us any other development that has helped in its implementation or testing.
- Domain object and the separation between layers.
- It must follow a defined architecture. We have no preference for any particular one. Some examples: MVP, MVVM, MVI, Hexagonal, etc. You must be able to justify it and explain its advantages and disadvantages.
- It must use Dependency Inversion. There is no preference as to the dependency injection system. Some recommendations would be Dagger 2 or Hilt.
- Follow SOLID principles. Any decision in your code will be positively assessed in terms of maintainability, scalability, and decoupling of responsibilities.
- You are free to use any third-party library or even use code that you have already developed. Among the libraries we commonly use are Retrofit, GSON, Dagger 2, and Jetpack Compose.
- If you would like to include a UI component, try to follow Material Design. We value positively if you use Jetpack Compose.
- We value positively the tests that cover the functionality, both unit tests, UI, integration, etc.. You can use the framework that best suits your needs.
There are 3 different options:
We ask you to create a simple app that shows a list of items and a detail with further information. We know it sounds super basic, from this you decide what you would like to show us from your skills and knowledge.
The basic requirements of the app are as follows:
- A screen with a list of items showing at least a title, description or photo. Example APIs: https://dummyapi.io/, https://jsonplaceholder.typicode.com/, https://random-data-api.com/
- If you click on one of these elements, a detail screen should open with the same information and further details.
- The iteration is basic: enter a detail, load information, and go back to the listing. You can add any changes you want or consider interesting to demonstrate your knowledge or skills with the Android framework.
- The app must compile and run on an emulator.
- You must include the future iterations you would add if you had more time along with your design decisions in a separate document or README. This will help us have a better conversation with you in the project review to assess your project.
Make sure to do all the work in a private repository and, once finished, invite the appropriate people to review your interview process.
IMPORTANT: we think that developing an app takes time. So for this code test we don't want you to spend more than 4-6 hours maximum. There is no deadline, we just want to make sure you don't spend too much time on the project.
Show us code you have previously written in a side project or previous professional project.
Any remarkable contribution as a Pull Request to an Open Source project that is public.
Important: any code you show us must be your own and, obviously, you should have permission to share it.