Технологічний стек та досвід
Роками я створював і підтримував системи — від крихітних прототипів до продуктів, розробка яких тривала багато років і тисячі людино-годин. Іноді я керував командами, іноді підсилював їх, а часом закривав відсутні ланки.
Мій фокус завжди був на складних завданнях: дослідженнях, оцінках, прототипах та поєднанні різних технологій. Коротко: я не шукаю легких шляхів. Я роблю складне простим — і, час від часу, просте складним.
Мови та фреймворки
Основні мови
- 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 для проєктних документів
Інше
- Управління ресурсами: призначення задач із балансуванням навантаження в команді
- Управління ризиками: опрацьовував на середньому рівні у реальних проєктах