Position: Full Stack Web Developer
Primary keyword: JavaScript
English level: upper
Experience years: 7

Ранні роки переважно у рамках фрілансу виконував дрібні задачі по верстці та розробці простого бекенду для локальних замовників, а також з підтримки існуючих проектів.

Приблизно біля чотирьох років тому протягом декількох місяців виконував замовлення через біржу Upwork для замовників з Канади та США.

Останні чотири роки переважно працював із постійними українськими замовниками по вирішенню їх бізнес-задач. Серед таких були:
- Технічна підтримка та оновлення кодової бази інтернет-магазину, який входить до топ-5 у Google по Україні по ключових запитах.
- Розробка локальної системи для вирішення внутрішніх задач бізнесу щодо інтеграції декількох систем як от 1С, CRM та кількох маркетплейсів та автоматизації обробки замовлень від клієнтів.
- Розробка багатопоточної системи для парсингу та збору та оновлення актуальних даних щодо наявності та цін товарів у оптових постачальників (по декілька десятків-сотень тисяч позицій у кожного).
- Розробка системи для обробки зображень за допомогою OpenCV з метою збору статистики для наукової роботи.
- Система зведеного обліку багаторівневої ієрархії клієнтів однієї з компаній, що займається мережевим маркетингом.

Також під час навчання в університеті був активним членом та протягом одного року очолював студентське самоврядування у своєму навчальному закладі, що дозволило суттєво прокачати навички із командної роботи, пошуку компромісів та ділового спілкування із внутрішніми та зовнішніми стейкхолдерами.

Під час магістерки також долучився до розробки загальноуніверситетської системи оцінювання якості. Після її успішного впровадження у нашу підтримку передали іншу загальноуніверситетську систему, яка відповідає за облік та ведення навчальних планів усіх студентів. За два роки вдалось практично повністю переписати систему із старої самописної кодової бази на актуальну із використанням PHP-фреймворку Yii2. Це дозволило зробити значно легшим підтримку кодової бази, а також підвищити максимальну спроможність системи витримувати 1500 користувачів одночасно замість 400. Причому цього було досягнуто в умовах обмеженого фінансування на серверні потужності.

Після навчання почав приділяти частину часу викладанню в своєму університеті для того, щоби поділитись із молодим поколінням тими знаннями та навичками, яких бракувало мені тоді, коли я сам був студентом. Деяких успішних студентів, з якими було комфортно працювати, пізніше долучав до деяких робочих проектів.
Досвід роботи з різними наборами технологій:
- PHP+MySQL+HTML+CSS+JS - вперше у 13 років, перший комерц. досвід - 8 років тому.
- ~4 р. досвіду роботи із PHP-фреймворком Yii2.
- Кілька років з ES6+ у зв'язках з Babel + Gulp або Webpack.
- Підтримка фронтенду сайтів з jQuery та Vanilla JS.
- ~1.5 р. досвіду з NodeJS + NestJS + TypeScript + TypeORM.
- Рік досвіду написання багатопоточних додатків для обробки великої кількості даних на базі NodeJS + BullMQ + Redis.
- Рік досвіду з Vue.js + Vuetify + TypeScript.
- ~1 р. досвіду з Python + OpenCV + SQLite.
- Розробка простих Telegram-ботів
- Робота із API Нової Пошти, Укрпошти та ін., інтеграція LiqPay, Wayforpay та ін.
- Робота із Git, в т.ч. Gitlab, GitHub, Bitbucket. Використання Gitlab CI.
- Багаторічний досвід роботи та налаштування серверів на Linux та FreeBSD, в т.ч. з Apache та nginx.
- Хороше розуміння принципів ООП; певний досвід роботи із C та C++, що дає значно краще розуміння того, що знаходиться "під капотом" у технологій та систем, з якими доводиться працювати на практиці.

До своїх навичок також відношу:
- Розуміння складних систем та цілісне бачення.
- Аналізу чужого коду.
- Аналітичне мислення, здатність бачити з різних точок зору.
- Переклад "з програмістської мови на людську" та навпаки.
- Не кодінг, а пошук рішень для конкретних бізнес-задач.
- Вміння ставити потрібні запитання так, щоби розуміти реальні потреби клієнта.
- Досвід публічних виступів перед публікою.
- Вміння передавати знання за допомогою пошуку влучних аналогій, які будуть зрозумілі конкретному учню.
- Порядність, системність у прийнятті рішень.
- Відкритість до діалогу, аргументацію, а не емоції.
Що цікавить у роботі:
Для мене дуже важливо відчувати, що результати моєї роботи є корисними. Суспільне благо чи потреби конкретного бізнесу, але кінцевий продукт має приносити задоволення кінцевому користувачу. Задоволений користувач == задоволений я.
Окрім того дуже важливою є атмосфера у спілкуванні з колегами та іншими сторонами. На щастя, вистачає позитивного досвіду такої комунікації, який дав зрозуміти важливість цього аспекту.
В ідеалі хотілось би працювати у команді, в які я можу не тільки навчати інших колег, але і сам переймати сильний досвід.
Надаю перевагу віддаленому форматі роботі із чітко визначеними умовами та прив'язкою до реального результату, а не суб'єктивних кількісних показників самої роботи.

Що стосується технологій - обрав свого часу веб не через інструменти, а через результат, який можна побачити тут і зараз у браузері, а також через те, що веб-продуктами можна користуватись практично на будь-якій платформі.
Надаю перевагу тим інструментами розробки, з якими маю хороший досвід, але завжди відкритий та постійно намагаюсь опановувати нові корисні технології.