Initial call with the recruiter about my previous and current experience. Take home android app task was given with 3 days deadline, small app scope.
Requirements were outline clearly. I was rejected for:
- Unused dependencies
- Unused imports
- A crash
- Usage of separate live datas for error, loading and result
- "Unused object" that was used to use @BindingMethod
- Single module (yet multi module was considered as extra or good to have)
I concurred on the crash.
- Unused dependencies and import, it is absolutely ridiculous to raise the bar on it.
Regarding "unused object" with @BindingMethod, I wish the developer reviewing the code brush up his/her skills on Databinding.
- I used vanilla Dagger 2 for DI, multibinding with custom key for mapping (not just for ViewModels mapping, but for the use cases), @Qualifiers, @Scopes, @Component with Subcomponents, I also demonstrated interface dependencies binding using @Binds, also made up case where I can use @BindsInstance, worth mentioning is injecting parameterized interfaces, yet it was evaluated as BASIC. Basically, I used dagger thoroughly.
- Demonstrated usage of SOLID principles with emphasis of interface segregation and single responsibility, usage of factories, composition and polymorphism.
- Usage of separate live data for result (success), loading and error state, how is this bad thing?
I suggest they low the bar on stupid things like "unused imports" or "unused dependencies", also ask the developer to study the android documentation on Databinding. Especially, the retention policy and target of the annotations, he/she apparently skipped that lesson and has no idea what he/she is talking about whatsoever.