The HR interveiw went well, then I got a home work which could be done in 3 hours in their opinion. The original announcement mentioned 3 days :) It took me 1.5 days. The task was a simple accomodation booking system backend implementation.
I did it with springboot, spring Data, unittest, mockito, H2 db, maven. In the announcement they told us not to use any kind of standard Java framework. I forgot this and I did in springBoot as normally with most of my projects in the last 5-6 years. Lately I was thinking about if I can't use any framework shoud have been done It in with plain server sockets and for the json parsing I shoud have been done by hand or writing utility classes? Could I use/ needed to use JUnit/mockito ? etc... These all the question was not defined clearly. The only thing was allowed to use dependency manager. But if I can use only plain Java why dependency manager needed? So all the modules of Java can be handle by Java Module System... ??? Could I use or needed to use databases?
After uploading my code I needed to wait more than 2 weeks for results.
The main reason of the rejection of me were the following:
- no separation of responsibilities in the code (well I did all the defined services methods in one Service class, because all of them was releated to the action booking/cancelling, querying),
- elvis operation + if-else I used together (in my opinion it was well readable by this) :)
- hard coded queries (???). In backend we alway 'hardcode queries' it is part of the Java code directly and not collected outside or do it dynamically with String manipulation (in this case readibility and indexing would be hard or impossible :).
- using springBoot and spring Data
My comment was to the firm:
- they didn't mention that there was db configured and filled with test data
- I added a lots Junit tests
- I added a integration test too.
- I worked with points aboive a lot. It seemed to my they didn't even run the project they only want to heckle of my code. To find something to reject me.
Well all in all I am not recommed the firm to work with.
The homework and its requirement was not well defined, the evaluation my work was not acceptable. I needed to wait for a lot for the result. I could not defend my work in a common meeting or other form.