avatar

@Dmythro

Повна зайнятість
Веб-розробка, музика, подорожі
Дмитро Клименко
Дмитро Клименко
📷 Alina Delyne

TL;DR

Сьогодні я в основному працюю з фул-стек проектами на базі TypeScript (Node.js, React, React Native), хмарними платформами (Google Cloud, DigitalOcean, AWS, Vercel, Supabase тощо) — як Tech Lead / Principal / Senior Engineer.

Мені подобається вирішувати складніші задачі та гарна командна робота. Завжди прагну надавати якісні рішення у розумні терміни.

Також працюю над деякими open-source проектами. Як от вихідний код даного сайту чи мій модуль countries-list з ~1.2к зірок на GitHub та 850к+ зкачувань на місяць на NPM.

Розділ FAQ містить трохи більше інформації про поточну ситуацію.

Моя студія, місце де працюю та займаюсь музикою
Моя студія, місце де працюю та займаюсь музикою

Мої навички

Загальна хронологія

Principal Engineer / Tech Lead

Найцікавіша для мене роль зараз це щось між Principal Engineer / Tech Lead, де я все ще можу зосередитись на більших задачах, не дуже відволікаючись на менеджерські обов'язки.

Lead Developer

Отримав підвищення працюючи на Luxoft. В основному, працював з JS/CSS, React, Node.js, Electron.

Senior Developer

Отримав підвищення працюючи на Tikle. Працював з C#.NET, MSSQL, JS/CSS.

Вища освіта: спеціаліст/магістр

НТУУ "КПІ", ФПМ, СКСUA

Випускник Національного технічного університету України "Київський політехнічний інститут", факультет Прикладної математики, кафедра Спеціалізованих комп'ютерних систем.

Я би сказав, досить вдалий вибір у контексті моєї кар'єри: програмування (Pascal, C#, .NET, C++, Assembler), алгоритми і структури даних, графи, теорія імовірностей, бази даних (MSSQL) і ще багато чого.

В 2006 році, будучи студентом, зареєстрував ФОП та отримав першу офіційну роботу як інженер-програміст. На той момент працював з ASP/.NET.

Середня освіта

Протягом навчання у середній школі закінчив музичну школу (баян та народні інструменти) та весь час відвідував спортивну школу з плавання (кандидат в майстри спорту).

Моя кар'єра

Lead Full-stack Engineer

KITRUM (контракт)UA, SE

Я повністю переробив і вдосконалив клієнтський фул-стек DAM (управління цифровими активами) веб-сервіс, додав авторизацію на основі ролей, CI/CD, перегляд 3D-моделей, AR для мобільних телефонів (USDZ/GLB) та створив спеціальну панель адміністратора протягом 2-місячного контракту.

Технічний стек базувався на Google Cloud, TypeScript і RDS SQL (Drizzle ORM, Postgres, динамічні схеми). Node.js, Next.js/React, NextUI 2/Tailwind CSS, Zod, Next Auth, GraphQL/Yoga, TanStack Query.

Ретельно оцінено продуктивність Mongo DB 7 Atlas Search і Meilisearch для фасетного пошуку.

Senior Frontend Engineer

Windscribe / Control DCA

Працюючи над веб-сайтом та контрольною панеллю Control D (React, Redux, TypeScript), зробив три суттєві зміни кодової бази: мажорні апгрейди Gatsby та Cypress (високе покриття тестами), виправив сотні попереджень щодо безпеки типів. Брав участь у впровадженні нової версії/дизайну контрольної панелі.

Principal Software Engineer

Peppy HealthUK

Приєднався до стартапу на досить ранній стадії. Створив архітектуру, реалізував всю основну інфраструктуру (хмара, база даних, CI/CD, E2E/модульне тестування), реалізував початкові основні версії багаторольового API та панелі адміністратора.

Інтегрував всі необхідні для бізнесу сторонні сервіси та веб-хуки (Sentry, SendBird, Segment, Customer.io, Mixpanel та інші). Офіцер з безпеки. Брав участь у різноманітних аудитах інфраструктури та безпеки. Займався код рев'ю всіх проектів (API, адмінпанель, мобільний додаток), менторством та технічною стороною управління командою.

Технічний стек базувався на Google Cloud, TypeScript, RDS SQL (TypeOrm/Prisma). Node.js (NestJS), додатки на React і React Native.

Lead Front-end Developer

Star (formely Cogniance)UA, US

(1) Додаток для керування роботизованим складом.

Схожий на гру інтерфейс користувача дозволяє спостерігати та керувати роботами та автоматизаціями — на карті та в режимі реального часу. TypeScript, React, Redux, PixiJS v4-5 / WebGL, Paper.js (not much), SVG, Node, Jest/Cypress, клієнт для REST API.

(2) Клієнтський інтерфейс для транспортної системи штату США: квитки на громадський транспорт, паркування, послуги для установ.

Адаптивний та доступний веб-додаток з нуля, допомагає користувачам купувати та переглядати все про свої квитки та підписки, в залежності від розташування, сезону та типу облікового запису. TypeScript, React, Redux, Material-UI (MUI), SVG, Node, unit tests (Jest), клієнт для REST API. Спеціаліст з питань доступності ADA та безпеки.

Tech Lead Front-end

Match2OneSE

Програмована рекламна платформа. Веб-додаток для клієнтської зони (React, Redux, ES2017, LESS).

Нова архітектура, система спеціальних білдів, складні компоненти та UI/UX імплементація. Код рев'ю. Співбесіди з кандидатами.

Senior Front-end Developer → Tech Lead

LuxoftUA

Гібридний кросплатформний додаток для відомого виробника HDD, з нуля (macOS, Windows).

Electron, ES6 (React, Node.js), прототипування додатку, складна розробка інтерфейсу користувача, локалізація, сповіщення ОС, продуктивність і ефективність пам’яті/ЦП, IPC, збірка та задачі CI, юніт-тести (Jest) тощо. Код рев'ю. Співбесіди з кандидатами.

Робота над власними проектами

Annexare. Студія веб-розробки та дизайну. Ми розробили багато арт дизайнів та веб-сайтів для артистів, музикантів, музичного лейблу та журналу тощо. Розробив власну CMS для цього (PHP, AJAX, jQuery, JSON, MySQL) щоб підтримувала все що нам було треба: багатомовний контент, SEO, швидкість, спеціальні типи контенту, інтеграція з соц-мережами. Деякі з них досі онлайн, але технічний стек досить застарілий.

Soccer City. Гра у реальному часі для соціальних мереж (Facebook, VK та інші) з Flash GUI, PHP/MySQL бекендом та різними інтегрованими API соціальних переж та платежів. Гра комбінувала ізометричний сіті-білдер та онлайн матч-мейкінг що враховував як показники команди так і деякий фактор випадковості. З квестами, досягненнями, внутрішньоігрові покупки тощо. Це був досить непростий проект. Але коли Flash пішов з браузерів ми не стали переробляти клієнт для сучасних браузерів і закрили.

Facebook Applications Developer

StuzoUS

Розробка UI та бекенду, використовуючи корпоративну Facebook Platform на базі Zend framework та Doctrine. PHP, Facebook Graph API, FBML, Piwik, генерування PDF та інше.

Software Engineer

LemsysUA, DE, IT

Розробка ПЗ для вбудованих пристроїв: веб додатки, сервіси та схема баз даних. Архітектура та безпека. C/C++, Perl, UML/XML/XSLT, UPnP, SQLite.

Middle → Senior .NET Developer

Tikle / lifecellUA

Архітектура, внутрішні сервіси, веб UI сервіси, веб-сайти, додатки та схеми баз даних для мобільного оператора використовуючи ASP.NET, C#, MSSQL, SOAP/XML та інше. Інтеграція партнерських сервісів (розсилка SMS та інші).

Музика завжди була і зараз є великою частиною мого життя.

Завдяки батьку, з раннього дитинства познайомився з музикою. Почав колекціонувати Pink Floyd приблизно з 6 років і досі великий шанувальник. У 7 років добровільно записався до музичної школи, яку закінчив з відзнакою.

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

Я у домашній студії
Я у домашній студії

Продовжую регулярно відвідувати заняття з деяких музичних інструментів (переважно гітари та барабани), щоб покращити свої навички.

З 2011 року у вільний час займаюсь незалежним звукозаписним лейблом і музичним журналом — Noizr. Це досі некомерційний проект, весь прибуток реінвестується в розвиток наших артистів (після російського вторгнення весь накопичений прибуток за останні пару років передається українській армії та фонду «Повернись живим»).

Також я збираю деяку музику на фізичних носіях (вініл та аудіо касета). Іноді насолоджуюсь спеціально відведеним для прослуховування улюбленої музики часом.

Живий виступ з моїм гуртом
Живий виступ з моїм гуртом

P.S. Як я граю наживо з Nabaath можна глянути тут або тут (застереження: це може бути "занадто важким" для декого). Решта музичних проектів та записів ще у процесі.

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

Відвідав майже всі країни Європи. І не просто швидко прилетіти та побачити кілька туристичних атракцій. Мені дуже подобаються поїздки на авто, і я намагаюся побачити таким чином набагато більше. Моя найбільша автомобільна подорож наразі — близько 10 тис. км, 10 країн протягом 6 тижнів, з України до Атлантичного океану і назад.

Подорож на авто у 2021: близько 10 тис. км, 10 країн протягом 6 тижнів, з України до Атлантичного океану і назад
Подорож на авто у 2021: близько 10 тис. км, 10 країн протягом 6 тижнів, з України до Атлантичного океану і назад

Також бачив трошки США, Дубай та інші.

Багато подорожував і Україною, вона дуже багата на красиві та цікаві місця (гори, озера, річки і, звичайно, міста).

Мені подобається спостерігати за заходом сонця, хмарами, зоряним небом. У поєднанні з горами, озерами, лісами — навіть краще :)

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

Технології та нове спорядження

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

Активний спосіб життя

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

Книги і артбуки

Читання — не моя сильна сторона. Мені подобається деяка наукова фантастика, як-от Роджер Желязни, Ден Браун тощо, але я не дуже багато читаю. З іншого боку, я дуже люблю артбуки і збираю деякі цікаві. Про музику, мистецтво, історію, архітектуру, музеї тощо.

Ігри

Мабуть, немає такого гіка якого не цікавлять сучасні ігри. Я граю в деякі ігри на своїй консолі (переважно онлайн, з друзями), іноді на iPad. Більше не дуже люблю ПК геймінг, тримати та постійно оновлювати окремий ігровий ПК мені не цікаво, а для роботи — не потрібно. Коли є настрій пограти я люблю просто натиснути кнопку, запустити гру і відволіктись на якийсь час.

Яку роль шукаєте зараз?

Загалом, я шукаю щось на кшталт ролі техліда, де приблизно 50-70% робочого часу займає фактична розробка, а решта — мітинги/планування/менторство/код рев'ю тощо. Мені дуже подобається робити щось власноруч, віддаю перевагу роботі над складними завданнями де є час зосередитись.

Ви зараз в Україні? Це безпечно?

Так. Я тут, у себе вдома більшість часу. Я би сказав, що зараз тут відносно безпечно. Моє розташування виявилося досить вдалим враховуючи обставини і те, що я досить близько до Києва (трошки на південь).

Як ви боретеся з очевидними ризиками?

У мене є великі батареї, які можуть забезпечувати основну електроніку (опалення, світло, оптичне підключення до Інтернету) протягом кількох днів взимку. Я можу заряджати батареї за допомогою своїх генераторів, перемикання на батареї та назад відбувається автоматично та непомітно. У мене є армована плівка на вікнах, щоб хоча б не розлетілось скло (про всяк випадок). Крім того, у мене є безпечніше місце під першим поверхом. Маю авто з повним баком бензину та додаткові каністри про всяк випадок. Основний ризик – пряме влучання, якого, сподіваюсь, не станеться.

Плануєте виїхати з України?

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

У вас є проекти з відкритим кодом?

Звичайно, люблю та підтримую спільноту з відкритим кодом де можу. Мій найбільший NPM модуль countries-list має понад 800 тисяч завантажень на місяць. Можете глянути вихідний код їх або поточного веб-сайту на GitHub.

Ви віддаєте перевагу віддаленій, офісній, чи гібридній роботі?

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