<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Roman Kryvolapov — Articles</title><description>Articles and notes on Java, Kotlin, Android, Spring, AI and LLM engineering.</description><link>https://romankryvolapov.com/</link><language>en</language><item><title>Android — Components and Views</title><link>https://romankryvolapov.com/en/android-components-and-views/</link><guid isPermaLink="true">https://romankryvolapov.com/en/android-components-and-views/</guid><description>Android internals for interviews: Activity, Fragment and Service lifecycles, Context, Intent, WorkManager, RecyclerView and MVP vs MVVM vs MVI.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Android Paging 3 and Paging in AdapterDelegates</title><link>https://romankryvolapov.com/en/android-paging-3/</link><guid isPermaLink="true">https://romankryvolapov.com/en/android-paging-3/</guid><description>Building pagination in Android with Paging 3: PagingSource, PagingDataAdapter, load-state footers, and wiring it into AdapterDelegates.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Android Push Provisioning API</title><link>https://romankryvolapov.com/en/android-push-provisioning-api/</link><guid isPermaLink="true">https://romankryvolapov.com/en/android-push-provisioning-api/</guid><description>Adding bank cards to Google Pay from an Android app: tapAndPay SDK setup, API allowlisting, Google Pay UI rules, and encrypted OPC handling.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Cursor IDE — Best Practices</title><link>https://romankryvolapov.com/en/cursor-ide-best-practices/</link><guid isPermaLink="true">https://romankryvolapov.com/en/cursor-ide-best-practices/</guid><description>Practical Cursor IDE habits: project and folder Rules, the Auto model, MCP servers, breaking tasks into steps, and reviewing every diff before commit.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Dynamic UI Generation in Android Application Using RecyclerView and AdapterDelegates</title><link>https://romankryvolapov.com/en/recyclerview-adapterdelegates/</link><guid isPermaLink="true">https://romankryvolapov.com/en/recyclerview-adapterdelegates/</guid><description>Building dynamic Android UI with RecyclerView and AdapterDelegates: writing delegates, reusing list items, and diffing them without DiffUtil boilerplate.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Google Guava in Examples</title><link>https://romankryvolapov.com/en/google-guava-in-examples/</link><guid isPermaLink="true">https://romankryvolapov.com/en/google-guava-in-examples/</guid><description>A tour of Google Guava through Kotlin examples: Multimap, BiMap, Table, caching, string utilities, hashing, IO helpers and concurrency.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>gRPC — How it works</title><link>https://romankryvolapov.com/en/grpc/</link><guid isPermaLink="true">https://romankryvolapov.com/en/grpc/</guid><description>How gRPC works on top of HTTP/2 and Protocol Buffers, where it beats REST for internal services, and how to build a Kotlin server and client.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Introduction to Ktor and Exposed</title><link>https://romankryvolapov.com/en/ktor-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/en/ktor-manual/</guid><description>Building a Kotlin server with Ktor: Exposed and JDBI for the database, Koin for dependency injection, Mockk and Testcontainers tests, Flyway migrations.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Introduction to Project Loom</title><link>https://romankryvolapov.com/en/project-loom-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/en/project-loom-manual/</guid><description>Project Loom virtual threads in Java: how the JVM schedules them on carrier threads, how they differ from Kotlin Coroutines, and enabling them in Spring.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java / Kotlin Core — Multithreading</title><link>https://romankryvolapov.com/en/java-kotlin-multithreading/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-kotlin-multithreading/</guid><description>Java and Kotlin concurrency explained: volatile, synchronized, ReentrantLock, coroutines and Channels, RxJava operators and backpressure strategies.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java / Kotlin Core — Theoretical Questions</title><link>https://romankryvolapov.com/en/java-kotlin-theory/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-kotlin-theory/</guid><description>Big-O costs of collection operations, design patterns, SOLID, inheritance versus composition and higher-order functions in Java and Kotlin.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Core — Basic Questions</title><link>https://romankryvolapov.com/en/java-core-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-core-questions/</guid><description>Java Core interview answers: data types, collections and HashMap, generics, reflection, JVM memory layout and how the garbage collector works.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Cloud</title><link>https://romankryvolapov.com/en/java-spring-cloud/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-cloud/</guid><description>Cloud services for Java across AWS, Google Cloud and Azure: side-by-side equivalents, cost optimization, serverless, Git LFS and submodules.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Concepts</title><link>https://romankryvolapov.com/en/java-spring-concepts/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-concepts/</guid><description>Core backend concepts behind Spring: Saga and Rollback, SOLID, Clean Architecture, REST vs RPC vs GraphQL, IoC and DI, Spring MVC and Project Reactor.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Data Storage</title><link>https://romankryvolapov.com/en/java-spring-data-storage/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-data-storage/</guid><description>Data storage in Spring: ACID and isolation levels, @Transactional, JPA vs JDBC, Spring Data repositories, Redis caching, Flyway and indexes.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — List of Questions</title><link>https://romankryvolapov.com/en/java-spring-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-questions/</guid><description>A navigable index of Java developer interview questions: Java Core, Kotlin, concurrency, Spring annotations and components, microservices, and SQL.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Microservices</title><link>https://romankryvolapov.com/en/java-spring-microservices/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-microservices/</guid><description>Microservice communication in Spring: REST and WebClient, Kafka and RabbitMQ, Docker and Kubernetes, Eureka, Cloud Gateway, and request tracing.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Spring Annotations</title><link>https://romankryvolapov.com/en/java-spring-annotations/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-annotations/</guid><description>A reference to Spring annotations with Kotlin examples: @Component, @Bean, @Transactional, request mapping, JPA, and how @Component differs from @Bean.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Java Spring — Spring Components</title><link>https://romankryvolapov.com/en/java-spring-components/</link><guid isPermaLink="true">https://romankryvolapov.com/en/java-spring-components/</guid><description>Configuring application.properties, WebSocket, GraphQL, OAuth 2.0, Spring Security, Actuator, WebFlux and Batch with real code and config examples.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin 2.0 — Key Syntax Changes</title><link>https://romankryvolapov.com/en/kotlin-2-key-syntax-changes/</link><guid isPermaLink="true">https://romankryvolapov.com/en/kotlin-2-key-syntax-changes/</guid><description>What changed in Kotlin 2.0 syntax: context receivers, value classes, sealed interfaces, destructuring in for loops and pattern matching in when.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kotlin Core — Basic Questions</title><link>https://romankryvolapov.com/en/kotlin-core-questions/</link><guid isPermaLink="true">https://romankryvolapov.com/en/kotlin-core-questions/</guid><description>How coroutines and suspend actually work, when to use launch instead of async, plus scope functions, delegates, extensions and companion objects.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Kubernetes — How it works</title><link>https://romankryvolapov.com/en/kubernetes/</link><guid isPermaLink="true">https://romankryvolapov.com/en/kubernetes/</guid><description>How Kubernetes works: control plane architecture, namespaces, load balancing, everyday kubectl commands, the Dashboard and Prometheus monitoring.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>LLama.cpp AI LLM Engine — How It Works</title><link>https://romankryvolapov.com/en/llama-cpp/</link><guid isPermaLink="true">https://romankryvolapov.com/en/llama-cpp/</guid><description>How inference works inside llama.cpp: loading a GGUF model, tokenization, building the compute graph, the KV cache, and token sampling.</description><pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Logging Android application work in txt files</title><link>https://romankryvolapov.com/en/android-logging-to-file/</link><guid isPermaLink="true">https://romankryvolapov.com/en/android-logging-to-file/</guid><description>A LogUtil logger for Android that writes debug and error logs plus OkHttp network traffic into separate txt files on the device storage.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>LoRA — Final training of AI LLM models</title><link>https://romankryvolapov.com/en/lora-fine-tuning/</link><guid isPermaLink="true">https://romankryvolapov.com/en/lora-fine-tuning/</guid><description>Fine-tuning an LLM with LoRA: when it beats RAG, how to train adapters for gemma-3-4b with unsloth and peft, and export the result to GGUF.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Microservices and Web Application Security</title><link>https://romankryvolapov.com/en/microservices-security/</link><guid isPermaLink="true">https://romankryvolapov.com/en/microservices-security/</guid><description>Auth microservices, API Gateway, mTLS and certificates: how to store passwords safely, stop brute-force attacks and choose encryption algorithms.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Mock Server Responses in Android Development using Interceptor</title><link>https://romankryvolapov.com/en/android-mock-interceptor/</link><guid isPermaLink="true">https://romankryvolapov.com/en/android-mock-interceptor/</guid><description>Mocking server responses in Android with a custom OkHttp Interceptor: a MockResponse model, a URL-keyed map, and wiring it into OkHttpClient.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Neural networks in simple terms</title><link>https://romankryvolapov.com/en/neural-networks-basics/</link><guid isPermaLink="true">https://romankryvolapov.com/en/neural-networks-basics/</guid><description>How an LLM actually works: tokenization, embeddings, transformer attention, quantization, and the samplers that pick each next token.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Offline AI Launcher — launch AI LLM neural networks on smartphone</title><link>https://romankryvolapov.com/en/offline-ai-launcher/</link><guid isPermaLink="true">https://romankryvolapov.com/en/offline-ai-launcher/</guid><description>Offline AI Launcher runs LLMs like Gemma, DeepSeek, Llama and Qwen straight on your Android phone from .gguf files, with no internet or subscription.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Prompt engineering techniques for Large Language Models</title><link>https://romankryvolapov.com/en/prompt-engineering/</link><guid isPermaLink="true">https://romankryvolapov.com/en/prompt-engineering/</guid><description>Delimiters, XML tags, few-shot examples, pseudocode and rule hierarchy — how to format prompts for ChatGPT, Claude or Gemini and get predictable output.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>RAG (Retrieval-Augmented Generation), Function / Tools Calling, CAG (Cache-Augmented Generation) for LLM models</title><link>https://romankryvolapov.com/en/rag-and-function-calling/</link><guid isPermaLink="true">https://romankryvolapov.com/en/rag-and-function-calling/</guid><description>RAG, function calling and CAG for local LLMs: how vector search works, with working examples in Kotlin, Dspy, LangChain, LangChain4j and llama.cpp.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Relational SQL databases</title><link>https://romankryvolapov.com/en/relational-sql-databases/</link><guid isPermaLink="true">https://romankryvolapov.com/en/relational-sql-databases/</guid><description>SQL syntax, views and indexes, JOIN and CTE queries, pessimistic and optimistic locking, and reading query plans in PostgreSQL, MySQL and Oracle.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Setup custom launch options for IntelliJ IDEA / Android Studio</title><link>https://romankryvolapov.com/en/intellij-idea-launch-options/</link><guid isPermaLink="true">https://romankryvolapov.com/en/intellij-idea-launch-options/</guid><description>What each flag in Edit Custom VM Options actually does: heap sizes, Garbage Collector choice, code cache, and memory tuning for Android Studio.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Small manual on MapStruct</title><link>https://romankryvolapov.com/en/mapstruct-manual/</link><guid isPermaLink="true">https://romankryvolapov.com/en/mapstruct-manual/</guid><description>Practical MapStruct recipes for Kotlin: mapping mismatched field names, @Named methods, reusing mapping logic, and avoiding common compile-time errors.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Vector databases</title><link>https://romankryvolapov.com/en/vector-databases/</link><guid isPermaLink="true">https://romankryvolapov.com/en/vector-databases/</guid><description>How vector databases work: embeddings, HNSW indexing and similarity search, plus a comparison of Milvus, Qdrant and Weaviate with Milvus code.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item></channel></rss>