Що має знати Senior Java Developer. Результати аналізу вакансій в Україні та Каліфорнії

Рекрутери складають вакансії разом з провідними технічними експертами своїх компаній. Їхня співпраця дозволяє врахувати специфіку проекту та встановити адекватний рівень загальних вимог.

Тобто можна сказати, що наш аналіз 100% вакансій, відкритих в Україні та Каліфорнії, дорівнює опитуванню експертів понад 100 компаній. Ми з’ясували, в чому думки розумних людей сходяться. Ігор Яновський відобразив це на віджеті.

У Каліфорнії до дослідження потрапили серед інших вакансії компаній Blizzard, Disney, Glassdoor, Hewlett Packard Enterprise, LG Electronics, Moody’s Analytics, Oracle, PayPal, SAP, Walmart.

Те, що не можна було передати цифрами, запрошені експерти розповіли словами. А ще у вакансіях було знайдено багато цікавого: нестандартні проекти, хто пропонує ЗП до 7k та де співають караоке. Читайте та залишайте коментарі: як добрі, так і гнівні, це ж ДОУ ;)

Як рахували

Станом на 8 березня в рубриці Java на DOU було розміщено 79 вакансій Senior Developer. У Каліфорнії на LinkedIn станом на 20 травня мені підійшло 60 вакансій. Пошукова видача на LinkedIn, Indeed (який часто дублює LinkedIn) та Rabota.ua може показувати досить велику цифру, але це відбувається за рахунок нерелевантних результатів.

Вакансії стафінгових агенцій я ігнорував. Одну вакансію можуть вести декілька агенцій, що призвело б до викривлення результатів. Крім того, деякі стафери можуть практикувати фейкові вакансії, щоб наповнювати свою базу кандидатів.

Аналіз був здійснений вручну, а не скриптом. Це пов’язано з тим, що назва технології може бути записана в вакансії з помилкою. Але значно вагоміша причина в тому, що в разі проходження скриптом поза увагою опинилися б технології, не включені в попередній список.

Результати

Цей віджет дозволяє побачити, чи дійсно ви вкладаєте зусилля у технологію, яка потрібна на ринку праці. Чи, може, в одну з тих, з якими знайти роботу не так просто.

Розбивка навичок на категорії є умовною та покликана спростити сприйняття інформації. Місцями об’єднання тих чи інших навичок в спільну категорію може бути спірним.

Ще 189 технологій не потрапили на віджет, оскільки вони не трапились ані в Україні, ані в Каліфорнії більше двох разів. Так буває (і часто), що на проекті використовують або вірять у перспективність якоїсь технології, яка не є загальноприйнятою на ринку праці. Наприклад, Dropwizard.

Відсотки округлено до цілих з метою спрощення сприйняття.

В Україні — англійська, в Каліфорнії — диплом за спеціальністю

Що справді відрізняє Каліфорнію від України — це потреба для Java-розробника мати профільну вищу освіту. 63% вакансій в Каліфорнії вимагають бакалавра в Computer Science або еквівалент проти 16% в Україні.

Настільки ж велику роль, як в Каліфорнії диплом, в Україні відіграє англійська мова. Її згадує 61% вакансій. Але лякатись немає чого. Здебільшого потрібен рівень Intermediate, трохи рідше — Upper-Intermediate. Advanced не згадано в жодній вакансії, і тому може бути причиною мала кількість та висока ціна на роботу розробників з дійсно хорошою англійською. Традиційно наведу конкретні цифри зарплат згідно з альтернативним віджетом.

Pre-IntermediateIntermediate. 64 анкети. 3 361 доллар на місяць чистими.
Upper-Intermediate. 116 анкет. 3 745.
Advanced. 26 анкет. 3 912.

Небажання вчитись та підтягнути свій рівень до Advanced коштує (3 912 — 3 361) x 12 = 6 612 доларів на рік. Цікаво, що для PHP цей розрив значно більший і складає 9 060 на рік.

Soft Skills: «Social», «Responsible and Brave»

Комунікативні навички згадано сукупно в 52% вакансій Каліфорнії, тоді як в Україні 30%. Цю категорію можна було б назвати також soft skills, тому що, як правило, очікується дещо більше за вміння комунікувати. Але складно чітко зрозуміти, що таке soft skills. Кожен має своє уявлення. Для Ciklum важливо, щоб працівник був «Social» та «Strong team player». Компанія VizExplorer в Каліфорнії так описує свої вимоги: «Good interpersonal skills including the ability to communicate and present ideas and concepts». А компанія GetSocial шукає в Україні працівника, який буде «Responsible and brave».

Hard Skills. Найбільш перспективні — AWS та Docker

Що стосується hard skills, ви можете зробити всі висновки самостійно з віджету. Видно, що Україна та Каліфорнія є так чи інакше достатньо близькими. Немає такого, щоб ми відставали або користувались альтернативним стеком технологій. І це не дивно для аутсорсингової країни.

В якості додаткових побажань роботодавці найчастіше вказували AWS та Docker. Трохи рідше — Apache Kafka, microservices, NoSQL, Python та AngularJS. Можна назвати їх найбільш перспективними для опанування, оскільки, щоб потрапити в додаткові побажання, технологія має бути затребувана на проекті, тоді як знайти спеціаліста з таким досвідом непросто.

Цікавинки, знайдені у вакансіях. 7k, MS Word, Ability to sing Karaoke!

Україна

Ciklum шукає Java Team Lead для платіжної системи Mercedes Pay від Daimler.

Для працевлаштування в Intellias на навігаційний проект HERE знадобляться знання математики, включаючи теорію ймовірностей, статистику та геометрію. Це може бути цікавим для тих, хто вважає свою поточну роботу недостатньо інтелектомісткою.

GlobalLogic пропонує відрядження до Австралії.

Дві компанії шукають розробника з почуттям гумору: Skelia та PDFFiller. Можливо, це ви?

Вакансії, що втратили актуальність за час підготовки матеріалу, все ще дають змогу скласти уявлення про те, які проекти є в країні.

Компанія GetBetter пропонувала на ремоуті компенсацію до 4800. Буде плюсом знання екстремального програмування. Вищі зарплати (до 7000) вказали лише стафінгові агенції. Останні хочуть наповнити довірливими девелоперами свої бази даних, тому їхні «вакансії» були проігноровані в дослідженні.

Львівська компанія BotsCrew пропонувала в зимовий період працювати з Таїланду.

Для компанії Solve.Care, яка працює в індустрії охорони здоров’я, був плюсом досвід з AI, ML, NLP, Blockchain.

Одеська компанія Productive Edge вказувала у вимогах «Применение постоянного рефакторинга, вместо создания архитектуры на все случаи жизни». Саме таку концепцію просував легендарний Мартін Фаулер.

Каліфорнія

Disney вказує у вимогах серед іншого знання Microsoft Word та Google.Docs. Я протирав очі, чи це точно вакансія Java розробника.

Для компанії TrustArc буде плюсом «Ability to sing Karaoke!».

Думки технічних експертів

Микола Северин, Senior Java Developer в Beetroot

Роздумуючи про те, що має знати Senior Java Developer, в першу чергу на думку спадають не технології і бібліотеки (що само собою зрозуміло), а вміння декомпозувати предметну область, зрозуміти, як працює бізнес замовника і яка роль в цьому бізнесі належить програмному продукту, що розробляється.

Також важливим навиком senior розробника є знаходження балансу між гнучкістю та простотою створюваної системи. Для розуміння, по яких осях зміни в майбутньому ймовірні, а по яких — малоймовірні, розробник має налагодити гарну комунікацію як із замовником, так і всередині команди.

Наразі актуальними на ринку Java-розробки є два стеки технологій: Spring і Java EE. Використання будь-якого з них, як правило, веде до виникнення блідої моделі предметної області (anemic domain model). Я б порадив розробникам, які вже впевнено використовують такий підхід, подивитися в бік розробки програмного продукту на основі багатої моделі предметної області (rich domain model). Такий підхід дозволяє використовувати всі переваги ООП, і, на мою думку, в майбутньому його актуальність буде знову зростати.

Але потрібно завжди мати на увазі, що золотого молотка як серед технологій, так і серед методологій розробки не існує. Тому senior розробник при прийнятті кожного рішення зважує його переваги та вартість. Адже зазвичай немає правильних і неправильних рішень, є рішення, які підходять в конкретній ситуації, і які — ні.

Роздумуючи про те, що має знати Senior Java Developer, в першу чергу на думку спадають не технології і бібліотеки (що само собою зрозуміло), а вміння декомпозувати предметну область, зрозуміти, як працює бізнес замовника і яка роль в цьому бізнесі належить програмному продукту, що розробляється.

Також важливим навиком senior розробника є знаходження балансу між гнучкістю та простотою створюваної системи. Для розуміння, по яких осях зміни в майбутньому ймовірні, а по яких — малоймовірні, розробник має налагодити гарну комунікацію як із замовником, так і всередині команди.

Наразі актуальними на ринку Java-розробки є два стеки технологій: Spring і Java EE. Використання будь-якого з них, як правило, веде до виникнення блідої моделі предметної області (anemic domain model). Я б порадив розробникам, які вже впевнено використовують такий підхід, подивитися в бік розробки програмного продукту на основі багатої моделі предметної області (rich domain model). Такий підхід дозволяє використовувати всі переваги ООП, і, на мою думку, в майбутньому його актуальність буде знову зростати.

Але потрібно завжди мати на увазі, що золотого молотка як серед технологій, так і серед методологій розробки не існує. Тому senior розробник при прийнятті кожного рішення зважує його переваги та вартість. Адже зазвичай немає правильних і неправильних рішень, є рішення, які підходять в конкретній ситуації, і які — ні.

Богдан Шияк, автор Java дайджесту на DOU

Зазвичай ми можемо провести якусь (скоріше за все суб’єктивну) межу між junior та middle, базуючись на рівні технічних знань. Проте провести таку межу між middle та senior вже набагато складніше. Однією з причин цього є те, що на рівні senior у фахівця з’являється спеціалізація. Людина може мати поглиблені знання в царині реляційних БД, при цьому не маючи досвіду з NoSQL, спеціаліст в NoSQL може не вміти працювати з UI (принаймні з сучасними підходами до UI), full stack розробник може не мати досвіду з AWS (наприклад, тому що працював з GCP :) ) тощо. Тому, на мій погляд, коректніше проводити межу middle/senior, відштовхуючись від зрілості спеціаліста: готовності брати на себе відповідальність, проактивної позиції, вміння розуміти бізнес і знаходити баланс між потребами бізнесу та «технічною досконалістю системи» і, напевно, найважливіше, вміння та бажання навчатися.

Готовність брати на себе відповідальність (за реалізацію чогось, а не за чиїсь помилки :) ) та проактивна позиція — є факторами, що в цілому позитивно впливають на кар’єрне зростання. Вміння розуміти бізнес та доносити свої ідеї до нього важливе, бо senior так чи інакше контактує з представниками бізнесу набагато більше, ніж middle. Вміння навчатися важливе, бо «with great power comes great responsibility»: якщо команда не може знайти рішення проблеми, то сеньйорний її складник зобов’язаний запропонувати вирішення бізнес-проблеми, якщо не на основі свого досвіду, то на основі досвіду інших людей.

Щодо результатів дослідження, то нічого шокуючого в них немає. Дивно було б побачити вимогу володіти англійською мовою в країні, де ця мова є національною, особливо для спеціальності, котра все ще вимагає наявності вищої освіти. Оскільки система освіти в США живе та процвітає, то цілком логічно бачити вимогу про наявність у кандидата профільної вищої освіти. Українська ж освіта в основному «навчає навчатись», тому не так важливо чи у вас диплом, пов’язаний з CS, чи математика, фізика, хіміка або економіста. Вимоги знання OOP/Data Structures/Algorithms — це фактично перевірка наявності у вас диплома (або вміння навчатись).

Зазвичай ми можемо провести якусь (скоріше за все суб’єктивну) межу між junior та middle, базуючись на рівні технічних знань. Проте провести таку межу між middle та senior вже набагато складніше. Однією з причин цього є те, що на рівні senior у фахівця з’являється спеціалізація. Людина може мати поглиблені знання в царині реляційних БД, при цьому не маючи досвіду з NoSQL, спеціаліст в NoSQL може не вміти працювати з UI (принаймні з сучасними підходами до UI), full stack розробник може не мати досвіду з AWS (наприклад, тому що працював з GCP :) ) тощо. Тому, на мій погляд, коректніше проводити межу middle/senior, відштовхуючись від зрілості спеціаліста: готовності брати на себе відповідальність, проактивної позиції, вміння розуміти бізнес і знаходити баланс між потребами бізнесу та «технічною досконалістю системи» і, напевно, найважливіше, вміння та бажання навчатися.

Готовність брати на себе відповідальність (за реалізацію чогось, а не за чиїсь помилки :) ) та проактивна позиція — є факторами, що в цілому позитивно впливають на кар’єрне зростання. Вміння розуміти бізнес та доносити свої ідеї до нього важливе, бо senior так чи інакше контактує з представниками бізнесу набагато більше, ніж middle. Вміння навчатися важливе, бо «with great power comes great responsibility»: якщо команда не може знайти рішення проблеми, то сеньйорний її складник зобов’язаний запропонувати вирішення бізнес-проблеми, якщо не на основі свого досвіду, то на основі досвіду інших людей.

Щодо результатів дослідження, то нічого шокуючого в них немає. Дивно було б побачити вимогу володіти англійською мовою в країні, де ця мова є національною, особливо для спеціальності, котра все ще вимагає наявності вищої освіти. Оскільки система освіти в США живе та процвітає, то цілком логічно бачити вимогу про наявність у кандидата профільної вищої освіти. Українська ж освіта в основному «навчає навчатись», тому не так важливо чи у вас диплом, пов’язаний з CS, чи математика, фізика, хіміка або економіста. Вимоги знання OOP/Data Structures/Algorithms — це фактично перевірка наявності у вас диплома (або вміння навчатись).

Андрій Петрик, співорганізатор JavaDay Lviv, Java Engineering Manager в CoreValue

Каліфорнія — це, звісно, прекрасно. Але не Каліфорнією єдиною — тех. сектор розвинутий і у Вашингтоні, Орегоні, Техасі, Джорджії, Колорадо, Бостоні, Флориді та Нью-Йорку. І вимоги до кандидатів будуть відрізнятись, як і винагорода за працю.

Іншою особливістю Каліфорнії є те, що вона hype-driven. Як тільки «авторитетна» компанія починає використовувати ту чи іншу технологію — решта ринку з великою часткою ймовірності її наслідує (особливо це характерно для стартапів). Так було зі Scala, потім з Node, а от зараз з Go. Java — не про хайп. Hype is temporary, Java — eternal.

З точки зору найму і оцінки сеньйорності — це завжди «впирається» в скіловість і кругозір того, хто здійснює найм/проводить інтерв’ю. За мою кар’єру часто бували випадки, коли люди представились (і відповідно претендували на позицію) сеньор девелопером, а при мінімальному перегляді з тріском провалювались, не дотягуючи навіть до мідла. У більшості випадків це було пов’язано з небажанням кандидатів продовжувати вчитися, адаптуватися до нових умов. Я скажу те, з чим, напевно, багато хто не погодиться, але, на мій погляд, зараз Java — одна з тих мов, які швидко розвиваються, адаптується до ринку і (сам не вірю, що це кажу) змінюється. Для мене це один (але звісно не єдиний) з критеріїв визначення мачурності кандидата — знання, куди рухається платформа і до чого слід бути готовим в 1-2-річній перспективі.

Каліфорнія — це, звісно, прекрасно. Але не Каліфорнією єдиною — тех. сектор розвинутий і у Вашингтоні, Орегоні, Техасі, Джорджії, Колорадо, Бостоні, Флориді та Нью-Йорку. І вимоги до кандидатів будуть відрізнятись, як і винагорода за працю.

Іншою особливістю Каліфорнії є те, що вона hype-driven. Як тільки «авторитетна» компанія починає використовувати ту чи іншу технологію — решта ринку з великою часткою ймовірності її наслідує (особливо це характерно для стартапів). Так було зі Scala, потім з Node, а от зараз з Go. Java — не про хайп. Hype is temporary, Java — eternal.

З точки зору найму і оцінки сеньйорності — це завжди «впирається» в скіловість і кругозір того, хто здійснює найм/проводить інтерв’ю. За мою кар’єру часто бували випадки, коли люди представились (і відповідно претендували на позицію) сеньор девелопером, а при мінімальному перегляді з тріском провалювались, не дотягуючи навіть до мідла. У більшості випадків це було пов’язано з небажанням кандидатів продовжувати вчитися, адаптуватися до нових умов. Я скажу те, з чим, напевно, багато хто не погодиться, але, на мій погляд, зараз Java — одна з тих мов, які швидко розвиваються, адаптується до ринку і (сам не вірю, що це кажу) змінюється. Для мене це один (але звісно не єдиний) з критеріїв визначення мачурності кандидата — знання, куди рухається платформа і до чого слід бути готовим в 1-2-річній перспективі.


P. S. Наступний випуск буде присвячений Front-end, і ми в пошуку профільних експертів. Якщо вам цікаво взяти участь, напишіть мені, будь ласка, на LinkedIn.

Похожие статьи:
Своеобразная архитектура в Интел, напоминающая часы, и их тиканье, показывает объединенную процессорную составляющую, которая...
Игорь Доровских переехал в США в конце 90-х и строил карьеру уже там — и дошел до топ-должности в Tinder. В интервью DOU...
В этой статье разберем эмоционально-сложные ситуации, с которыми сталкиваются айтишники на работе. В конце —...
З невеликої волонтерської групи фахівців, які обʼєдналися в кінці лютого 2022 року, ІТ Армія України розрослась...
Зайвий знак у рядку з кодом, переходи на літній та зимовий час і маленька піктограма — усе це може стати...
Яндекс.Метрика