Як воно: проводити технічні співбесіди в Adobe, і чому найбільший виклик — це комунікація

У 2013 році мій друг Владислав Щербина розповів про DOU та порекомендував зареєструватися. За кілька років саме розміщена на DOU вакансія допоможе йому потрапити до США. Зараз Владислав працює архітектором у техаському офісі Adobe, розробляє новий продукт та проводить технічні співбесіди. Ми поспілкувалися про його український бекграунд, бенефіти Adobe, обов’язки й болі роботи архітектора, а також про те, як ним стати.

«Я потрапив до переліку топконтрибуторів Magento на GitHub». Про початок кар’єрного шляху та переїзд до США

Після школи я пішов працювати системним адміністратором. Паралельно фрилансив: створював сайти. У 2012-му став QA-автоматизатором у компанії Le Boutique. Наш CTO Ігор Павленко помітив мою мотивацію перейти в програмісти й сказав: «Склади сертифікацію на PHP — і ми дамо тобі фіксити баги». Так у 2013 році я отримав сертифікацію Zend і розпочав кар’єру в програмуванні.

У 2014-му я перейшов у компанію Magento, яка розробляла e-commerce-платформи. Наша команда відповідала за модулі Sales. Частина Magento — це опенсорс, тому мої контрибуції були видимі на весь світ. Ми працювали над складною фічею, яка стосувалася всіх компонентів Magento і потребувала написання великої кількості коду. Я потрапив до переліку топконтрибуторів Magento на GitHub. Потім це відіграло роль у моєму переїзді до США.

У 2015-му eBay продав Magento фонду Permira. Новий власник задумав реорганізацію, у підсумку якої нашу команду вирішили розпустити. Кожного кудись розподілили, я ж постановив ходити по співбесідах. На DOU натрапив на вакансію компанії Swenson He з офісом у Каліфорнії, що працювала з Magento. Вказав у резюме, що я топконтрибутор Magento, та додав посилання на GitHub. Зі мною зв’язалися вже наступного дня.

«Їхній CTO подивився GitHub і сказав, що технічну співбесіду навіть не будемо проводити»

Мене запросили в США за тренінг-програмою. У 2017 році я саме заочно закінчив КПІ, а Штати дозволяють випускникам зі всього світу стажуватися в американських компаніях. Так я потрапив до Америки.

Мій словниковий запас сягав 7 тисяч слів, акцент був жахливим. Що цікаво, одна з українських компаній напередодні відмовила мені через погану англійську. Утім, мого рівня вистачило для того, щоб отримати офер зі США. Але я розумів: мову треба покращувати.

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

У маленькій компанії менше спеціалізації та більше взаємодії з клієнтами. Наприклад, я їздив у відрядження на склад до клієнта, де CEO компанії-замовника працював поруч зі мною. На жаль, маленька компанія не завжди може дозволити собі платити високу винагороду.

«Ми одразу почали отримувати акції». Про особливості й бенефіти Adobe

У 2018 році я повернувся в Magento, але вже в каліфорнійський офіс. Незабаром того ж року Magento придбала компанія Adobe. Це зумовило зміни на краще. Наприклад, оскільки Adobe є публічною компанією, ми одразу почали отримувати акції.

Ще один бенефіт — це оплата навчання. Adobe компенсує вартість професійної освіти до $10 тисяч на рік, якщо ви отримуєте на навчанні хороші оцінки. Покривають і вартість курсів, але до $1 тисячі на рік. Я подумав: чому б не навчатися після роботи? Почав із курсів на Udacity. Потім вибрав спеціалізацію з Data Science в UCLA (University of California, Los Angeles). Ознайомився з машинним навчанням, вивчав Natural Language Processing. Закінчив за пів року і навіть імплементував дещо на хакатонах на роботі.

Пізніше я почав навчання в магістратурі Arizona State University на Coursera. Потрібно було надати три рекомендації та мати гарний середній бал з попередньої освіти. Щоправда, поки що я зупинив навчання. Не задовольнила якість останніх онлайн-курсів, а також вирішив більше сфокусуватись на роботі.

Мені подобається, що Adobe слухає своїх працівників. Подобається політика відпусток. Adobe надає безлімітну відпустку, хоча деякі команди обмежують її залежно від побажань керівництва конкретної команди.

Якось я з’їздив в Остін, що в Техасі, і залишився під враженням. Цей штат перевершує Каліфорнію за інфраструктурою, хоча має менші податки. Зокрема кількість та якість доріг, стоянки на хайвеях, чистота вулиць, як на мене, краще в Техасі, тоді як Каліфорнія має додатково близько 10% податку на дохід. Школи в Остіні мають на 20% більший середній бал тесту для вступу в коледжі SAT, ніж в Лос-Анджелесі, що стало для мене ключовим чинником через навчання дитини. 2022 року я переїхав у Техас, але продовжив працювати в Adobe.

«Серед працівників компанії в Остіні є чимало українців»

Колеги дуже допомагають Україні. Більшість донатять через фонд Liberty Ukraine, деякі колеги є активними його учасниками. Я допомагаю адресно: закриваю потреби там, де служать мої друзі, та співпрацюю з громадською організацією «450 Кривий Ріг», до команди якої входить і моя сестра.

«Найбільшим викликом для мене став пошук компромісів з людьми». Про роботу архітектором

Я працював над аналітичним інструментом у Magento. Коли прийшов у цю команду, продукт був на початковій стадії та не масштабувався. Я зробив багато архітектурних змін, щоб він міг заскейлитися для всіх Magento-клієнтів, витримував навантаження та працював безпомилково. Декілька років я мігрував із моноліту в event-driven-архітектуру. Завдяки цьому на наступному проєкті менеджмент призначив мене архітектором. Зараз я працюю на проєкті, який пов’язаний не з Magento, а з багатьма продуктами Adobe.

Робота архітектора полягає в тому, щоб працювати з бізнес-вимогами та розширювати їх нефункціональними вимогами, як їх називає автор книжок з архітектури Марк Річардс та його колега Ніл Форд. Є бізнес-вимоги — наприклад, продукт має додаватися в кошик. І є вимоги, які стосуються радше архітектури системи, — наприклад, чи потрібне масштабування, чи важлива швидкодія. Архітектор балансує ці компроміси. Архітектура має задовольняти потреби бізнесу і бути, що називається, future proof. Наприклад, мінімізувати час на внесення змін у майбутньому.

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

«Довелося сісти з тимлідом і подивитися разом воркшоп Ніла Форда»

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

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

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

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

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

Найбільшим викликом для мене став пошук компромісів з людьми. М’які навички дуже важливі. Був момент, коли я не зміг пояснити тимліду й менеджеру, чому нам потрібна певна специфічна архітектура. Довелося сісти з тимлідом і подивитися разом воркшоп Ніла Форда — лише тоді він підтримав мою ідею. Мені ще прокачувати й прокачувати навички пояснення. Це найскладніше в роботі.

«Інколи менеджмент вважає, що нікому не потрібне те, про що я кажу»

Їм просто важливо зробити швидше. Однак про помилки, які сталися за рік, я попереджав, проте не зміг донести свою точку зору. Бувало, опускалися руки. Робота розробником у цьому плані менш стресова. Навчитися комунікувати — це виклик.

Водночас найцікавішим завданням для мене була розробка архітектури системи компонентів для проєкту, над яким ми зараз працюємо. Мені сподобалось аналізувати, як ця система буде використовуватись та розширюватись.

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

Я працюю сім-вісім годин на день. Торік було більше, зокрема 7 годин мітингів, на основі яких я ще мав внести правки в документацію, вимоги, десь додати діаграму.

«Наші співбесіди відрізняються від інших компаній США». Про те, як стати архітектором, та досвід проведення співбесід

Для того щоб стати архітектором, потрібно перш за все розвивати технічні навички: знати алгоритми, декілька мов програмування, різні бази даних. Розбиратися в деталях, чому та в яких випадках використовують MySQL або MongoDB. Розумітися на стилях програмування: функціональний, об’єктноорієнтований. Розвиватися, читати книжки, бути зацікавленим у своєму продукті та в тому, як архітектурний стиль впливає на еволюцію продукту. Саме собою, важливі й м’які навички.

Серед мов програмування володію PHP, Python, Golang і JavaScript. Навіть трохи писав на Java та C. Знання C навряд чи допоможе архітектору, а от розумітися в таких модернових мовах, як Rust, точно потрібно. Важливо стежити за трендами, новинами. Білий дім опублікував маніфест щодо memory safe languages, який робить вивчення Rust усе актуальнішим. Це може не допомогти на конкретному проєкті, але як мінімум розширить кругозір. Реальність така, що навіть якщо ви архітектор і скажете: «Ця мова — найкраща у світі, вона підходить для цього нового компоненту», — не всі компанії дадуть вам це зробити, тому що в компаніях також є стандарти, якими мовами вони пишуть.

В Adobe я проводжу співбесіди, і в нас вони відрізняються від інших компаній США. Є багато компаній, де треба алгоритми, LeetCode. Я проходив співбесіду в Google, де необхідно знати алгоритми. В Adobe ж ми питаємо теорію, мову програмування, зокрема PHP, об’єктноорієнтоване програмування, Kubernetes, трохи Unix, Linux. Щоправда, команди в Adobe мають свободу проводити співбесіди так, як вони хочуть, тож і в нашій компанії ви можете потрапити на алгоритмічну співбесіду.

Треба бути професійними в тому, що ви робите. І вказувати в резюме інформацію, яку зможете підтвердити. Буває, наприклад, фахівець пише, що знає MySQL чи PHP. А коли починаю питати про інтерфейси — навіщо вони в PHP та як користуватися, — людина не розбирається.

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

Похожие статьи:
[Об авторе: Дмитрий Маленко — СТО компании rollApp, профессионал с 15-летним опытом в индустрии. Соавтор нескольких книг...
Компания Oral-B представила, как она заявляет, первую в мире электрическую зубную щетку с Bluetooth-интерфейсом v4.0 для...
Юрій Калінкін, Middle Software Engineer у компанії SoftServe, загинув на фронті. У лави ЗСУ він пішов добровольцем на третій...
Defense-tech кластер шукає технологічну розробку, що допоможе Силам оборони більш ефективно працювати проти...
У Міністерстві оборони повідомили про запуск проєкту «Залізний полігон». Українським виробникам...
Яндекс.Метрика