Практика Java EE
Вы не обижайтесь, я со свой колокольни сужу, мы фрилансеров ни до чего серьезного не допускаем. Потому как потом никакой информации не найти. А часто проще переделать чем править.
Ну и перечисленные технологии - спринг, хибернейт, встроенный томкэт, не хватает только какой-нить NoSQL-базы или in-memory вроде H2. Из песни слов не выкинешь - "хуяк, хуяк и в продакшен" :)
А через 2 месяца как от фрилансера стул остыл, руководство понимает что ой, ашипки полезли. Ну-ка разберитесь. И ты видишь что ошибка лезет из-за бага в спринге. А зачем его использовали? А чтобы быстренько найти все классы из класспаса, из пакета a.b.c. Ну не может же быть чтобы всю сотню мегов спринга только для этого тянули? Да лехко. Потому что время на
написать свои 50 строчек или поискать более подходящую библиотеку фрилансер не потратил. Он же спринг знает и гори оно все огнем. А уж написать пару строчек вроде "здесь я использую спринг а не рефлекшенз потому что..." тем более.