Шлях джавіста: від інтерна до IT-директора

У цій статті я розповідаю про свою любов до Java, чому вважаю джавістів найкращими професіоналами та розповідаю про свій шлях від інтерна до ІТ-директора однієї із бельгійських компаній в межах N-iX .

У кожного з нас шлях у світі Java складається по-своєму. Хтось починає у маленькому стартапчику, який з годиною закривається через брак інвестицій, і потрібно все починати знову. Хтось відразу ж потрапляє у велику компанію. Декому вдається дива сініором за 1,5 роки, і він ламає собі голову, куди ж рухатись далі. Кожен такий досвід чогось вчить і підштовхує до певного вектора розвитку. Я свій шлях проходив протягом 10 років у 4 компаніях і виніс з нього багато вагомих уроків. Один з найцінніших полягає в тому, що в світі технологій все змінюється досить швидко, і щоб бути класним, затребуваним спеціалістом, потрібно постійно бути в курси змін та нових технологічних рішень і завжди дивитися на крок попереду себе — і в сенсі інновацій, і в сенсі власного кар'єр кар'єрного розвитку.

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

Перші кроки в IT

Я почав своє знайомство з девом ще за часів студентства. Пішов у маленьку польську компанію, яка розробляла ігри на J2ME. Тоді писали багато софта під мобільні телефони, і ця технологія була неабияк популярна. Компанія була невеличка, і мені доручали багато різноманітних завдань, з якими треба було самому сидіти та розбиратись. Це дуже драйвило навчатися новому, здобувати "медальку" і рухатись далі. Пропрацював я в цій компанії 1,5 роки. Спочатку був залучений до гейм-девелопменту, потім пробував собі трохи у вебі. У світ якраз тоді вийшла нова платформа Android. І як тільки з'єднання з'явилася її альфа-версія, мені дали єдиному в компанії імпортувати на неї ігри на Java. Закінчилося тим, що я написав статтю про Android, в якій описавши перспективи платформи і чи можна взагалі на ній розробляти ігри, i її надіслали у Польщу. Тоді це було першим знаком для мене, що Android витіснить J2ME. І я зрозумів, що ті знання, що в мене є про J2ME невдовзі застаріють і їх потрібно оновлювати, тримати ніс за вітром і рухатись вперед. На тій годину мене дуже цікавив Android, але у львівських компаніях експертизи по цьому напрямку не було, і я пішов у інше русло. Власне, я продовжив свій шлях у напрямку Java SE/EE.

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

Розуміння майбутніх перспектив

Отримавши свій хороший старт у польській компанії, я перейшов працювати у більшу українську компанію, яка переважно займалась аутсорсингом і налічувала вже 75 людей. Мені подобалось те, що компанія співпрацювала з європейськими замовниками. Власне, ми розробляли швейцарцям різні системи. Тут я працював джуніор спеціалістом і почав серйозніше ставитись до роботи. Це вже була порівняно велика компанія з чіткіше налагодженими процесами і хорошим менеджером. І це був мій перший справжній досвід спілкування і з замовниками, і з делівері менеджерами. Насправді тут я побачив, які взагалі спеціалісти існують, і що світ широкий, є багато перспектив, і можна рухатись, куди захочеш. Тут вже був рівень не мобільної Java, в якій є багато всіляких обмежень, а Java рівня ентерпрайз. У нас була матриця знань і змога прогресувати, що для мене було завжди дуже пріоритетним. Я там попрацював 3 рокі і зрозумів, що вже переріс цю компанію, починаю стояти на місці, і потрібно рухатися далі.

Аналізуючи свій досвід та досвід інших, можу сказати, що на етапі трейні-джуніор людина, наче мушля, дуже багато в себе вбирає, проте вона рухається, неначе у тунелі, та не має чіткого розуміння, що відбувається і куди рухатися далі. І щоб перейти на рівень якісного мідла — потрібно навчитися самому оцінювати, розуміти та структурувати всі ті, чого ти навчаєшся. Дуже важливо за 2 рокі сформувати в собі розуміння того, що немає когось, хто буде відповідати за розбудову твого кар'єр кар'єрного шляху у компанії. Насправді ти сам є такою собі «компанією» з різноманітними відділами, як-від девелопмент чі маркетинг, і перш за все ти маєш бути зацікавлений у розвитку та рості своєї «компанії». І от це розуміння дозволить цілеспрямовано рухатися, а не інертно.

Потрібно скласти собі PDP (Personal Development Plan), який буде, наприклад, складатися з трьох пунктів:

  1. Що тобі подобається робити;
  2. Що тобі треба робити, але поки не вдається;
  3. Трендові штуки, які треба годину від годині пробувати.

Такий план можна підшукати для себе онлайн. Маючи вже базу на рівні мідла, людина свідомо обирає для себе, куди саме вона як спеціаліст хоче рухатись далі. До прикладу, обирає для себе якусь вужчу технологічну сферу, наприклад, Machine Learning, або ж обирає якийсь конкретний домен. Я зараз дуже раджу вже на цьому рівні зв'язку язувати себе з якоюсь сферою, наприклад, фінансами. Адже зараз найбільше цінують спеціалістів не лише з певними технологічними знаннями, але перш за все з експертизою в певному домені. І на цьому рівні потрібно вже будувати PDP на наступну сходинку — рівень сініора

Досвід тімліда на ентерпрайзному проекті

Оскільки я прагнув розвитку та розмаху, то пішов працювати у одну з найбільших ІТ-аутсорингових компаній в Україні. Мене підкупило те, що вони малі в Україні повний цикл розробки. Спочатку я хотів піти на Android, який мене чомусь завжди приваблював, але мене переконали, що Android — це така технологія, яка не показує масштабом. І я пішов на велетенський джавішний проект з нуля. Це був повний Java-стек, хороший ентерпрайз, класні технології, i в ньому було залучено багато спеціалістів. Почав я там сініор девелопером, а з часом ставши тімлідом і отримав більше обов'язків, з-поміж яких і набір джуніор спеціалістів в команду.

На цьому великому проекті я співпрацював з дуже крутими людьми: бізнес-аналітиками, архітекторами, займався бізнес-девелопментом і навіть переймав деякий менеджерський досвід. Проект був цікавий ще тим, що тоді якраз джавішна спільнота прагнула бути незалежною, тобто хотіли брати один стек технологій Java і її різних фреймворків, щоб закривати всю компетенцію і не залежати від Frontend-спеціалістів та всіх інших. Ми ставили собі завдання виховати інженера, який зможе на Java написати будь-яку програму. Від тільки його одного посадиш, і маєш візуально готовий продукт, звісно ж якщо інтерфейс не вимагав дуже привабливого дизайну. Ta з часом, десь після двох років такого процесу, виявилось, що це не дуже вдала ідея. Окрім того, JavaScript почав активно розвиватися. Таке рішення було хорошим лише для дуже простих інтерфейсів, для консольних рішень, які не вимагають супер-сексі дизайну. Однак потім i воно мало свою прогалину за сапорту, i підтримувати це було дуже важко, адже якщо готові UI-компоненти на Java були з дефектами, то їх було потім дуже важко фіксити. І це значною мірою впливало на гнучкість та сексуальність дизайну. Тож ми свою роль виконували, але сапорт-спеціалісти потім витрачали дуже багато часу на підтримку продукту, коли вже кістяк було написано. Так я отримав свій хороший досвід ентерпрайзу і захотів змін і чогось більшого.

Аналізуючи цей період, можу сказати, що на рівні стронг мідла — початку сініора, коли вже є солідна база знань, важливо не зазнаватись. Головне завдання на цьому етапі — бути сильним спеціалістом і мати щось таке, за що тобі можна буде виділити з-поміж інших, наприклад, дуже круті знання в якійсь специфічній технології, виступи на якусь тему, наприклад, Data Science. Вже на рівні сініора-ліда важливо чітко усвідомлювати, які у тебе сильні сторони. Якщо є емпатія та певний набір софт скілів, тоді потрібно розвивати свої менеджерські здібності. Якщо ж переважають технічні навики та схильності, то потрібно шукати якісь real-life challenging projects, щоб максимально їх прокачати.

Як я потрапив у N-iX і ставши IT-директором у бельгійській компанії

У пошуках саме таких проектів я перейшов на N-iX. Якщо в попередній компанії я отримав дуже крутій досвід ентерпрайзу, то тут мене привабила продуктова фішка. Я пішов на проект, який був саме продуктовим, з розумінням того, що він буде з нуля, і тут буде змога реально побудувати щось своє, яке вийде в продакшн і чим можна буде пишатися. Я був тут першою людиною, наймав всю команду, пишучи кістяк того софта, налаштовував якісь базові речі деплойменту.

Окрім Java на проекті було багато інших технологій, у тому числі Python i Ruby. Проте для вирішення багатьох основних завдань на проекті я обрав саме Java, оскільки це було найкращим рішенням, було достатня експертизи і в команді, і в N-iX загалом. І звісно замовник був не проти. Java завжди була технологією доступом до всього, яка вирішувала багато проблем, і у замовників не виникало сумнівів, чому саме Java. За це я її і люблю. Пам'ять пам'ятаю, як я ще йшов на першу роботу, то доступ до знань з Java був обмежений, тому що вона не була така розповсюджена тоді, як інші мови, i було дуже важко знайте якісь курси. І до певного періоду, якщо хотів опанувати власне Java, потрібно було сидіти і навчатися самому. Тому якщо, бувало, ти зустрічаєш джавіста з досвідом, то це означає, що людина сиділа, розбиралася і розуміє часто більше, ніж інші.

Спочатку я був на цьому проекті тімлідом, який набирав людей і створював команду за допомогою координації з Брюсселя, де знаходився IT-директор замовника. Перший рік з трирічного існування проекту ми власне так дзеркально і налагоджували стосунки: IT-директор з Брюсселя розраховував на мене в Україні, а я міг покластися на нього з того боку. І ми вісь так будували продукт, щоб вивести його на ринок. Це була активна стадія розвитку продукту, де все збирається, як під час стрибка з літака, маючи елементи для складання парашута. Ми зібрали чудову команду і налаштували класні процеси із застосуванням сучасних підходів, де ми розмежували фронтенд і бекенд-розробка. Тобто в нас джавісти писали реально ті, в чому Java найсильніша, i так само юайщики і девопс. У нас були всі спеціалісти різних рівнів, щоб повністю мейнтейнити продукт самостійно. Людям в Брюсселі подобалось, що ми були дуже самостійною одиницею, i якщо вони давали нам завдання практично будь-якого рівня складності, ми їх вирішували без зайвих запитань.
Таким чином, в Україні можна працювати начебто не у продуктовій компанії, альо займатись продуктом, будувати щось, а не просто виконувати таски замовника, чого власне хочуть так багато сініор-спеціалістів.

Ми із замовником вибудували прекрасні відносини i були задоволені тим, як в нас з часом ріс рівень комунікації. І в певний момент вони вирішили, що з їхньої сторони CTO не потрібен, тому що усі ті процеси, які я з командою тут будував, я тут і закривав. Тож мені запропонували роль людини, яка закривала практично всю технологічну компетенцію продукту, представляла їхню компанію, їздила до Бельгії на сейлз-процеси та вела перемовини. Їм це подобалось, адже йшлося про людину, яка з перших рук знає, як там все працює і знає, куди можна рухатись.

Що стосуєтся технологічних рішень, Java нас дуже задовільнила i забезпечила увесь бекенд. Також велику частку успіху зіграла наша фронтенд-команда, девопс i ті, що ми могли це все дуже гарно і швидко виводити на ринок. На цьому проекті я спілкувався також з архітекторами з інших проектів, деякі з них були моїми друзями з попередніх компаній. N-iX так заведено, що люди з різних проектів спілкуються між собою в чатах, завжди можна прийти і порадитись, і це створює хорошу робочу атмосферу. Власне, у нас є така собі внутрішня Java-спільнота.

Якщо ж говорити про задоволеність команди, то в різний час вона була різною, але загалом люди були задоволені, що малі можливість попрацювати на такому проекті. Це дуже корисний досвід і навіть зараз, після того, як вони пішли з проекту, то переоцінили своє ставлення до проектів і взагалі ті, чім смороду б хотіли займатись. Тобто така продуктова історія у досвіді дала майндшифт у всьому, в тому числі у ставленні до технологічного стеку. Загалом це був хороший цикл для мене тривалістю в 2,5 роки, коли ми написали багато всього на Java. Це була можливість попрацювати повністю над продуктом і в технологічному сенсі, і в стратегічному.

Оглядаючись назад на цей етап, можу сказати, що на рівні тімліда потрібно мотивувати людей своїм прикладом, тоді тобі делегують більше обов'язків. Ти говориш, проявляєш себе, і тебе чують. Саме так я в межах одного проекту виріс із ліда IT-директора.

Лід Java-девелопер... а куди ж далі?

Коли доходиш до певної точки свого професійного розвитку, скажімо, позиції сініор Java-девелопера, мимоволі починаєш задумуватись, а куди ж далі. На мою думку, векторів можливого розвитку є декілька.

Можна продовжувати рухатися в технічному напрямку: ставати техлідом, архітектором, ентерпрайз-архітектором. З точки зору архітектури та розвитку в ширину у Java-спеціаліста є куди рухатись, тому що багато різноманітних завдань у різних сферах можна вирішити на Java. Це чудовий напрямок для справжнього технаря. Також можна розширювати свої скіли в специфічних Java-технологіях, таких як Hybris. Для тих же, кого приваблює менеджмент і розвиток та використання своїх софт скілів, більше підходить роль тімліда, щоправда технічні навики тоді з часом трохи втрачаються. Є ще один напрямок розвитку, а саме піти трішки в бік від звичайного ентерпрайзу та опанувати і заглибитися більше в такі інноваційні та перспективні зараз технології, як Machine Learning, Artificial Intelligence та Virtual Reality. До речі, у N-iX зараз є чимало Java-проектів , які постійно шукають нових людей.

Насправді в Україні Java enterprise development буде актуальним ще багато років, тому про шлюб роботи не варто перейматися. Проте тим, хто прагне бути на передовій, варто тримати ці технології майбутнього на своєму радарі.

Опубліковано: 29/06/17 @ 07:00
Розділ Реклама

Рекомендуємо:

DOU Проектор: Roadmap Planner — додаток для планування стратегії компанії
Шлях самоучки: pet-проекти і підводні камені самостійного вивчення IT
PM дайджест #2: пазл процессов PMP, HoLeBan и набор инструментов для продакт-менеджера
PM дайджест #2: пазл процесів PMP, HoLeBan і набір інструментів для продакт-менеджера
Організація робочого графіка техпідтримки: плюси і мінуси 8 і 12-годинної зміни