Технологічний стек та досвід

Роками я створював і підтримував системи — від крихітних прототипів до продуктів, розробка яких тривала багато років і тисячі людино-годин. Іноді я керував командами, іноді підсилював їх, а часом закривав відсутні ланки.

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

Мови та фреймворки

Основні мови

  • PHP: головне поле бою. Symfony — теперішній флагман, але доводилося боротися й з Laravel, Yii2, Slim. Composer, Doctrine, API-платформи, і так — моє улюблене — приборкання легасі.
  • C# / .NET: роки з .NET Framework & Core, ASP.NET MVC, Web API, Entity Framework, LINQ. І досі пам’ятаю «радість» нескінченних XML-конфігів.
  • Java: Jersey, JDBI та Android SDK. Зараз це не мій щоденний інструмент, але шрами лишилися.
  • Objective-C: колись робив iOS-розробку. Плюс гібридні хаки з PhoneGap і Cordova — не засуджуйте, тоді це було нормою.

JavaScript & Frontend

  • Node.js та Express для бекенд-сервісів
  • Фронтенд-інструменти: Webpack, AngularJS 1.x (так, той самий Angular — страждали всі), jQuery (легасі підтримка, бо хтось же мусить)
  • Сучасна фронтенд-інтеграція: рівно стільки, щоб вижити у full-stack середовищі й не втратити здоровий глузд

Markup & Data

  • HTML & CSS для інтеграції UI
  • XML, XPath, Ajax — бо не все, на жаль, є JSON
Я намагався зробити цей розділ коротким — стримував себе, аби він не перетворився на безкінечну стіну абревіатур і термінів. Якось вийшло (в сенсі «не дуже»). То ж далі (див. Databases, DevOps та інше) я не впорався. Вибачте. Зупиніться тут, далі не читайте — серйозно, не варто.

Бази даних

Движки

  • MySQL (основна експертиза)
  • MariaDB
  • PostgreSQL (базовий досвід)
  • SQLite (регулярне використання)
  • MS SQL Server (5 років у продакшн)
  • Redis (епізодичне використання)

Навички

  • Проєктування SQL і написання запитів (DML, DDL, DCL)
  • Моделювання баз даних, нормалізація, еволюція схем
  • Оптимізація: індекси, тюнінг запитів, плани виконання
  • Транзакції та принципи ACID
  • Збережені процедури, функції, тригери
  • Бекапи/відновлення, стратегії реплікації

DevOps & Інструменти

  • Контейнери: Docker, Docker Compose; трохи досвіду з LXC
  • Оркестрація: Kubernetes (базові знання)
  • CI/CD: GitLab CI, GitHub Actions; Ant (для старих білдів)
  • Моніторинг: Prometheus, Grafana; базово ELK stack
  • Відстеження помилок: Sentry
  • Керування конфігами: Ansible (базове використання)
  • Інфраструктура як код: Terraform
  • Співпраця та документи: Jira, Confluence, Notion, Google Docs, Office
  • Автоматизація: Slack-боти, Telegram-боти (історично ще й Skype-боти)

Операційні системи

  • Linux: Ubuntu, Debian, Amazon Linux, Fedora, Alpine, RHEL/CentOS
  • Desktop Linux: Mint, інші дистрибутиви час від часу
  • Windows: і Server (AD, IIS), і Desktop
  • macOS: основна робоча ОС
  • Hackintosh: складав і налаштовував «залізо» самостійно

Вебсервери та сервери застосунків

  • Apache (класичний LAMP стек)
  • Nginx (reverse proxy, віддача статики)
  • HAProxy (балансування навантаження, health-check-и)
  • Tomcat (Java-застосунки)
  • IIS (Windows-хостинг)
  • Caddy (базово знайомий)
  • Lighttpd

Мережі та системне адміністрування

  • Основи TCP/IP (трасування пакетів, MTU, TTL)
  • DNS: BIND
  • DHCP
  • LDAP
  • NTP
  • VPN/IPsec-тунелі; WireGuard та OpenVPN (ручне налаштування)
  • Фаєрволи: iptables, pf
  • Моніторинг трафіку за допомогою tcpdump і Wireshark

Сервери та утиліти

  • Планувальник Cron
  • Logrotate (та подібні інструменти)
  • Shell-скрипти (переважно bash, трохи zsh)
  • Coreutils (sed, awk, grep, find)

Хмари та інфраструктура

Хмарні провайдери

  • AWS: EC2, S3, RDS, IAM, CloudFront, Lambda/serverless
  • Microsoft Azure: VMs, Blob Storage, інтеграція з Azure AD

Інфраструктура та хостинг

  • Виділені сервери/колокація: Hetzner, Hivelocity, інші
  • Розгортання ARM vs x86: Raspberry Pi, Orange Pi, міні-ПК

Мережі

  • Керування DNS: BIND, Cloudflare DNS, Route53
  • Зворотні проксі/CDN/WAF: Cloudflare, Nginx reverse proxy, Traefik
  • VPN і тунелі: WireGuard, IPsec, OpenVPN, Cloudflare Tunnels
  • Балансувальники навантаження: HAProxy, Nginx, хмарні LB

Сховище та резервні копії

  • Об’єктне сховище: сумісне з S3
  • Блокове сховище: AWS EBS
  • Файлове сховище: NFS, Samba
  • Бекапи: Kopia, Restic, Borg

Безпека та ідентичність

  • Керування SSL/TLS: Let’s Encrypt, certbot, Cloudflare SSL
  • IAM-системи: AWS IAM, Azure AD

Testing & QAЮніт- та інтеграційне тестування

  • PHPUnit (регулярне використання)
  • Інтеграційні тести з сервісами на базі БД
  • Тестові дублери: моки, стаби, фікстури

Behavior-Driven Development (BDD)

  • Cucumber

Статичний аналіз та якість коду

  • PHPStan

End-to-End та функціональне тестування

  • Selenium & WebDriver (досвід класичної автоматизації браузера)
  • Webdriver.io (E2E-тестування на JavaScript)
  • Mocha & Chai (стек для тестування JavaScript)

Тестування продуктивності та навантаження

  • JMeter

Інтеграція в CI

  • Запуск тестів у CI/CD пайплайнах (GitLab CI, GitHub Actions)

Керування проєктами

Agile та методології

  • Agile-практики: Scrum (спринти, ролі, церемонії) та Kanban (потокова модель, WIP-ліміти)
  • Вільно почуваюся у гібридних підходах та адаптації процесів під команду чи конкретний проєкт

Інструменти

  • Jira: не лише трекінг завдань — також робота з дорожніми картами та дашбордами
  • Trello: здебільшого для командної співпраці
  • Redmine: повна екосистема — трекінг задач, wiki, облік часу, діаграми Ґанта, беклог (через плагіни)
  • Mantis: баг-трекінг у живих проєктах
  • Monday: застосовував на доволі глибокому рівні

Процеси

  • Оцінка задач: story points, T-shirt sizing, години
  • Участь і фасилітація ретроспектив та оглядів спринтів
  • Досвід у фреймворках пріоритизації (MoSCoW, WSJF)
  • Планування релізів та версіонування (semver, майлстоуни)
  • Регулярна комунікація зі стейкхолдерами з підготовкою звітності під їхні потреби

Документація

  • Confluence та Notion для проєктних документів

Інше

  • Управління ресурсами: призначення задач із балансуванням навантаження в команді
  • Управління ризиками: опрацьовував на середньому рівні у реальних проєктах