Володимир Кушнір
Резюме
— Привіт! Я вмілий фронтенд розробник* з більш ніж 10-річним досвідом в UI/UX дизайні, розробці додатків та моделюванні баз даних. Я намагаюсь будувати точні, адаптивні, швидкі, зручні в користуванні середовища, які гарно виглядають та добре виконують свої завдання.
*Мені здається, 40-60 по The Great Divide на JavaScript інженера та UX інженера
Тепер
-
1го жовтня 2020 – сьогодні
Full Stack Developer у Decentriq
- програмую, тестую і деплою застосунок, написаний на React + Apollo Client
- роблю застосунок гарним, темизованим (використовуючи Joy UI і Font Awesome), і реактивним (використовуючи GraphQL підписки через Websockets API)
- створюю компоненти у Storybook, відповідаю за дизайн-систему, займаюся міграціями UI фреймворків (наприклад, з Material UI на Joy UI), підтримую тему, побудовану на CSS Variables поверх компонентів на основі слотів
- будую і валідую форми (використовуючи
react-hook-formіzod/yup), включно з динамічними, що генеруються під час виконання з JSON Schema (використовуючи JSON Forms) - будую дашборд з графіками, використовуючи
recharts, а там де recharts не вистачає — сягаю по примітиви@vx - будую інтерфейс для редагування правил, використовуючи
react-querybuilder - будую флоу для імпорту/експорту CSV (використовуючи papaparse) і флоу для експорту/завантаження файлів у форматі zip (використовуючи jszip і file-saver)
- інтегрую модулі WebAssembly у застосунок (наприклад, для клієнтської верифікації атестації, для валідації і трансформації даних під час завантаження, тощо)
- інтегрую із зовнішніми сервісами (наприклад, Auth0 для автентифікації, тощо)
- підтримую монорепозиторій і його білд-пайплайн (використовуючи pnpm workspaces і Vite)
- відповідаю за спільну екосистему пакетів у монорепозиторії (components, hooks, theme, utils, models, API і GraphQL пакети), включно з власним ESLint конфігом
- тримаю залежності актуальними, код чистим, лінтованим і відформатованим (а також SOLID, DRY і KISS)
- пишу і підтримую unit, integration та end-to-end тести (використовуючи Vitest, React Testing Library і Playwright), мокаю API з допомогою MSW, і відповідаю за тестову інфраструктуру та конфігурацію
Тоді
-
1го січня 2020 – 28го лютого 2022
Full Stack Developer у Hivecell
-
@apollo/client @auth0/auth0-react @dnd-kit/core @dnd-kit/modifiers @dnd-kit/sortable @dnd-kit/utilities @emotion/babel-plugin @emotion/css @emotion/react @emotion/styled @fortawesome/fontawesome-svg-core @fortawesome/free-brands-svg-icons @fortawesome/free-regular-svg-icons @fortawesome/free-solid-svg-icons @fortawesome/pro-duotone-svg-icons @fortawesome/pro-light-svg-icons @fortawesome/pro-regular-svg-icons @fortawesome/pro-solid-svg-icons @fortawesome/pro-thin-svg-icons @fortawesome/react-fontawesome @mui/lab @mui/material @optimizely/react-sdk @sentry/react @sentry/tracing ahooks apollo-upload-client apollo3-cache-persist date-fns file-saver framer-motion graphql graphql-ws history lodash mapbox-gl notistack react react-awesome-query-builder react-dom react-hook-form react-is react-map-gl react-router-dom react-virtuoso slate slate-history slate-react uuid web-vitals workbox-background-sync workbox-broadcast-update workbox-cacheable-response workbox-core workbox-expiration workbox-google-analytics workbox-navigation-preload workbox-precaching workbox-range-requests workbox-routing workbox-strategies workbox-streams xterm xterm-addon-attach xterm-addon-fit xterm-addon-unicode11 xterm-addon-web-links
-
@graphql-codegen/cli @graphql-codegen/import-types-preset @graphql-codegen/typed-document-node @graphql-codegen/typescript @graphql-codegen/typescript-apollo-client-helpers @graphql-codegen/typescript-operations @graphql-codegen/typescript-react-apollo @vitejs/plugin-react eslint eslint-config-prettier eslint-config-react-app eslint-plugin-import eslint-plugin-prettier eslint-plugin-simple-import-sort eslint-plugin-sort-keys-fix husky lint-staged prettier source-map-explorer typescript vite vite-plugin-eslint vite-plugin-svgr
- робив застосунок гарним, темизованим (використовуючи Material UI і Font Awesome), і реактивним (використовуючи GraphQL підписки через Websockets API)
- інтегрував із зовнішніми сервісами (наприклад, Auth0 для автентифікації, Optimizely Rollouts для feature flags, Mapbox для мап, Sentry для трекінгу помилок, тощо)
- тримав поріг покриття коду unit-тестами на розумному мінімумі (наразі це 0%)
- оптимізовував код для продуктивності й ефективності (використовував Service Workers API, Web Workers API і техніки на кшталт мемоізації,
throttleіdebounce, щоб вирішувати проблеми з кешуванням, overfetching/underfetching, перевищенням rate limits, зайвим ре-рендерингом, зависанням браузера, тощо) - тримав бекенд надійним і стабільним (використовуючи
axios-retryдля повторних викликів,winstonдля логування, іlightshipдля репортингу readiness і liveness, тощо) - підтримував базу даних (використовуючи Flyway для міграцій, Row Level Security для безпеки і мультитенантності, тощо)
- загортав всю машинерію в Docker контейнери і деплоїв у Kubernetes як частину мікросервісної event-driven CQRS архітектури, слідкував за швидкістю, надійністю і консистентністю CI/CD пайплайнів
- комунікував з іншими мікросервісами через Kafka, REST API, GraphQL schema stitching
- намагався підтримувати правильний підхід, бути м'яким, але розсудливим і переконливим, ставив реалістичні дедлайни й цілі та допомагав команді їх досягати, вів особистим прикладом
-
-
15го липня 2019 – 31го грудня 2019
Full Stack Developer в Newfire Partners
-
Full Stack Developer в PrismHR
- проводив code review, приймав участь в refinement зборах, daily standup-ах, плануваннях спринта та ретроспективах (то великий ентерпрайз, тому Scrum і QA на першому місці)
- знаходив і вирішував ботлнеки, виправляв баги, знаходив паттерни в коді і рефакторив все, знову (без жартів, це було моє улюблене заняття ❤️)
-
-
24го січня 2017 – 4го липня 2019
Full Stack Developer у Binary Studio
(ось мій introduction letter)-
Full Stack Developer at ScreenCloud
- конфігурував кешування у CloudFront і Elasticache, WebSockets у Elastic Beanstalk, налаштовував API Gateway і Lambda, тощо
- перевіряв код, піклувався про документацію, планував спринти, приймав участь в ретроспективах і ранкових стендапах
-
Frontend Developer at Dynamic Reservations
-
- періодично читав лекції у Binary Studio Academy
- інколи мене менторили ті, кого я менторив
- міг в кухонні розмови про майже будь-що
- також міг грати з тобою в відео ігри, щоб стати кращою командою
-
-
1го жовтня 2016 – 31го грудня 2016
Full Stack Developer у Dutchstar
- будував, тестував і розгортав додатки, написані на React + Redux і Phalcon + MySQL
-
10го вересня 2016
Переїхав у Львів
Ще раніше
-
Десь у 2015-му
Лишив палити 🥗
- все ще полюбляю інколи їсти снеки й фастфуд і час від часу випивати стаканчик чогось
-
25го травня 2014 – завжди
Одружився із Людмилою Мандзюк 👩🏻
- роблю все, що скаже
-
1го вересня 2012 – 30го вересня 2016
-
- обслуговував MySQL multi-master кластери, Oracle failover кластери, Microsoft SQL mirrored/replicated сервери (моніторинг, резервне копіювання і розгортання, користувачі/групи/ролі, схеми)
- складав і оптимізовував швидкі, ефективні SQL-запити
- оптимізовував бази даних, індекси, тощо
- будував веб-дашборди, репорти, використовуючи HTML, CSS, JavaScript, SQL
-
-
1го вересня 2011 – 30го вересня 2016
-
- планував комп’ютеризовані виробничі процеси
- поєднував бази даних різних виробничих систем (надсилав та отримував дані за допомогою реплікацій, триггерів, запланованих подій, cron-завдань)
- складав системи високої доступності, мінімізував простої
- спроектував і запрограмував BDE (BetriebsDatenErfassung) — систему агрегації даних, призначену для суттєвої автоматизації завдань з планування, виготовлення, моніторингу і контролю
- аналізував та перетворював дані
- писав документацію, мануали, ґайдлайни, мемо
-
-
9го квітня 2008
Був офіційно працевлаштованим (працівник №943) у ТзОВ «СЕ Борднетце–Україна»
(до того працював по цивільно-правовому договору) -
14го лютого 2008 – 31го січня 2011
-
- розробляв UI і UX для програм і веб-сторінок
- програмував прості додатки, що допомагали у виробничих процесах, використовуючи Delphi, VB, Java, HTML, CSS, JavaScript, PHP, SQL
- обслуговував бази даних Microsoft SQL, MySQL і Firebird
-
-
лютий 2006 – серпень 2007
-
- верстав буклети, флайери, візитки, постери у Adobe CS (Photoshop, Illustrator, InDesign)
- обслуговував струменеві і лазерні принтери та плоттер
- конструював вебсайти у Macromedia Dreamweaver, Macromedia Flash (ActionScript)
- почав палити 🚬
-
-
квітень 2004 – грудень 2004
-
- адміністрував мережу з біля десятка робочих станцій на Windows і одного мережевого шлюзу на Linux (DHCP, DNS, proxy, ACLs)
- підтримував здоров’я комп’ютерів (встановлював ОС через PXE, проводив резервне копіювання, антивірусні перевірки, оновлення програмного забезпечення, заміну комплектуючих тощо)
-
-
16го травня 2003
Отримав вітчизняний паспорт (з традиційно дивакуватим фото, звичайно) — не можу дочекатися, аби замінити то на новий паспорт громадянина України
- небагато міг зробити перших кілька років...
-
6го жовтня 1986
Народився у Тернополі, Україна — Дякую, мамо й тату!
Мови
*Вивчаю
Навички
Характер
Подобається😃
Не подобається😞
Хочеться🥺
Навчання
-
кожного дня
-
грудень 2005 – квітень 2006Сертифікати про закінчення курсів Cisco Networking Academy Program
-
1го вересня 2003 – 30го червня 2008Диплом бакалавра з комп’ютерних наук Тернопільського Національного Технічного Університету
-
1го жовтня 1995 – 23го травня 1999Свідоцтво про закінчення Тернопільської дитячої художньої школи ім. М. Бойчука
-
1го вересня 1993 – 21го червня 2003Атестат про повну загальну середню освіту у середній загальноосвітній школі №20 ім. В. Симоненка м. Тернополя
Статті
Жодна не опублікована поки що