До 21 року стати мідлом у великій компанії, CTO у стартапі, повчитися в Торонто та вступити до Оксфорду. Історія Дмитра Лопушанського
Львів’янину Дмитру Лопушанському — 21 рік. У школі він почав писати роботи для МАН і став заробляти перші гроші на розробці сайтів. Навчався в УКУ, працював Middle-розробником в EPAM, став CTO українського стартапу Harmix.
Коли почалася повномасштабна війна в Україні, небайдужі професори з Університету Торонто запросили українських студентів на чотири місяці на дослідження. Серед тих, хто успішно пройшов співбесіду, був і Дмитро. Також він встиг понад рік попрацювати як Senior Data Analyst у канадській лікарні, а нині є магістрантом Оксфорду. Ми поспілкувалися з Дмитром, щоб дізнатися, як йому вдалося встигнути це все до 21 року.
Про перші проєкти: «Я створив чат-бот NewsKit, який складав персоналізовані дайджести новин»
Я зі Львова. Ще у школі став займатися в Малій академії наук, написав кілька робіт з математики, технічних і комп’ютерних наук. Два роки поспіль проходив на всеукраїнський етап і брав призові місця.
Коли я вчився у 9 класі, у Львові якраз починалися курси GoITeens — і я пішов туди на Front-end. Розробляв лендинг і застосунок, що контролював час, котрий людина проводить у смартфоні, і міг обмежувати її. У мене була MVP-версія, але далі діло не пішло. Оскільки Apple випустила оновлення, де вбудувала цю функціональність в iOS, мені здавалося, що не було сенсу робити щось окремо.
Навчання на курсах тривало рік і залишило по собі гарні враження. Я навіть почав фрилансити для знайомих і заробив свої перші гроші — 250 доларів за розробку сайту. Мені подобалося, що можна було щось підготувати за два тижні, отримати гонорар, а потім за місяць знову взяти нове замовлення.
Коли я закінчив курс з фронтенду, друг Олег Новосад [у 2023 році DOU записував інтерв’ю з Олегом] запросив мене на стажування у свій стартап Severenity. Певний час працював там і продовжив IT-навчання. У 10 класі відвідував курс з бекенду, вивчав Python, створив свою соцмережу. Це був мікс класних фіч із Twitter, Facebook, LinkedIn і тих, що я вигадав сам. Наприклад, я створив гештеги з контекстом у вигляді емоджі. Це було весело, оскільки я розробляв усе з нуля: і бекенд, і фронтенд. Тоді таки запустив цю соцмережу поміж друзів.
Взагалі я люблю робити один проєкт, але реалізовувати його в різних напрямах. Наприклад, соціальну мережу, яку я готував в GoITeens, я брав для пітчинг-конкурсів, де вчився презентувати ідеї. Про неї ж написав науково-дослідну роботу та подавав її до МАН.
З вересня
На початку
Ми з Марком, з яким розробляли NewsKit, працювали над чат-ботом фактично рік, але потім у нас змінилися пріоритети: обоє вступили до університетів. Платити за хостинг перестали, адже бот не приносив доходу, хоча ми й пробували додати підписку. Нині NewsKit недоступний.
Виявилося, що перейти з етапу прототипу на реальне виробництво — складніше, ніж я уявляв
Ще один проєкт, який я робив в 11 класі в межах Малої академії наук — пристрій для незрячих. Я тісно спілкувався зі спільнотою незрячих у Львові, Стрию, яка допомогла мені поступово покращувати прототипи. Цей пристрій мав три функції: визначення кольору, вимірювання рівня освітленості, попередження про перешкоди поблизу. Тоді на вітчизняному ринку не було схожих девайсів, а закордонні аналоги були значно дорожчими.
Я писав науково-дослідну роботу з цього проєкту та потрапив з ним на кілька міжнародних конкурсів, зокрема переміг у Сінгапурі, Малайзії та Туреччині. Потім з допомогою Малої академії мені вдалося отримати патент на корисну модель. Коли я вступив до УКУ, то хотів продовжувати працювати над пристроєм, проте було складно поєднувати це з навчанням. Виявилося, що перейти з етапу прототипу на реальне виробництво — складніше, ніж я уявляв. Але я досі маю бажання повернутися до цієї розробки.
Під час навчання в УКУ: «Мій перший досвід з клаудами — створення аналога пошукової системи Google»
Я добре склав ЗНО, мав середній конкурсний бал 200, тому міг вступити в будь-який виш України. Ще думав про навчання за кордоном, зокрема в Німеччині. Урешті зупинився на прикладних науках в Українському католицькому університеті, який здавався чудовим варіантом через спільноту та класну освітню програму з комп’ютерних наук, яка тоді діяла лише кілька років. Я також зміг отримати знижку на навчання і вдячний Антону Скрипнику, CEO української ІТ-компанії Kindgeek, за цю фінансову підтримку.
В УКУ навчання базується на проєктах. У мене є своя улюблена п’ятірка, але взагалі їх було значно більше. На першому курсі я створював медіамоніторингову систему, яка була продовженням чат-бота, але тут щодня аналізувалися тисячі дописів у кількох соцмережах і надавалася детальна статистика.
На другому курсі ми робили розподілену систему освітлення. Це був хардверний проєкт — незалежні пристрої на базі PSoC повинні були спілкуватися між собою через BLE Mesh мережу, щоб виконувати перелік завдань. Зокрема, системою можна було керувати зі смартфона та вона могла підлаштовуватися під музичний трек, який грав у користувача. Оскільки це розподілена система, то головною складністю було підтримувати стабільність у випадку втрати окремих компонентів. Ми реалізували автоматичне переобрання мастер-ноди через створення консенсусу між девайсами.
Третій проєкт був аналогом пошукової системи Google — мій перший досвід з клаудами. Ми запустили багато парсерів, зібрали п’ять мільйонів сторінок з інтернету за дві доби, проіндексували їх — і запустили платформу. Тоді я ще додатково розібрався в девопс-частині. Крім того, ми поєднали з ним наше дослідження з лінійної алгебри, де розбиралися, як працює PageRank — алгоритм рангування сторінок від Google, пропонували свої покращення і потім інтегрували цей алгоритм в пошукову систему, щоб сторінки теж рангувалися модифікованим алгоритмом, подібним до PageRank.
На третьому курсі ми розробляли аналог Docker на основі Linux namespaces і cgroups, що допомогло контейнеризувати процеси операційної системи. Я тоді детально розібрався з низькорівневими абстракціями Linux на рівні системних викликів.
До речі, навчаючись у виші, я розробив чат-бот для DOU. Після тієї статті про NewsKit мені написала Влада Зацаринна, чи можу я зробити щось подібне для них. Я, звісно, погодився, бо завжди захоплювався ІТ-спільнотою. Людина могла підписатися на теми, рубрики чи авторів, які її цікавлять — і коли виходив підхожий матеріал на DOU, бот надсилав його в момент публікації.
Ну й на третьому курсі я став допомагати своєму другу з КПІ з його стартапом Harmix, який підбирає музику за допомогою ШІ для компаній у сфері розваг. На останньому році бакалаврату офіційно долучився до нього як СТО і співзасновник. Ми залучили пів мільйона доларів інвестицій та почали розвивати проєкт [детальніше про Harmix Дмитро розповідав в інтерв’ю разом з Назаром Поночевним, засновником і СЕО стартапу — ред.].
В Українському католицькому університеті
Робота в EPAM: «Я міг би стати тим міфічним 21-річним сеньйором, але пішов з компанії раніше»
Я завжди хотів створити власний успішний великий IT-проєкт, але розумів, що мені потрібен досвід. Коли я навчався на першому курсі, УКУ запустили програму наставництва, яка поєднувала студентів з досвідченими спеціалістами в індустрії. У переліку менторів, з якими можна було сконтактуватися, був Віктор Чех, CEO ІТ-компанії Sombra.
Я подався — і пройшов. Віктор був моїм радником, ми говорили про те, що я хотів би запустити свій IT-бізнес, але не знав як. Я дуже вдячний йому за цінні поради. Зокрема, він пояснив на прикладі, яке зростання я міг очікувати зараз, а яке — якщо попередньо повчуся і наберуся досвіду. Тоді я збагнув, що мені потрібно попрацювати в аутсорсі, оскільки це — велика частина українського IT-ринку.
Так я зміг би подивитися, як працюють великі компанії, як вони знаходять і роблять масштабні проєкти. Спочатку на другому курсі я влаштувався до Big Data департаменту ELEKS в межах стажування від університету, але затримався там ненадовго — місяця на три, бо отримав кращий офер в іншу компанію.
Тоді влаштувався в EPAM, і мене одразу ж взяли на Middle-позицію — я якраз тільки закінчив другий курс. Проходив програму, яку вони запропонували — Big Data Retraining for Python Engineers. Я захоплююся системою покращення навичок співробітників у цій компанії, вони надають багато можливостей. Можна проходити сертифікації коштом компанії — чим я і займався. Був доступ до різних навчальних платформ, їхніх власних курсів. Перші кілька місяців я активно прокачував навички.
У серпні я потрапив на проєкт, на якому працював до від’їзду в університет Торонто. Не можу розповідати деталі через NDA, але проєкт був дуже цікавим. По суті, я керував головною платформою даних клієнта, яка обслуговувала мільйони користувачів. При цьому мав можливість інтенсивно вчитися на практиці.
EPAM має гарну систему кар’єрного зростання. Я міг би стати тим міфічним
Взагалі бачу зі свого досвіду, що перші пів року на проєкті ви більше забираєте ресурсів, ніж даєте. Тому вважаю, що варто залишатися в компанії щонайменше рік, щоб потім ще хоча б пів року приносити користь.
Звісно, мені платили хороші гроші — дуже приємна частина процесу. Думаю, що в певний момент можна зупинитися на цьому — просто отримувати гарну зарплату за те, що ти вже знаєш. Але тоді я якраз закінчував третій курс, мені здавалося, що для мене ще зарано зупинятися.
Мені важливо бути в середовищі, де я постійно інтелектуально навантажений, маю можливість швидко розвиватися. Майже через рік з початку роботи в EPAM мені випав шанс поїхати в університет Торонто. Для мене це були двері в новий світ — ще один стрибок, завдяки якому я міг зрозуміти ще більше різних технологій.
Переїзд до Торонто: «Ми навчали модель автоматично визначати, які аналізи потрібно здати пацієнту»
На початку 2022 року, на третьому курсі, коли я ще працював в EPAM, я подавався на кілька різних програм для студентів. Найцікавішим варіантом був Університет Торонто.
Коли почалася повномасштабна війна в Україні, небайдужі професори з цього вишу вирішили допомогти українським студентам і з небаченою раніше швидкістю — для найбільшого універу в Канаді — втілили це. Здобувачів вищої освіти з України запрошували на чотири місяці в Торонто на спільне з професорами університету дослідження. Повністю покривали переліт, проживання, платили щомісячну стипендію. Як я потім зрозумів зі слів організаторів, ціль програми була знайти талановитих студентів у сфері комп’ютерних наук, дати їм доступ до ресурсів вишу, щоб вони покращили свої знання, навички й пізніше могли застосовувати їх для допомоги Україні.
Щоб податися, потрібно було надіслати рекомендаційні листи, які я просив у своїх наукових керівників, мотиваційний лист, резюме, транскрипт-виписку оцінок. Потім у мене було інтерв’ю з лабораторією, чия діяльність була пов’язана з моїми інтересами. Це
Тут я познайомився з людьми з різних регіонів України
Це був цікавий період мого життя. Я надзвичайно вдячний організаторам, лабораторії, зокрема професорці Анні Голденберг. По-перше, це був мій перший дослідницький досвід в ML. По-друге, я був частиною класної спільноти — вчився разом з талановитими українськими студентами. До того моє коло знайомих обмежувалося львівською IT-спільнотою, а тут я познайомився з людьми з різних регіонів України.
Проєкт, яким я займався, називався Machine Learning-Based Medical Directives. Щоб пояснити, у чому саме він полягав, розповім нюанси, як працює медицина в Канаді. Прийом у відділенні невідкладної допомоги лікарні влаштований так, що пацієнт спочатку чекає на медсестру, щоб вона описала симптоми та скарги — заповнила дані для медичного сортування, так звані triage notes. Додатково підтягується електронна медична картка (ЕМК), де міститься інформація про здоров’я людини, демографію та інші показники.
Потім пацієнта має перший раз побачити лікар — між цими двома етапами може бути багатогодинне очікування. Лікар каже, на які аналізи треба спрямувати людину. І після того, як вона їх здає, знову бачиться з лікарем — після ще одного довгого очікування. Нагадаю, що пацієнт зазвичай у критичному стані, оскільки мова про відділення невідкладної допомоги.
Щоб скоротити етап очікування і пацієнт міг одразу прийти до лікаря з потрібними аналізами, ми навчали модель, орієнтуючись на опис медсестри та ЕМК, автоматично визначати, які обстеження потрібно зробити. Коли людина, наприклад, приходить з поламаною рукою — зрозуміло, що їй потрібен рентген. І щоб це визначити, не треба чекати скерування лікаря. І схожих ситуацій багато. Ми мали гарні метрики — і
У нас було якісне середовище для таких досліджень. Я входив до дослідницької команди лабораторії Анни Голденберг, яка є однією з найбільших у департаменті комп’ютерних наук в університеті. Там були PhD-студенти, магістри, кілька таких, як я, стажерів-бакалаврів з України. При цьому ми мали доступ до ресурсів лікарні, оскільки наша професорка була й керівницею ініціативи в медичному закладі. Такого доступу до практики часто немає в інших дослідницьких лабораторій.
За чотири місяці, поки я там був, нам вдалося покращити ключові метрики моделі. Потім на цю модель чекав довгий процес оцінювання, перевірки того, що вона справляється, не погіршується з часом, демонструє якісні показники, а значить її можна буде застосовувати на практиці. Цей етап називають періодом «тихого» випробовування (silent trial).
Коли передбачення моделі не використовують для ухвалення клінічних рішень, але оцінюють їхню точність, упередженість і надійність. Такий період триває щонайменше пів року, і якщо знайдено проблеми, то після їх виправлення потрібно заново починати тестування застосунку. Після цього настає етап клінічного випробовування (clinical trial), лише по завершенню якого може йтися про реальне практичне застосування в лікарні.
Наша лабораторія та команда в Університеті Торонто
Робота в системі охорони здоров’я: «Я отримав грант за внесок у наукові проєкти Канади»
По закінченню чотирьох місяців програми частина студентів поїхали додому, а деякі знайшли додаткові можливості в Канаді, зокрема я. Тоді Університет Торонто почав програму обміну для українських студентів, щоб вони навчалися без плати за навчання. Окрім того, надавали стипендії. Так, я став вчитися як студент за обміном і паралельно працювати Senior Data Analyst у лікарні SickKids — перейшов з лабораторії вишу до команди, яка застосовувала розроблені дослідниками моделі.
Усього я працював тут рік і чотири місяці. Займався інфраструктурними питаннями довкола деплойменту
Наша команда створювала хмарні і локальні середовища, проміжні компоненти, які забезпечували потік даних у реальному часі (наприклад, RabbitMQ), а також бібліотеки для внутрішніх клієнтів. Я працював з часовими рядами, що генерувалися пристроями, які вимірюють фізіологічні дані пацієнтів у відділенні реанімації. Є кілька десятків показників, які можуть фіксуватися залежно від потреби конкретного хворого: тиск, електрокардіограма, частота дихання тощо. Вони виводяться на монітори та потрібні лікарям, щоб оцінити стан пацієнтів.
Для досліджень ці дані зазвичай не використовують, водночас вони є суперважливими для спеціалістів у сфері машинного навчання чи статистичного аналізу. Ми почали їх збирати. Побудували цілий пайплайн того, як вони витягуються з девайсів, проходять кілька етапів трансформації, збагачення, очищення — дуже схожа робота до дата-інженерії, яку я вивчав в УКУ та практикував в EPAM.
Моя ідеологія — один проєкт, який можна розвинути у багатьох напрямах
Ми врешті забезпечили доступ
Як я згадував раніше, я не вірю в мультизадачність. Тому моя ідеологія — один проєкт, який можна розвинути у багатьох напрямах. Зазвичай я складаю інструкцію: визначаю, що хочу зробити, які є можливості, досліджую їх, говорю з людьми, які мають релевантний досвід — і починаю розуміти, що для цього потрібно.
Так, я почав проводити дослідження при лікарні в команді інфраструктури, був офіційно працевлаштований у найбільшій педіатричній лікарні Канади. Одночасно я зараховував це як дослідницький курс в Університеті Торонто, писав про це дипломну роботу в УКУ та доповідав на різних подіях, зокрема був спікером на престижній конференції — The Symposium on Artificial Intelligence in Learning Health Systems (SAIL).
Ще я подався на грант і отримав Mitacs Globalink Research Award за внесок у наукові проєкти Канади, адже це важливе дослідження, яке зрештою вплине на покращення їхньої системи охорони здоров’я. Виходить, що я сконцентрувався на одній справі, але водночас мав п’ять різних можливостей.
На конференції SAIL
Про Оксфорд: «Важливо мати гарну мережу контактів, людей, з якими пізніше можна почати власну справу»
Я думав над магістратурою два роки. Спочатку був впевнений, що вона мені не потрібна, що мій шлях — одразу бути в індустрії. Але приїхавши до Університету Торонто, я більше зрозумів, як проводять дослідження. Мені сподобалося. Я мав нагоду поспілкуватися з людьми, які пішли на магістратуру, питав, яка є цінність від цього, намагався зрозуміти, чи відгукується мені.
Перша причина, яку мені часто називали — магістратура дає можливість стати більш привабливим для роботодавців. Є перелік посад і напрямів в ІТ, куди можна потрапити, тільки якщо маєте диплом магістра або навіть PhD. Це робота дослідником в індустрії, просунутим
Наприклад, Стенфорд публікує у вільному доступі велику частину своїх курсів, які, звісно, є дуже якісними. Але для мене головною причиною, чому я вирішив піти на магістратуру, стала спільнота.
Університети, в які я хотів подаватися, є лідерами не тільки в комп’ютерних науках, а в багатьох напрямах, тобто мають потужну академічну спільноту людей, які стоять попереду своєї галузі. Мені здається, що на моєму етапі життя важливо мати гарну мережу контактів, професіоналів, з якими я можу пізніше почати власну справу чи проєкти.
Зібравши досвід з різних країн, планую виділити найкращі підходи, щоб застосувати їх удома
Наприклад, коли ми залучили інвестиції для Harmix і нам потрібно було шукати учасників команди, я покликав перевірених спеціалістів, з якими уже встиг попрацювати. Не люблю шукати за вакансіями, переглядати сотні резюме. Звісно, ця схема підходить саме на початковому етапі розвитку стартапу. Тому зараз велика частина Harmix — випускники та студенти з УКУ, які показують великі успіхи.
Врешті я подався таки до магістратури в Оксфорд на програму Advanced Computer Science, але це вже окрема історія.
Важливо сказати, що я вірю в перемогу України, знаю, що нам потрібно буде відбудовувати країну, зокрема інтелектуально. Для мене важливо бути залученим у цей процес, я хотів би докластися своїми навичками до розвитку української ІТ-індустрії. Зібравши досвід з різних країн, планую виділити найкращі підходи, щоб застосувати їх удома.
З іншими стипендіатами в Оксфорді
Як досягати цілей: «Після спілкування з 5–10 професіоналами можна прокласти власний маршрут»
Як це все встигнути за 21 рік? Не хочу давати банальних порад, але розкажу про ті підходи, які для мене спрацювали. По-перше, важливо ставити собі конкретні цілі. Якщо не знати, куди йти, то навряд чи туди вдасться дійти. Я завжди ставив цілі, які міг виміряти. Це не означає боятися мріяти чи обирати те, що здається неможливим. Я розумів, що може не вийти, але краще спробувати, ніж не робити нічого.
По-друге, коли визначився з ціллю, я спілкувався з людьми, які цього вже досягнули. Вони розповідали, які проміжні кроки робили, давали багато порад, натхнення. Після спілкування з
По-третє, важливо не перевтомлюватися та піклуватися про себе. Але я буду відвертим, коли скажу, що ранній вік — це час, коли є сили, здоров’я і можливість працювати не покладаючи рук. З цього можна буде пожинати плоди решту життя.
І останнє — не рівнятися на інших, порівнювати себе завжди тільки з собою. Хтось доходить до певних цілей раніше або пізніше — і це не добре чи погано. У кожного свій темп. Я не перший, хто скаже, що важлива не ціль, а дорога до неї, якою варто насолоджуватися.