Статии
За автора
Аз съм Роман, Lead AI/ML Engineer с над 15 години в разработката на софтуер. Довеждам AI продукти от идеята до продукция: LLM агенти, RAG, text-to-SQL и MCP сървъри – с бекенд, данни, интеграции, облак и сигурност. Много се занимавам и с R&D и оценка на проекти, работя с клиенти като Forward-Deployed AI Engineer, поставям инженерни стандарти и наставлявам разработчици. Преди това създавах уеб, бекенд и мобилни приложения за банки, държавни структури и бизнес.
GEO, MCP и WebMCP: как ChatGPT, Claude и Gemini намират, четат и използват сайтове
GEO на практика: как ИИ асистентите намират сайта, какво да настроите в robots.txt, маркирането и съдържанието, как да свържете MCP и WebMCP и какво трябва на онлайн магазина за покупки чрез ИИ.
Python за Java разработчици
Python за онези, които знаят Java: синтаксис и основни методи редом с Java, низове, колекции, генератори, нишки, asyncio и микроуслуга със стандартната библиотека.
Двигатели за инференс на LLM: vLLM, llama.cpp, LiteRT-LM и други – скорост, хардуер, мащабиране
С какво да стартираме езикови модели в края на 2026 г.: vLLM, SGLang, TensorRT-LLM, llama.cpp, MLX, LiteRT-LM, Ollama и LM Studio – скорост, хардуер, мащабиране, със замервания.
Сравнение на 41 AI харнеса – от Claude Code до OpenClaw
Агенти за програмиране и универсални агенти: Claude Code, Codex, Cursor, Copilot, OpenCode, OpenClaw, Hermes – лицензи, модели, настройка, пясъчник, бенчмаркове, обучение върху вашия код и течове.
Claude Code – команди, настройки, флагове
Справочник за Claude Code: слеш команди с аргументи и примери, ключове на settings.json, правила за достъп, подкоманди, флагове и променливи на средата. Актуално към август 2026.
Claude Code – Best Practices
Как да организирате работата с Claude Code: инструкции на проекта, правила и скилове, тракер на задачи и бъгове в хранилището, план преди кода, субагенти, контекст, разрешения и разход на бюджета.
Хукове в Claude Code
Разбор на хуковете в Claude Code: всички събития, кодове на изход и JSON решения, matcher и if, пет вида обработчици и три работещи хука – звук, контрол на лимитите на абонамента и журнал на работата.
LangChain и LangGraph – агенти, графи и цялата инфраструктура около тях
Как е устроен стекът LangChain 1.x и LangGraph 1.x: models и messages, tools, create_agent и middleware, StateGraph с reducers, checkpointers и store, streaming, human-in-the-loop, LangSmith, Agent Server и langgraph CLI, миграция от 0.x.
Техники за промпт инженеринг при големите езикови модели
Регулаторът на усилието при reasoning моделите, строги схеми на отговора, промптове за агенти, разделители, XML тагове и few-shot: как да формулирате промптове за ChatGPT, Claude и Gemini.
DSPy – Автоматично генериране на промптове
DSPy 3.4 на примера на агент за поддръжка: сигнатури вместо текст на промпта, инструменти, метрика, оптимизаторите MIPROv2 и GEPA, запазване на резултата и какво ще се промени в DSPy 3.5.
RAG (Retrieval-Augmented Generation), Function / Tools Calling, CAG (Cache-Augmented Generation) за LLM модели
RAG, Function Calling и CAG за локални LLM модели: как работи векторната база данни, с примери на Kotlin, DSPy, LangChain, LangChain4j и llama.cpp.
Векторни бази данни
Векторни бази на практика: с какво се различават Milvus, Qdrant и Weaviate, как се изчисляват ембедингите, как работят индексите HNSW и търсенето по близост.
Offline AI Launcher – стартиране на AI LLM невронни мрежи на смартфон
Приложението Offline AI Launcher: как да стартирате LLM Gemma, DeepSeek, Llama и Qwen направо на Android от модели .gguf, без интернет и абонамент.
LoRA – Дообучаване на AI LLM модели
Дообучаване на LLM с LoRA: кога е по-добро от RAG и кога не, как са устроени адаптерите, и два пълни примера за Gemma 4 E2B с Unsloth и PEFT с експорт в GGUF.
Kubernetes – Как работи
Устройство на Kubernetes: архитектура на control plane, namespace, балансиране на натоварването, команди на kubectl, Dashboard и мониторинг с Prometheus.
gRPC – Как работи
Как е устроен gRPC върху HTTP/2 и Protocol Buffers, с какво печели пред REST и как да изградим сървър и клиент на Kotlin с Gradle.
llama.cpp AI LLM Engine – Как работи
Как е устроен инференсът в llama.cpp: зареждане на GGUF, токенизация, изграждане на изчислителния граф, KV-cache и семплиране на следващия токен.
Локално стартиране на LLM модели на Android смартфон
С какво да стартирате езиков модел на Android: LiteRT-LM, llama.cpp, MediaPipe, MLC LLM и ONNX Runtime GenAI – какво да изберете, как да подготвите модела и Kotlin код, който спира генерирането.
Невронните мрежи с прости думи
Как е устроен LLM: токенизация, embedding, attention в трансформъра, квантуване и семплери, които определят избора на следващия токен.
Въведение в Project Loom
Виртуалните нишки на Project Loom в Java: как JVM ги планира върху carrier threads, с какво се различават от Kotlin Coroutines и как се включват в Spring.
Въведение в Ktor и Exposed
Сървърно приложение на Kotlin с Ktor: работа с базата данни чрез Exposed и JDBI, инжектиране на зависимости с Koin, тестове с Mockk и Testcontainers, миграции с Flyway.
Kotlin 2.0 – основни нововъведения в синтаксиса
Какво се промени в синтаксиса на Kotlin 2.0: context receivers, value classes, sealed interface, деструктуриране във for и pattern matching в when.
Релационни SQL бази данни
Синтаксис на SQL, VIEW и индекси, JOIN и CTE, заключвания при конкурентен достъп и четене на плана на заявката в PostgreSQL, MySQL и Oracle.
Сигурност на микроуслуги и уеб приложения
Микроуслуга за оторизация, API Gateway, mTLS и сертификати: как да съхраняваме паролите безопасно, как да се защитим от brute-force и кои алгоритми за криптиране да изберем.
Java Spring – Cloud
Облачните услуги на AWS, Google Cloud и Azure за Java приложения: съответствия между аналозите, оптимизация на разходите, serverless, Git LFS и субмодули.
Java Spring – Компоненти на Spring
Настройка на application.properties, WebSocket, GraphQL, OAuth 2.0, Spring Security, Actuator, WebFlux и Batch с примери за код и конфигурация.
Java Spring – Концепции
Saga и Rollback, SOLID, Clean Architecture, REST и RPC, IoC и DI, Spring MVC, Project Reactor, сървлети и CSRF – разбор на концепциите с примери на Kotlin.
Java Spring – Съхранение на данни
Съхранение на данни в Spring: ACID и нива на изолация, @Transactional, JPA срещу JDBC, Spring Data, кеширане в Redis, Flyway и индекси.
Java Spring – Микроуслуги
Взаимодействие на микроуслуги в Spring: REST и WebClient, Kafka и RabbitMQ, Docker и Kubernetes, Eureka, Cloud Gateway и проследяване на заявките.
Java Spring – Анотации на Spring
Справочник на анотациите в Spring с примери на Kotlin: @Component, @Bean, @Transactional, мапинг на заявки, JPA и разликата между @Component и @Bean.
Java Core – Основни въпроси
Отговори на въпроси по Java Core: типове данни, колекции и HashMap, генерици, рефлексия, устройство на паметта на JVM и работа на Garbage Collector.
Java Spring – Списък с въпроси
Указател на въпроси за интервю на Java разработчик: Java Core, Kotlin, многонишковост, анотации и компоненти на Spring, микроуслуги и SQL.
Настройка на потребителски параметри за стартиране на IntelliJ IDEA / Android Studio
Какво прави всеки флаг в Edit Custom VM Options: размери на heap, избор на Garbage Collector, кеш на кода и настройка на паметта в Android Studio.
Кратко ръководство за MapStruct
Практически похвати с MapStruct в Kotlin: маппинг на полета с различни имена, @Named, преизползване на логиката и заобикаляне на типични грешки при компилация.
Google Guava в примери
Възможностите на Google Guava в примери на Kotlin: Multimap, BiMap, Table, кеш, работа с низове, хеширане, IO и конкурентност.
Логване на работата на Android приложение в txt файлове
Логърът LogUtil за Android: запис на debug и error логове и на мрежовите заявки на OkHttp в отделни txt файлове в папката Документи на телефона.
Динамично генериране на UI в Android приложение с помощта на RecyclerView и AdapterDelegates
Как да изградим динамичен UI с RecyclerView и библиотеката AdapterDelegates: делегати, елементи на списъка за повторно използване и сравнение чрез DiffEquals.
Как да настроите Charles Proxy за емулатора на Android Studio
Стъпка по стъпка настройка на Charles Proxy за емулатора на Android: прокси през adb, сертификат на Charles, network security config за HTTPS на приложението и подмяна на отговори.
Mock на отговорите на сървъра в Android разработката с помощта на Interceptor
Как да подменяме отговорите на сървъра в Android със собствен OkHttp Interceptor: модел MockResponse, map по url и свързване с OkHttpClient.
Android – Компоненти и View
Жизнени цикли на Activity, Fragment, View и Service, устройство на Context, Intent, WorkManager, RecyclerView и разликите между MVP, MVVM, MVC и MVI.
Android Paging 3 и Paging в AdapterDelegates
Пагинация в Android с Paging 3: PagingSource, PagingDataAdapter, адаптер за състоянията на зареждане и свързване с AdapterDelegates.
Android Push Provisioning API
Свързване на Android Push Provisioning API: настройка на tapAndPay SDK, whitelist на приложението, изисквания на Google Pay към UI и предаване на картата чрез OPC.
Как да включите дебъгване през Wi-Fi в Android Studio
Дебъгване на Android приложение през Wi-Fi: класическият начин с adb tcpip и adb connect и безжичното дебъгване на Android 11+ със сдвояване по код или QR.
DexClassLoader, или зареждане на част от приложението от мрежата
Как Android приложение изтегля .dex от сървър и зарежда класове от него чрез DexClassLoader, с какво е ограничено това от Android 14 и защо в Google Play така не бива.
Java / Kotlin Core – Многонишковост
Многонишковост в Java и Kotlin: volatile и synchronized, ReentrantLock, корутини и Channels, оператори на RxJava и стратегии за backpressure.
Kotlin Core – Основни въпроси
Как са устроени корутините и suspend, с какво launch се различава от async, как работят scope functions, делегатите, extension и companion object в Kotlin.
Java / Kotlin Core – Теоретични въпроси
Сложност на операциите с колекции, шаблони за проектиране, SOLID, наследяване срещу композиция и функции от по-висок ред в Java и Kotlin.