Що має знаті 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-Intermediate & Intermediate . 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 .
Опубліковано: 18/06/19 @ 10:00
Розділ Різне
Рекомендуємо:
Як спілкуватися з іноземними замовниками: поради українським розробникам
Реаліті: інфо-сайт, звіт #3
Android дайджест #34: CameraX, Flutter 1.5, cold flows і hot channels в Kotlin
BA дайджест #2: особливості рекомендаційних систем, нюанси міжкультурної комунікації
Туторіал по розгортанню Rails-додатків на Amazon за допомогою Docker. Частина 2