Як я працюю: Олександр Труш, CTO в Edenlab

[В рубриці «Як я працюю» ми запрошуємо гостя розповісти про свою роботу, організації воркспейса, корисних інструментах і лайфхаках]

Олександр Труш починав свою кар'єру як Python-розробник в DOU, потім запустив власний стартап Adtena і після роботи над декількома продуктами розвивається в аутсорсингу.

Маючи 7 років досвіду роботи в ІТ, він зайняв позицію CTO в компанії Edenlab і керує R&D-департаментом. В його зоні відповідальності — робота зі стартапами і перспективними технологіями, начебто Machine Learning або Blockchain.

Про себе

Я захоплююся комп'ютерами з раннього дитинства. Програмувати почав років у 10, це був 2003 рік. Пам'ятаю, одного разу запитав у тата, як писати гри, і він мені приніс диск і книги по Delphi. І понеслося. У 14-15 років писав за гроші сайти на WordPress, допомагав молодшим школярам розбиратися з інформатикою. Після 9 класу я пішов в МАУП на «Обслуговування програмних систем і комплексів». Провчився там лише два роки — зрозумів, що знань у цій академії не отримаю. Потім вступив на ФІОТ в КПІ.

На першому курсі працював, допомагаючи знайомим розробляти різні програми під Android. На другому — фрилансил і паралельно викладав інформатику в Академії сучасної освіти, це комп'ютерна школа для дітей з сертифікованим Apple-класом.

На третьому курсі, це був 2013 рік «Часопысе» розговорився з Максом Іщенко, і він запросив мене приєднатися до команди DOU як Full-stack Python розробника. По суті, для мене це була перша справжня робота над живим продуктом. Як ще не дуже досвідчений програміст, я працював під керівництвом Віталія Волкова. Незліченну кількість разів переписував систему коментарів. Один з великих моїх майже самостійних проектів — система аналітичних віджетів в розділі «Робота». Мабуть, ці півтора року були одними з кращих у моїй кар'єрі.

Після Майдану DOU на деякий час закрили, і якраз тоді Віталік запросив мене на проект Metapolator. Четвертий курс закінчував вже заочно: працювати було цікавіше, ніж ходити на пари. А поєднувати — нелегко. Приміром, ще працюючи на DOU, я приходив з університету і до ночі сидів з ноутбуком.

У 2014 році ми з Сашею Дзюбою запустили власний стартап, Adtena. Це майданчик для рекламних мереж на основі Wi-Fi. Я був CTO: керував технічною командою, проектував архітектуру, писав код. Працювати в такому темпі досить важко, це швидко початок позначатися на стані здоров'я. Через півтора року замість того, щоб продовжувати роботу, мені довелося дуже довго відновлюватися.

Потім якийсь час я пропрацював тимлидом в стартапі Digital Hanger. У 2017 році приєднався до компанії Edenlab.

Роль та обов'язки

У Edenlab я прийшов на позицію Elixir-розробника. Цією мовою програмування я захоплювався ще з університетських років, навіть встиг поконтрибьютить в Core і записати кілька випусків подкасту . У компанії потрапив на проект по розробці центрального медичного компоненту платформи eHealth. Поступово продукту вже була потрібна не стільки моя допомога як програміста, скільки допомога менеджера — і я став розвиватися в цьому напрямку.

Зараз я займаю позицію СТО і керую R&D-департаментом Edenlab, який займається стартапами і перспективними технологіями, начебто Machine Learning або Blockchain.

Моя головна обов'язок — участь на пресейл-етапах. Я спілкуюся з потенційними клієнтами, з'ясовую їх потреби і допомагаю нашим сейлзам скласти комерційну пропозицію. Потім проектую майбутню архітектуру. Для прискорення цього процесу заздалегідь прописую типові базові «кістяки» систем, наприклад, системи авторизації або підходи до міграції.





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

В моїй зоні відповідальності є і деяка паперова робота: описую проектні калькуляції, естімейти і т. д. Але на це витрачаю не більше години в день. Набагато більше — на документацію для замовників.

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

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

Типовий робочий день

8:00. Прокидаюся, з ранку розбираю пошту, читаю різні статті по роботі. Потім пішки йду в офіс, це займає 15-20 хвилин. По дорозі зазвичай слухаю подкасти.

10:00. Приходжу на роботу. У першій половині дня в мене, як правило, стендапи з командами.

12:00. Починаються созвони з замовниками — і діючими та потенційними.

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

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

Вечорами я багато читаю, вивчаю нові технології. Наприклад, зараз у нас в роботі є проект, пов'язаний з Blockchain, і потрібно розбиратися з усіма тонкощами. Мені це в задоволення.




Інструменти і продуктивність

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

Ці завдання заношу в Google-календар. Раніше намагався тримати в голові, але виявив, що є всі фіксувати, то відчуваю себе спокійніше. Розвантажують оперативку :)

По 15 хвилин кожен день медитую: вранці або ввечері сиджу в тиші. Це дає можливість переключитися, побути з самим собою, розслабитися. Для медитації використовую додаток Headspace.

Раніше, коли у мене був iPhone, користувався сервісом Day One — це онлайн-щоденник. Записував ключові думки, які приходили за день, потім раз в місяць їх структурував. Зараз перейшов на Android і поки не знайшов аналог.

По роботі схеми проектую в draw.io . Робочі процеси в Confluence, спілкування — в Slack, робота з документами Google Docs. Код пишу в VS Code і з недавніх пір в Goland, так як з'явилися проекти на Go.

Щоб не відволікатися під час роботи, відключаю повідомлення практично у всіх робочих чатах, крім двох-трьох найбільш важливих. Пропустити щось термінове не боюся: якщо раптом впаде продакшн, я точно про це дізнаюся :) Все інше не повинно бути строковим. Мої колеги звикли, що я відповідаю в середньому раз на годину.

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

У соцмережі намагаюся заходити по мінімуму, активно читаю тільки Twitter і Telegram, іноді гортаю Instagram. У Facebook — тільки месенджер, і то швидко відповідаю тільки близьким друзям. Повідомлення від інших розбираю приблизно раз на місяць.

Книжки і самоосвіта

Я читаю технічні книги, але рідко дочитую. Як правило, знаходжу потрібну інформацію і обмежуюся кількома головами. Тим більше, базові речі у всіх авторів описано приблизно однаково, і якщо прочитав у одного, немає сенсу перечитувати цю ж інформацію в іншого. Останні півроку я активно читаю літературу з микросервисам. По цій темі можу порадити «Building microservices» by Sam Newman, «Microservices in Production» by Susan J. Fowler, «Microservices AntiPatterns and Pitfalls» by Mark Richards.

Не на тему микросервисов, але одна з найкращих і важливих книг для прочитання для всіх в розробці ІТ — Проект«Фенікс» Джин Кін.

Художні книги останні два-три роки не читаю: немає часу. Після роботи хочеться дати відпочити очам, так і голові. А шкода: я вважаю, що без художки багато втрачаю, вона відмінно розширює кругозір.




Регулярно переглядаю галузеві медіа: Hackernews, Verge, Techcrunch. Коли потрібно вивчити конкретну технологію або бізнес-сферу, шукаю потрібні матеріали, відкладаю Instapaper і у вільний час уважно вивчаю.

Як-то раз, коли я ще працював на DOU, Макс Іщенко здивувався, що я не знаю, хто такий і що таке Радіо Т . Для мене дійсно подкасти виявилися непізнаною сферою. З тих пір я пропустив дуже мало випусків :) Крім Радіо Т, слухаю DevZen , Changelog і Crazy Russians in Devoops . Загалом, я не вважаю, що це прямо самоосвіта. Швидше, натхнення. Наприклад, слухаючи цікавих хлопців, я приходжу розуміння, що не боги горщики обпалюють. Треба просто робити, лупать сю скалу.

Ретроспектива та плани на майбутнє

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

Що б я порекомендував початківцям, які тільки починають кар'єру? У нас в країні у людей немає розуміння, що таке індустріальне програмування і чим воно відрізняється від, скажімо, олімпіадного або тих же фріланс-проектів. Будь-які бізнес-завдання — це 20% імплементації, тобто безпосередньої роботи з кодом, і 80% інших активностей, на зразок роботи з документацією. Люди приходять в компанії, роблять свої 20% і на цьому думають, що справу закінчено. А як це все буде тестуватися, упровадяться — їх не хвилює. Це неправильний підхід. Я постійно навчаю наших джуніорів фокусуватися не тільки на своєму коді, а і на всьому тому, що відбувається навколо нього. Це і є мій ключовий порада новачкам.

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

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

Останні пару років я часто виступав на тему «вигорання» і важливості психічного стану в нашій індустрії, як раз тому що багато думав про це сам і намагався знайти для себе відповіді. Наша індустрія поки ще дуже молода, немає сформованого спільного індустріального базису для всіх. У різних компаніях по-різному розуміють посади проектного менеджера або тимлида. Що вже говорити про роль СТО, де за цими літерами може матися на увазі майже що завгодно. Це велика проблема, про яку я зараз думаю. І як тільки зможу сформулювати для себе, спробую почати говорити про це так, як я робив з «вигоранням».

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

Опубліковано: 30/05/19 @ 10:00
Розділ Різне

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

DOU Labs: як в EPAM зробили opensource-інструмент для розгортання serverless-додатків
Junior дайджест: курси, стажування, вакансії. Червень'19
«Метод навідника» при роботі з пул реквестами
Висновок інтернет-магазину ортодонтичних товарів в топ 3
Go дайджест #8: нові фішки Go playground, що нас чекає в Go 1.13, належить мова його спільноти по-справжньому?