Що питають на співбесідах senior java developers, stokito on software
За минулі два тижні я пройшов більше двадцяти співбесід. Може більше, може менше, складно сказати, більшість з них проходив по скайпу «ось прям зараз». Ще пару таких неделек і я б побив рекорд комбатса 🙂
Трохи звісток з полів, дуже суб'єктивно:
* Мені складно судити, але відчуття що вакансій по Java в Києві помітно поменшало. Судити складно, тому що в минулий раз коли шукав роботу я був мідл рівня і був не дуже затребуваним на ринку. Ну і проект в минулий раз я знайшов за день, там шукали саме фахівця з Grails якраз як я.
Але в будь-якому випадку, нові компанії не можуть аутсорсити в Україні. Багато хто робить масовий релокейт своїх співробітників. Масово і планомірно згрібають всіх в Таллінн і Краків.
* Цього разу по Grails не зміг знайти нічого. Дуже хотів потрапити в TransferWise. у мене релевантний майстерність до цих розділів і там тлумачний тімліда, але вони в Черкасах. Я запропонував на випробувальний термін попрацювати у них в Черкасах а потім на удалёнку тільки під'їжджаючи на беклог грумніг. але сказали так їм не піде.
* Джіні реально рулить - дуже багато відгуків надійшли на моє резюме. У LinkedIn крім спрамерш теж знайшлося кілька справжніх рекрутёрш. З сайтів вакансій теж тільки по ДОУ Робота пройшовся, кілька відмінних вакансій було.
* Великі Аутсорс - походу відстій. З великих тільки Люксофт ще ворушиться і працює.
Наприклад ЕПАМ свої вакансії на ДОУ взагалі не публікує, але я зайшов на їх сайт знайшов таки відкриті позиції і зааплаілся на кілька на які підходжу, ії ... все. Жодної відповіді. Взагалі у мене таке враження що в ЕПАМ звільнили весь HR відділ, а щоб найняти нових немає ейчаров.
UPD: епамовскій рекрутер надіслав в личку:
У Глобалоджіка вакансій по Джаві нiхто не з'єднувався взагалі, також у Інфопульс. У Сіклум було вакансій кльових, але видать не зацікавило моє резюме. Відписалися тільки вчора, коли я вже Шофер прийняв. Але ж це все лідери в топах.
Люксофт не підкачав, дві круті позиції запропонували, шкода мого рівня не вистачило - там потрібно було добре вміти многопоточность.
* Так, до речі до заголовку поста, сіньyoров запитують по суті теж що і мідлів і джуніор: Java Core, колекції, мапінг в хибернейт, Скоуп бінов в Спринг, пару задачок на агрегацію SQL, але в добавок особливо вже починають розпитувати низкоуровневую жесть: про то як працює Garbage Collector, як виправляти проблеми на сервері через jconsole, і особливо жорстко Concurrency - що таке ThreadLocal, volatile. Проблема в тому що конкаренсі це така жорстка тема яку ну просто неможливо вивчити не взяли участі на проекті з нею. Питання по алгоритмам майже завжди - на знання дерев і їх обхід.
Ну і як завжди до реальної практики питання зазвичай відносини майже не мають.
* Майже всі взяли моду питати логічні задачки на співбесіді і давати тестові завдання. Причому якщо логічні завдання ще хоч якось можна обґрунтувати, то тестові завдання я взагалі не розумію навіщо давати. Ось пройшов я відмінно технічне інтерв'ю, хлопцям явно сподобався, та й я б уже готовий до них йти, але немає - ось вам тестове завдання: напишіть просту веб аплікуху з імпортом в БД з CSV файлу.
А у мене через годину після них таке співбесіду призначено, а на наступний день ще три. Таку аплікуху зробити - як два пальці, але млинець це все одно час години на чотири мінімум, за які ніхто не заплатить. А коли ти погодинно попрацюєш на удалёнке то починаєш особливо цінувати час. І особливо його починаєш цінувати коли другий тиждень не заробляєш а ходиш по співбесідах.
І робити ну ось реально не хочеться: завдання не цікава, тебе по скайпу перебивають ейчари, і взагалі краще час витратити щоб освіжити знання про конкаренсі щоб завтра на співбесіді не червоніти. І навіть примітивну програму писати все таки довго: ти, наприклад, можеш відмінно нишпорити хибернейт, але тобі все одно потрібно буде витратити час щоб його правильно підключити до проекту, тому що ти цього не робив ніколи а працював на роботі де вже готове додаток було. Потім прописати мапнігі, наколбасіть тести, побороти пару незрозумілих винятків через помилок - ніби й фігня, а на кожному новому проекті з'їдає купу часу.
І що цим тестовим завданням хотіли подивитися? Як я пишу код? Так для цього можна на гітхаб зайти подивитися, я ж його вказав в резюме. Ну або прямо на собеседовніі можна простий код написати.
Дізнатися як я шарю технічну жесть і знання технологій? Ну так тут завдання на один контролер з десятьма рядками коду. Ну і знову таки - резюме, гітхаб, питання.
В іншій компанії дали звичайну TDD кату пройти. Знову таки: ну і що з цієї кате можна дізнатися? Шарю я ТДД? Ну шарю, це можна і питанням з'ясувати. Може яку архітектуру я наваял в результаті? Так по ТДД архітектура завжди виходить не найкраща, зате робоча. Це завжди так при розробці знизу вгору.
І так, теж п'ять годин її встромляти не цікаво.
Тобто з тестовими завданнями така фігня: великими їх робити не можна, тому що часу немає і бажання робити безкоштовно. А так по ним можна визначити тільки те що вже тепер визначили на тих співбесіді.
А ось що мені реально сподобалося і вважаю хорошою практикою - це коли мені дали лістинг коду і запитали які ти тут проблеми бачиш і як би отрефакторіл.
І тут так, відразу поїхало: тут непотрібний автобоксінг, тут дженерик б дописати, ось це в метод заекстрактіть, тут в JDBC краще зробити prepared statement і ще забули ресурс закрити. 15 хвилин за які інтерв'ювера дізнався про мене в рази більше ніж за п'ятигодинне тестове завдання.
Коли наступного разу буду сам проводити співбесіду обов'язково візьму цю практику.
Вообщем або мені не щастило, або я якось не зрозумів приколу тестових завдань, але за фактом поки я знайшов час і зробив тестове для компанії куди був готовий йти прям зараз вже отримав Шофер від іншої, більш прикольною.
Знову таки, мені складно судити, але походу і хороших девелоперів замало на ринку. На кількох співбесідах де я конкретно не тягнув за досвідом мене все таки дуже захотіли. Підозрюю що причина в тому що у мене з переваг інфраструктурний досвід напрацьований самостійно: як налаштовувати сервера, CI, білди, правильно тестувати, і багато ще бадилля з якої на нормальних проектах розбираються девопси, і так, походу найкращі поїхали в Долину та іншу Ойропу . Ті що залишилися стали архітекторами і мене тепер собеседуют. Ну і так, коли ти проходиш вже з десяток інтерв'ю то на питання відповідаєш відразу. І так, може це тому що якщо тебе вже запросили на співбесіду то вже зацікавлені саме в тобі.
Ну вообщем влаштувався я в непогану начебто компанію, з офісом недалеко від будинку, і хороша вона тим що продуктова, канбан, ТДД і шведська - тайм шифт всього за годину але головне що тімліда явно тлумачний, напевно багато чому навчуся від нього.
Сподіваюся спрацювала.
Хороший доповідь про те що варто питати а що ні:
Приблизно ті ж питання мені зустрічалися на позицію Middle, про варіанти рефакторінга цікаво, хотілося б спробувати) Щодо тестових завдань. я зробив кілька штук в процесі пошуку роботи, так ось, чим більше їх робиш, тим швидше виходять наступні. Якщо порівняти перші з останнім різниця в часі у мене раз в 6-7, оскільки завдання однотипні. Хоча згоден, при думці про чергове тестовому завданні подумки починаю керуватися. Прикро що якщо з ним щось не так і тобі відмовляють після перевірки найчастіше немає навіть нормального фідбека, маскимум що можна отримати у відповідь «не задовольняє вимогам», після такого підходу відпадає бажання спілкуватися з рекрутером, навіть якщо у нього є інші вакансії .
За статтю спасибі, а за «взагалі» я б вбивав. Морально. І довго 🙂
I'm Java / Grails lover, consultant, coach and founder of IT community @kranonit in my native city.




