My name is Vadym Kharovyuk. I am a Java Backend developer from Kharkiv with five years of experience in the Spring ecosystem. During this time, I have progressed from simple REST APIs to production products with AI integrations, PWA, and microservice architecture.
In parallel with commercial projects, I maintain a technical blog at webscraft.org/blog — I write about real-world cases from my own experience, not just rehashes of documentation.
📚 Table of Contents
- 📌 About Me
- 📌 Project: AI Platform
- 📌 Project: Kazki AI
- 📌 Technology Stack
- 📌 Other Projects
- 📌 Technical Blog
- 📌 Development Approach
- ❓ FAQ
- ✅ Contacts
⸻
🎯 About Me
32 years old, Kharkiv, Ukraine. I came to IT consciously — after university, I realized I wanted to build products, not just write code according to a technical specification. The first few years involved monolithic Spring Boot applications, databases, and REST APIs. Over time, it evolved to microservices, message queues, and complex integrations with external services. And since 2024, I've been deeply immersed in AI integrations and developing my own SaaS products based on large language models.
Today, my primary specialization is the full cycle of Backend development: from architecture design to production deployment with monitoring and support. I don't just write code — I think about scalability, infrastructure costs, end-user experience, and the overall business logic of the product.
In parallel with commercial projects, I am developing my own AI platform for character communication, maintaining a technical blog where I share solutions from real projects, and constantly testing new tools — from local LLMs on Apple Silicon to cloud AI providers.
The best way to understand a technology is to build something real with it and bring it to production. Theory without practice is just pretty words on a resume.
🤖 New Project: AI Platform for Character Communication
A full-fledged SaaS platform where users communicate with AI characters — psychologists, mentors, companions, comedians, romantic characters, and others. Each character has its own personality, communication style, and long-term memory of the user. Coming soon to production.
The project was written entirely by myself — from architecture to deployment. It's not a demo or a pet project, but a full-fledged product with billing, AI memory, semantic search, and real infrastructure on Railway.
What's inside:
- Spring AI 2.0 + LLM Integration — OpenRouter as a unified gateway to various models: DeepSeek V4 Flash as the primary model, separate models for romantic and provocative characters (sao10k/l3.3-euryale-70b), Gemini for support. Model switching via configuration without code changes.
- AI Memory and RAG — a long-term memory system based on pgvector: extractAllFacts extracts 11 fields from a dialogue in a single LLM call, hybrid search via Reciprocal Rank Fusion (vector search + PostgreSQL FTS), semantic and episodic summaries with Caffeine cache.
- Streaming via SSE — character responses are streamed token by token via Server-Sent Events, a Stop button for interruption, a token queue with typing animation.
- Billing — WayForPay prepaid integration (the only payment system available in Ukraine without a private entrepreneur status), token-based payment model, FREE/BASIC/PRO subscriptions with different limits, webhook with support for JSON and form-urlencoded.
- Scenes and Role-Playing Games — a scene system with AI-generated plots: tag selection → LLM generates a draft → save. Romantic dates, detective investigations, alumni meetings.
- Telegram Integration — communicate with characters directly in Telegram, account linking, a separate bot for local development to avoid conflicts with the production bot.
- Moderation and Security — KeywordCrisisDetectionService, character reactions to messages, age verification for provocative content.
- SEO Optimization — separate SEO controllers for the catalog and character pages, slug routing, JSON-LD structured data, OG tags, sitemap.
- Infrastructure — Railway (Spring Boot + pgvector PostgreSQL), Docker with G1GC tuning, Cloudinary for images, ngrok for local webhook development.
The entire stack — Java 21, Spring Boot 3, Spring AI 2.0, PostgreSQL + pgvector, Thymeleaf + Bootstrap 5, OpenRouter, WayForPay, Cloudinary, Telegram Bot API — was designed, written, and is maintained by one person.
🚀 One of the Projects: Kazki AI
Kazki AI is a service for personalized audio fairy tales for children, where the child is the main character of the story. Parents enter the child's name, their interests, and favorite characters — the system generates a unique fairy tale and voices it using an AI voice through ElevenLabs.
The project was written entirely by myself — from architecture to deployment. It's not a pet project for a resume, but a live production service with a payment system, subscriptions, push notifications on iOS and Android, and real users.
What's inside:
- AI Content Generation — OpenAI generates the fairy tale text considering the child's name and preferences, ElevenLabs voices the result with a natural voice.
- Payment System — Stripe with a subscription model: different tariff plans, access management, webhook event processing.
- PWA without App Store — installation on the home screen, offline mode, push notifications via Web Push API (VAPID) on iOS 16.4+ and Android.
- Authorization — Spring Security + OAuth2 (Google), CSRF protection, session management via Redis.
- SEO and Performance — server-side rendering via Thymeleaf, caching at the Redis level, image optimization via Cloudinary.
- Database — PostgreSQL with a well-designed schema: users, fairy tales, subscriptions, push subscriptions, payment events.
The entire stack — Spring Boot, PostgreSQL, Redis, ElevenLabs, Stripe, Cloudinary, PWA — is deployed and maintained in production by one person.
⸻
🛠️ Technology Stack
Backend — Primary Specialization
- Java 17/21 — primary language
- Spring Boot — production applications of any complexity
- Spring Security — authentication, OAuth2, JWT, CSRF
- Spring Data JPA / Hibernate — working with relational databases
- Spring MVC / REST API — building HTTP interfaces
- Spring Cloud — microservice patterns
Databases
- PostgreSQL — primary relational database for production projects
- MySQL — an alternative for certain types of projects
- Redis — caching, sessions, queues
Message Queues and Asynchronicity
- Apache Kafka — stream data processing, event-driven architecture
- RabbitMQ — asynchronous queues for microservices
Frontend and PWA
- Thymeleaf — server-side rendering with SEO
- JavaScript, HTML, CSS, Tailwind
- PWA (Service Worker, Web App Manifest)
- Web Push API / VAPID — push notifications on iOS and Android
- Badging API — counters on the PWA icon
AI and External Integrations
- ElevenLabs — speech generation (Text-to-Speech)
- OpenAI API — text content generation
- Stripe — payment integrations
- Cloudinary — media storage and image optimization
DevOps and Infrastructure
- Docker — containerization
- Railway / Render — deploying production applications
- GitHub Actions — CI/CD pipelines
💼 What I Do for Clients
Over years of commercial development, I've developed an approach that works equally well for early-stage startups and mature businesses with legacy systems. From small REST APIs to full-fledged SaaS platforms with AI integrations, billing, and thousands of users.
I Start with Architecture, Not Code
Before writing the first line, we analyze the business problem, identify potential bottlenecks, and choose a stack for the specific case. Monolithic Spring Boot or microservices — depends on the scale and team, not on trends. I don't impose over-engineering where a simple solution suffices, nor do I oversimplify where a serious architecture is needed.
Full Cycle Without Gaps
Designing the database schema, REST API with documentation, authorization via Spring Security and OAuth2, integrations with payment systems (WayForPay, Stripe), Telegram Bot API, external AI providers. Deployment via Docker on Railway, VPS, or the client's own infrastructure. The client receives a ready product, not a set of components that still need to be assembled.
AI Integrations as Part of the Product
Since 2024, I have been actively integrating large language models into commercial products: RAG search via pgvector, streaming responses via SSE, long-term memory for personalization, multi-model strategies via OpenRouter. AI is not a buzzword on a resume, but concrete technical solutions that are already working in production.
Performance Built-In From the Start
Caching at the Caffeine or Redis level, optimizing SQL queries and indexes in PostgreSQL, asynchronous processing of heavy operations, HikariCP tuning for controlled database load — all of this is incorporated into the architecture from the beginning. Not as "optimization" after the system fails under load, but as part of the design from day one.
Maintainable Code
The code I deliver is readable a year later without the author present. Clear package structure, separation into layers (controller → service → repository), separate DTOs and mappers, constants instead of magic strings, explicit logging for production debugging. Test coverage for critical paths — because maintaining the project after launch will be your responsibility or another developer's.
Portfolio of works — webscraft.org/portfolio
⸻
📝 Technical Blog
Together with the team, we maintain a technical blog at webscraft.org/blog — we write about real development cases, new tools, and approaches that we use in practice. Not a rehash of documentation, but concrete solutions from live projects.
If you have a technical question, want to discuss project architecture, or simply don't know where to start — write directly, I'll respond personally.
⸻
🎯 Development Approach
Over five years, I've seen the same problems in various projects. Not technical problems — organizational ones. Development starts without clear architecture, the first release comes out later than planned, and then half the time is spent on refactoring instead of new features. My approach is built around preventing this.
Problem: "Let's build it first, then figure it out"
The most common situation is a project starting without database design or architecture. After three months, it turns out the schema can't handle real data, and adding a new feature means rewriting half the code. I always start with data modeling and defining system boundaries — even if the client wants to "just launch quickly."
Problem: Microservices for the Sake of Microservices
A team of two builds a distributed system with five services, Kafka, and separate databases — because "that's the right way." As a result, 90% of the time is spent on infrastructure, not on the product. For an early-stage startup, a well-written monolith on Spring Boot is often the more appropriate solution. Microservices emerge when there's a real need, not from day one.
Problem: Performance as an Afterthought
"Let's make it work first, then optimize" — a classic that comes at a high cost. N+1 queries in Hibernate, lack of indexes, lack of caching — all of this is easily addressed at the architecture stage and very difficult to fix in production under load. Redis, proper indexes, asynchronous processing of heavy operations — I incorporate these from the start.
Problem: Code Only the Author Understands
A year later, the developer who wrote the system no longer works at the company. A new developer spends weeks trying to understand what's going on. Readable code, clear structure, documentation of critical decisions — this isn't about perfectionism, it's about maintenance cost.
Good architecture is not one that looks beautiful on a diagram, but one that is easy to change when business requirements change.
⸻
❓ FAQ
What is your primary specialization?
Java Backend on the Spring Boot ecosystem. Additionally — PWA, Web Push, AI integrations (ElevenLabs, OpenAI), payment systems (Stripe).
Do you take on commercial projects?
Yes. I consider Backend development, technical consulting, and full-cycle web product development. Contact me to discuss details.
How much does development cost?
It depends on the complexity. A simple REST API — from $200, a full-fledged product with authorization, payments, and PWA — from $1000. I always provide a detailed estimate after analyzing the requirements.
Where can I see your code?
⸻
📬 Contacts
If you have a project or a question — write to me:
- Telegram: @name_lucky_lucky
- GitHub: VadimKharovyuk
- Website: webscraft.org