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