I applied online. The process took 2 weeks. I interviewed at Fetch in Jan 2021
Interview
1. Take home android app development with few guidelines. You're free to choose whatever you wanna do. But remember, they will still judge you for things you didn't do.
I spent 20+ hours, 105+ GitHub commits, my sleep, and my insanity.
This is how I developed the app. I used:
- Kotlin
- Coroutine
- RxJava2
- Dependency Injection (Hilt)
- MVVM
- Flows
- Data binding (2 way)
- Diff Utils Recyclerview
- OOPS concepts
- SOLID principle
- Each and every single line in my code was documents.
- 0 warning in code
- Ktlint for code formatting - no extra space, no wildcard imports, properly formatted functions and classes
- Leak canary for detecting leaks
- ViewModels - restored state after process death and screen rotation
- Error handling with retry using Kotlin flow.
TESTING (Unit tests):
- 100 % View model tested
- 100 % repository logic tested
AND They rejected me because.... guess what? Because I had an extra file in the project called "ExampleUnitTest.kt". This is the file generated automatically by Android Studio when you create a new project. I did not even create this. They called my work "sloppy".
Don't waste your time here. I read other reviews and they had a similar experience. If you can do better than how I did, you can try. They will find a single extra space and reject you.
Oh, BTW fix your `onBackPressed` issue. It keeps showing the same page, actually, it reloads the app, again after pressing the back button. You may wanna use a Queue. You don't want others to call your work "sloppy".
To the developer who graded my work:- Your way is not the only way. There may be better ways than yours. Do not let your narrow mind stop you from accepting that something is better. You may even learn from it.
I am so glad that they rejected me. It would have been horrible to work with someone who has so narrow thinking.
I really liked FetchRewards!