Статьи
Android — Компоненты и View
Жизненные циклы Activity, Fragment, View и Service, устройство Context, Intent, WorkManager, RecyclerView и различия между MVP, MVVM, MVC и MVI.
Android Paging 3 и Paging in AdapterDelegates
Пагинация в Android на Paging 3: PagingSource, PagingDataAdapter, адаптер состояний загрузки и подключение к AdapterDelegates.
Android Push Provisioning API
Подключение Android Push Provisioning API: настройка tapAndPay SDK, whitelist приложения, требования Google Pay к UI и передача карты через OPC.
Cursor IDE — Best Practices
Практики работы с Cursor IDE: Rules для проекта и папок, режим Auto, MCP-серверы, декомпозиция задач и проверка изменений перед commit.
Google Guava в примерах
Возможности Google Guava в примерах на Kotlin: Multimap, BiMap, Table, кэш, работа со строками, хеширование, IO и конкурентность.
gRPC — Как это работает
Как устроен gRPC поверх HTTP/2 и Protocol Buffers, чем он выигрывает у REST и как собрать сервер и клиент на Kotlin с Gradle.
Java / Kotlin Core — Многопоточность
Многопоточность в Java и Kotlin: volatile и synchronized, ReentrantLock, корутины и Channels, операторы RxJava и стратегии backpressure.
Java / Kotlin Core — Теоретические вопросы
Сложность операций с коллекциями, паттерны проектирования, SOLID, наследование против композиции и функции высшего порядка в Java и Kotlin.
Java Core — Основные вопросы
Ответы на вопросы по Java Core: типы данных, коллекции и HashMap, дженерики, рефлексия, устройство памяти JVM и работа Garbage Collector.
Java Spring — Cloud
Облачные сервисы AWS, Google Cloud и Azure для Java-приложений: сопоставление аналогов, оптимизация затрат, serverless, Git LFS и субмодули.
Java Spring — Аннотации Spring
Справочник аннотаций Spring с примерами на Kotlin: @Component, @Bean, @Transactional, маппинг запросов, JPA и разница между @Component и @Bean.
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: REST и WebClient, Kafka и RabbitMQ, Docker и Kubernetes, Eureka, Cloud Gateway и трассировка запросов.
Java Spring — Список вопросов
Указатель вопросов для собеседования Java-разработчика: Java Core, Kotlin, многопоточность, аннотации и компоненты Spring, микросервисы и SQL.
Java Spring — Хранение данных
Хранение данных в Spring: ACID и уровни изоляции, @Transactional, JPA против JDBC, Spring Data, кеширование в Redis, Flyway и индексы.
Kotlin 2.0 — основные нововведения в синтаксисе
Что изменилось в синтаксисе Kotlin 2.0: context receivers, value classes, sealed interface, деструктуризация в for и pattern matching в when.
Kotlin Core — Основные вопросы
Как устроены корутины и suspend, чем launch отличается от async, как работают scope functions, делегаты, extension и companion object в Kotlin.
Kubernetes — Как это работает
Устройство Kubernetes: архитектура control plane, namespace, балансировка нагрузки, команды kubectl, Dashboard и мониторинг через Prometheus.
LLama.cpp AI LLM Engine — Как это работает
Как устроен инференс в llama.cpp: загрузка GGUF, токенизация, построение вычислительного графа, KV-cache и сэмплинг следующего токена.
LoRA — Дообучение AI LLM моделей
Дообучение LLM с помощью LoRA: чем подход отличается от RAG, как обучить адаптеры к gemma-3-4b на unsloth и peft и получить GGUF.
Mock ответов сервера в Android разработке при помощи Interceptor
Как подменять ответы сервера в Android своим OkHttp Interceptor: модель MockResponse, map по url и подключение к OkHttpClient.
Offline AI Launcher — запуск AI LLM нейросетей на смартфоне
Приложение Offline AI Launcher: как запускать LLM Gemma, DeepSeek, Llama и Qwen прямо на Android из моделей .gguf, без интернета и подписки.
RAG (Retrieval-Augmented Generation), Function / Tools Calling, CAG (Cache-Augmented Generation) для LLM моделей
RAG, Function Calling и CAG для локальных LLM: как работает векторная база и примеры на Kotlin, Dspy, LangChain, LangChain4j и llama.cpp.
Безопасность микросервисов и веб приложений
Микросервис авторизации, API Gateway, mTLS и сертификаты: как безопасно хранить пароли, защищаться от brute-force и какие алгоритмы шифрования выбрать.
Введение в Ktor и Exposed
Серверное приложение на Kotlin с Ktor: работа с базой через Exposed и JDBI, внедрение зависимостей Koin, тесты на Mockk и Testcontainers, миграции Flyway.
Введение в Project Loom
Виртуальные потоки Project Loom в Java: как JVM планирует их на carrier threads, чем они отличаются от Kotlin Coroutines и как включить в Spring.
Векторные базы данных
Векторные базы на практике: чем отличаются Milvus, Qdrant и Weaviate, как считаются эмбеддинги, работают индексы HNSW и поиск по близости.
Динамическая генерация UI в Android приложении при помощи RecyclerView и AdapterDelegates
Как собрать динамический UI на RecyclerView с библиотекой AdapterDelegates: делегаты, переиспользуемые элементы списка и сравнение через DiffEquals.
Логирование работы Android приложения в txt файлы
Логгер LogUtil для Android: запись debug- и error-логов и сетевых запросов OkHttp в отдельные txt-файлы в папке Документы на телефоне.
Настройка кастомных параметров запуска IntelliJ IDEA / Android Studio
Что делает каждый флаг в Edit Custom VM Options: размеры heap, выбор Garbage Collector, кэш кода и настройка памяти в Android Studio.
Небольшой мануал по MapStruct
Практические приёмы MapStruct в Kotlin: маппинг полей с разными именами, @Named, переиспользование логики и обход типичных ошибок компиляции.
Нейросети простым языком
Как устроена LLM: токенизация, embedding, attention в трансформере, квантование и семплеры, которые определяют выбор следующего токена.
Реляционные SQL базы данных
Синтаксис SQL, VIEW и индексы, JOIN и CTE, блокировки при конкурентном доступе и чтение плана запроса в PostgreSQL, MySQL и Oracle.
Техники промпт-инжиниринга для больших языковых моделей
Разделители, XML-теги, few-shot, псевдокод и иерархия правил: как форматировать промпты для ChatGPT, Claude и Gemini ради предсказуемого ответа.