Мене звати Вадим Харовюк. Я Java Backend розробник з Харкова з п'ятирічним досвідом у Spring екосистемі. За цей час пройшов шлях від простих REST API до продакшн-продуктів з AI-інтеграціями, PWA та мікросервісною архітектурою.

Паралельно з комерційними проєктами веду технічний блог webscraft.org/blog — пишу про реальні кейси з власного досвіду, а не переказ документації.

📚 Зміст

🎯 Про мене

32 роки, Харків, Україна. В IT прийшов усвідомлено — після університету зрозумів що хочу будувати продукти, а не просто писати код за технічним завданням. Перші роки — монолітні Spring Boot додатки, бази даних, REST API. З часом — мікросервіси, черги повідомлень, складні інтеграції з зовнішніми сервісами. А з 2024 року — глибоке занурення в AI-інтеграції та розробку власних SaaS-продуктів на базі великих мовних моделей.

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

Паралельно з комерційними проєктами розвиваю власну AI-платформу для спілкування з персонажами, веду технічний блог де ділюся рішеннями з реальних проєктів, і постійно тестую нові інструменти — від локальних LLM на Apple Silicon до хмарних AI провайдерів.

Найкращий спосіб розібратися в технології — побудувати на ній щось реальне і довести до продакшну. Теорія без практики — це просто красиві слова в резюме.

🤖 Новий проєкт: AI платформа для спілкування з персонажами

Повноцінна SaaS-платформа де користувачі спілкуються з AI-персонажами — психологами, менторами, компаньйонами, коміками, романтичними персонажами та іншими. Кожен персонаж має власний характер, стиль спілкування і довгострокову пам'ять про користувача. Скоро в продакшні.

Проєкт написаний повністю самостійно — від архітектури до деплою. Не демо і не pet project, а повноцінний продукт з біллінгом, AI-пам'яттю, семантичним пошуком і реальною інфраструктурою на Railway.

Що всередині:

  • Spring AI 2.0 + LLM інтеграція — OpenRouter як єдиний шлюз до різних моделей: DeepSeek V4 Flash як основна модель, окремі моделі для романтичних та провокативних персонажів (sao10k/l3.3-euryale-70b), Gemini для підтримки. Перемикання моделей через конфіг без зміни коду.
  • AI-пам'ять та RAG — система довгострокової пам'яті на базі pgvector: extractAllFacts витягує 11 полів з діалогу за один LLM-виклик, гібридний пошук через Reciprocal Rank Fusion (векторний пошук + PostgreSQL FTS), семантичні та епізодичні summary з Caffeine-кешем.
  • Стрімінг через SSE — відповіді персонажа стримляться токен за токеном через Server-Sent Events, кнопка Stop для переривання, черга токенів з анімацією друку.
  • Біллінг — WayForPay prepaid інтеграція (єдина платіжна система доступна в Україні без ФОП), токенна модель оплати, підписки FREE/BASIC/PRO з різними лімітами, webhook з підтримкою JSON та form-urlencoded.
  • Сцени та рольові ігри — система сцен з AI-генерацією сюжету: вибір тегів → LLM генерує драфт → збереження. Романтичні побачення, детективні розслідування, зустрічі випускників.
  • Telegram інтеграція — спілкування з персонажами прямо в Telegram, прив'язка акаунту, окремий бот для локальної розробки щоб уникнути конфліктів з продакшн-ботом.
  • Модерація та безпека — KeywordCrisisDetectionService, реакції персонажа на повідомлення, вікова верифікація для провокативного контенту.
  • SEO-оптимізація — окремі SEO-контролери для каталогу та сторінок персонажів, slug-маршрутизація, JSON-LD structured data, OG-теги, sitemap.
  • Інфраструктура — Railway (Spring Boot + pgvector PostgreSQL), Docker з G1GC тюнінгом, Cloudinary для зображень, ngrok для локальної розробки webhook'ів.

Весь стек — Java 21, Spring Boot 3, Spring AI 2.0, PostgreSQL + pgvector, Thymeleaf + Bootstrap 5, OpenRouter, WayForPay, Cloudinary, Telegram Bot API — спроєктований, написаний і підтримується однією людиною.

🚀 Один з проєктів: Kazki AI

Kazki AI — сервіс персоналізованих аудіоказок для дітей, де дитина є головним героєм історії. Батьки вводять ім'я дитини, її інтереси та улюблених персонажів — система генерує унікальну казку і озвучує її за допомогою AI-голосу через ElevenLabs.

Проєкт написаний повністю самостійно — від архітектури до деплою. Не pet project для резюме, а живий продакшн-сервіс з платіжною системою, підписками, push-сповіщеннями на iOS та Android і реальними користувачами.

Що всередині:

  • AI-генерація контенту — OpenAI генерує текст казки з урахуванням імені дитини та вподобань, ElevenLabs озвучує результат натуральним голосом
  • Платіжна система — Stripe з моделлю підписок: різні тарифні плани, управління доступом, webhook-обробка подій
  • PWA без App Store — встановлення на домашній екран, офлайн-режим, push-сповіщення через Web Push API (VAPID) на iOS 16.4+ та Android
  • Авторизація — Spring Security + OAuth2 (Google), захист від CSRF, управління сесіями через Redis
  • SEO та продуктивність — серверний рендеринг через Thymeleaf, кешування на рівні Redis, оптимізація зображень через Cloudinary
  • База даних — PostgreSQL з продуманою схемою: користувачі, казки, підписки, push-підписки, платіжні події

Весь стек — Spring Boot, PostgreSQL, Redis, ElevenLabs, Stripe, Cloudinary, PWA — розгорнутий і підтримується в production однією людиною.

👗 Комерційний проєкт: FashionI

Fashion — це інтернет-магазин одягу з вбудованою AI-системою, яку я розробив для розуміння клієнтів природною мовою. Замість стандартних фільтрів і категорій — покупець просто описує, що шукає: «чорне плаття на весілля, бюджет $80, розмір M».

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

Що я вирішив для бізнесу:

  • Підвищення конверсії — я зробив так, щоб клієнти швидше знаходили потрібний одяг без потреби перебирати десятки сторінок з фільтрами
  • Зниження повернень — я створив інтелектуальний підбір розміру, який враховує параметри тіла та специфіку крою кожного бренду
  • Автоматизацію підтримки — я налаштував AI-агента, який самостійно відповідає на питання про замовлення, доставку та повернення
  • Персоналізацію без складнощів — я реалізував рекомендації, які формуються автоматично на основі поведінки користувача
  • Економію на розробці — я створив єдину систему, яка замінює окремі модулі для пошуку, підтримки, рекомендацій та підбору розмірів

Як це працює для клієнта:

  1. Клієнт пише запит природною мовою через чат на сайті
  2. AI розуміє, що саме потрібно: категорію, колір, розмір, бюджет
  3. Система показує саме ті товари, які шукає покупець
  4. За потреби допомагає з вибором розміру та оформлює замовлення

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

🛠️ Технологічний стек

Backend — основна спеціалізація

  • Java 17/21 — основна мова
  • Spring Boot — продакшн-додатки будь-якої складності
  • Spring Security — автентифікація, OAuth2, JWT, CSRF
  • Spring Data JPA / Hibernate — робота з реляційними БД
  • Spring MVC / REST API — побудова HTTP-інтерфейсів
  • Spring Cloud — мікросервісні патерни

Бази даних

  • PostgreSQL — основна реляційна БД для продакшн-проєктів
  • MySQL — альтернатива для певних типів проєктів
  • Redis — кешування, сесії, черги

Черги повідомлень та асинхронність

  • Apache Kafka — потокова обробка даних, event-driven архітектура
  • RabbitMQ — асинхронні черги для мікросервісів

Frontend та PWA

  • Thymeleaf — серверний рендеринг з SEO
  • JavaScript, HTML, CSS, Tailwind
  • PWA (Service Worker, Web App Manifest)
  • Web Push API / VAPID — push-сповіщення на iOS та Android
  • Badging API — лічильники на іконці PWA

AI та зовнішні інтеграції

  • ElevenLabs — генерація мовлення (Text-to-Speech)
  • OpenAI API — генерація текстового контенту
  • Stripe — платіжні інтеграції
  • Cloudinary — медіа-сховище та оптимізація зображень

DevOps та інфраструктура

  • Docker — контейнеризація
  • Railway / Render — деплой продакшн-додатків
  • GitHub Actions — CI/CD пайплайни

💼 Що я роблю для клієнтів

За роки комерційної розробки виробив підхід який однаково добре працює для стартапу на ранній стадії і для зрілого бізнесу з legacy-системою. Від невеликих REST API до повноцінних SaaS-платформ з AI-інтеграціями, біллінгом і тисячами користувачів.

Починаю з архітектури, а не з коду

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

Повний цикл без розривів

Проєктування схеми бази даних, REST API з документацією, авторизація через Spring Security і OAuth2, інтеграції з платіжними системами (WayForPay, Stripe), Telegram Bot API, зовнішніми AI-провайдерами. Деплой через Docker на Railway, VPS або власну інфраструктуру клієнта. Клієнт отримує готовий продукт, а не набір компонентів які ще треба зібрати докупи.

AI-інтеграції як частина продукту

З 2024 року активно інтегрую великі мовні моделі в комерційні продукти: RAG-пошук через pgvector, стрімінг відповідей через SSE, довгострокова пам'ять для персоналізації, мультимодельні стратегії через OpenRouter. AI — не buzzword в резюме, а конкретні технічні рішення які вже працюють у продакшні.

Продуктивність закладена з початку

Кешування на рівні Caffeine або Redis, оптимізація SQL-запитів та індексів у PostgreSQL, асинхронна обробка важких операцій, HikariCP тюнінг для контрольованого навантаження на БД — все це закладається в архітектуру одразу. Не як "оптимізація" після того як система впала під навантаженням, а як частина проєктування з першого дня.

Підтримуваний код

Код який я здаю — читається через рік без автора поруч. Чітка структура пакетів, розділення на шари (controller → service → repository), окремі DTO і mapper'и, константи замість магічних рядків, явне логування для дебагу в продакшні. Покриття тестами для критичних шляхів — бо підтримувати проєкт після запуску доведеться вам або іншому розробнику.

Портфоліо робіт — webscraft.org/portfolio

📝 Технічний блог

Разом з командою ведемо технічний блог webscraft.org/blog — пишемо про реальні кейси з розробки, нові інструменти та підходи які використовуємо на практиці. Не переказ документації, а конкретні рішення з живих проєктів.

Якщо у вас є технічне питання, хочете обговорити архітектуру проєкту або просто не знаєте з чого почати — пишіть напряму, відповідаю особисто.

🎯 Підхід до розробки

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

Проблема: "спочатку зробимо, потім розберемось"

Найпоширеніша ситуація — проєкт стартує без проєктування бази даних і архітектури. Через три місяці з'ясовується що схема не витримує реальних даних, а додати нову фічу означає переписати половину коду. Я завжди починаю з моделювання даних і визначення меж системи — навіть якщо клієнт хоче "просто швидко запустити".

Проблема: мікросервіси заради мікросервісів

Команда з двох людей будує розподілену систему з п'яти сервісів, Kafka і окремими базами даних — бо "так правильно". В результаті 90% часу іде на інфраструктуру, а не на продукт. Для стартапу на ранній стадії добре написаний моноліт на Spring Boot — це часто правильніше рішення. Мікросервіси з'являються тоді коли є реальна потреба, а не з першого дня.

Проблема: продуктивність як afterthought

"Спочатку зробимо щоб працювало, потім оптимізуємо" — класика яка коштує дорого. N+1 запити в Hibernate, відсутність індексів, відсутність кешування — все це легко вирішується на етапі архітектури і дуже важко виправляється в продакшні під навантаженням. Redis, правильні індекси, асинхронна обробка важких операцій — я закладаю це одразу.

Проблема: код який розуміє тільки автор

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

Хороша архітектура — це не та що виглядає красиво на діаграмі, а та яку легко змінювати коли бізнес-вимоги змінились.

❓ FAQ

Яка ваша основна спеціалізація?

Java Backend на Spring Boot екосистемі. Додатково — PWA, Web Push, AI-інтеграції (ElevenLabs, OpenAI), платіжні системи (Stripe).

Чи берете комерційні проєкти?

Так. Розглядаю Backend розробку, технічний консалтинг та повний цикл розробки веб-продуктів. Зв'яжіться для обговорення деталей.

Скільки коштує розробка?

Залежить від складності. Простий REST API — від $200, повноцінний продукт з авторизацією, платежами та PWA — від $1000. Завжди даю детальну оцінку після аналізу вимог.

Де можна побачити код?

github.com/VadimKharovyuk

📬 Контакти

Якщо у вас є проєкт або питання — пишіть: