Senior Mobile Engineer · ArtStation @ Epic Games
Делаю мобильные приложения для сотен тысяч художников.
9+ лет в Android-разработке end-to-end. Сейчас веду новое поколение мобильных клиентов ArtStation на Kotlin Multiplatform — Compose Multiplatform на Android, SwiftUI на iOS — и параллельно поддерживаю нативный Android-апп с 300K+ установок.
Android
017+ лет на одном продакшн-проекте. Java → Kotlin → Compose.
iOS
02SwiftUI-экраны и интероп с Kotlin/Native в шейред-модулях.
Kotlin Multiplatform
03Кросс-платформенное ядро фич: MVI, Decompose, Ktor, SQLDelight, Koin.
Избранные проекты
Что реально ушло в прод.
ArtStation Android → KMP
Переписывание мобильных клиентов ArtStation на общем Kotlin Multiplatform-ядре (home / discover / project / profile / messaging / comments / login / collections / deeplinks / create-artwork) с Compose Multiplatform на Android и SwiftUI на iOS.
- Общее ядро фич, потребляется и Android (Compose), и iOS (SwiftUI) клиентами.
- MVI end-to-end (Intent → Executor → Reducer → State), ViewState-паттерн в UI.
- Ktor + SQLDelight + Koin, экспорт в iOS как XCFramework через CocoaPods + Xcode build phase.
Epic Design System (EDS)
Кросс-платформенный KMP design system: семантические токены, enum-first компонент-API, Figma-naming 1:1, паритет Android ↔ iOS.
- Слои токенов: EdsColors, EdsDimension, EdsBorderRadius, EdsAction, EdsFeedback, EdsTypography.
- Enum-first API вместо рукодельных вариантов — расхождение между платформами становится compile-error.
- ~37 фундаментальных компонентов в первом сосредоточенном спринте.
ArtStation API test framework
Python + pytest фреймворк под мобильный бэкенд ArtStation: fluent Response wrapper, Pydantic-схемы, role-matrix-селекция, параллельный xdist с per-worker изолированными стейджинг-пользователями.
- Per-worker bootstrap стейджинг-юзеров — xdist не валится на общем стейте.
- Маркер user_types для ролевой матрицы по всему сьюту.
- File-cache reference-данных + coverage gap-анализ против iOS- и Android-клиентов.
- CI: GitHub Actions с per-role summaries и авто-issue с пингом команды при падении.
AI-assisted разработка и Spec-Driven Development
Ежедневный сетап для мобильной команды: Claude Code с авторскими агентами и slash-командами, интеграции через MCP, и SDD-процесс, прошитый в Jira и сборочный пайплайн.
- Авторские агенты команды: code-review (ревью PR), build-verifier (гейт зелёной сборки до мёржа), apps-review-deck (агрегация отзывов из App Store / Play), my-jira-tasks (персональная поверхность Jira).
- Авторские slash-команды: /feature (бутстрап spec → plan → tasks), /commit (conventional + линковка тикетов), /add-screen (скаффолд Compose + KMP-экрана).
- Внедрение Spec-Driven Development в команду — структура .sdd/specs / plans / tasks / progress, у каждой нетривиальной фичи есть spec-документ и исполнимый план.
- MCP-серверы прокинуты в Jira, Atlassian и локальный билд/тест-toolchain — агенты читают тикеты, гоняют чеки и пишут статус без переключений контекста.
Pet-проекты
Что я делаю вне работы.
Личные проекты по JetBrains-плагинам, Wear OS, кросс-платформенной мобилке, инфраструктуре Telegram-ботов и bot-to-bot interop.
IDEgram
JetBrains-плагин, встраивающий Telegram прямо в IDE через TDLib, плюс TypeScript-бэкенд для шифрованного шеринга сниппетов. Два репозитория, шипятся одним продуктом на JetBrains Marketplace.
wearAuth
TOTP-аутентификатор с Wear OS Tile-компаньоном: AES256 локальное хранилище секретов, RFC 6238 коды, QR-онбординг, real-time синхронизация телефон ↔ часы через Wearable Data Layer.
TMDb KMP app
Личный Kotlin Multiplatform-демонстратор вне работы — браузер фильмов / сериалов / персон TMDB на том же архитектурном стеке, что я использую профессионально.
Telegram bot zoo
Несколько продакшн-ботов в Telegram на одном Ubuntu VPS — трекер цен на авиабилеты (Aviasales / Travelpayouts), Ozon-трекер через Playwright-скрапинг, и пара утилитарных ботов поменьше. Один общий стек на всех.
Мост Discord ↔ Telegram
Пара ботов, мостящих Discord-канал и Telegram-чат — Discord-бот общается с Telegram-ботом и форвардит сообщения в обе стороны, давая каждой стороне окно в чужое комьюнити.
Опыт
Где я работал.
-
Senior Mobile Engineer
Май 2019 — настоящее времяEpic Games · ArtStation · Нови-Сад, Сербия · Казань (до 2023)
FTE в Epic Games с февраля 2023 (после релокации). До этого — контрактер на этом же продукте через прокладку (Balistiq, после покупки — Epic Games).
- Ведущий инженер Android-приложения ArtStation: Java → Kotlin, ButterKnife → ViewBinding, Room K-migration, kapt → KSP, модернизация на AGP 8 / Gradle 8 / version catalog.
- Веду следующее поколение мобильных клиентов на Kotlin Multiplatform — Compose Multiplatform (Android) и SwiftUI (iOS), MVI через Decompose + MVIKotlin, Ktor + SQLDelight + Koin.
- Зарелизил create-artwork (multi-step асинхронный upload, drag-to-reorder, drafts) и редизайн OAuth2 / Epic SSO под требования security-команды через Chrome Custom Tabs + deeplinks.
- Со-автор Epic Design System: Figma-driven токены, KMP-tokens + Compose / SwiftUI компоненты, жёсткий паритет API между платформами.
- После перехода в FTE — лидирую мобильную команду: процессы, техническое направление, и при этом продолжаю много писать кода.
- Авторство Python pytest-фреймворка для API-тестов команды и Claude Code агентов / slash-команд, интегрированных с Jira и пайплайном.
Kotlin Kotlin Multiplatform Swift Compose SwiftUI Ktor SQLDelight Decompose MVIKotlin Koin Python pytest -
Mobile Lead / Android Engineer
2017 — Май 2019iXat Taxi · Казань, Россия
- Мульти-арендный Android-проект такси, продававшийся как white-label франшиза: общая бизнес-логика, у каждого таксопарка свой package, бренд и тема.
- Рос из разработчика в тимлида: команда, ответственность за интерфейс заказчик ↔ команда, планирование.
- Шипал множественные white-label клиенты на одной модульной кодовой базе, пока не закончилось финансирование.
Android Java Kotlin Multi-module Gradle REST APIs -
Android Engineer
2015 — 2017Впути · Казань, Россия
- Заказная Android-разработка для внешних клиентов: в основном мульти-модульные приложения с общими инфраструктурными модулями на разных заказчиков.
- Когда студия свернулась, костяк команды продолжил вместе в iXat Taxi.
Android Java Multi-module Gradle
Навыки
Чем я работаю.
Языки
Android
iOS
Multiplatform и архитектура
Сеть и данные
DI и реактивность
Дизайн-системы
Тестирование и SDET
DevOps / build
Auth и безопасность
Процессы и AI tooling
Контакты
Давайте поговорим.
Лучше всего — почтой. Базируюсь в Нови-Саде, рассматриваю позиции в Mobile / KMP.