Dmitryi Kosarev

Senior Mobile Engineer · ArtStation @ Epic Games

9+ years building Android products end-to-end. Today: leading the next-gen ArtStation client on Kotlin Multiplatform — Compose Multiplatform on Android, SwiftUI on iOS — while keeping the native Android app shipping to 300K+ users.

Where I've shipped.

Senior Mobile Engineer May 2019 — Present
Epic Games · ArtStation
Novi Sad, Serbia · Kazan (until 2023)
Full-time at Epic Games since Feb 2023 (post-relocation). Previously contractor on the same product under Balistiq, kept through the Epic Games acquisition.
  • Lead engineer on the ArtStation Android app: drove the Java → Kotlin migration, ButterKnife → ViewBinding rewrite, Room K-migration, kapt → KSP, AGP 8 / Gradle 8 / version-catalog modernization.
  • Building the next-gen ArtStation mobile clients on Kotlin Multiplatform with Compose Multiplatform (Android) and SwiftUI (iOS) — MVI via Decompose + MVIKotlin, Ktor + SQLDelight + Koin.
  • Shipped create-artwork (multi-step async upload pipeline, drag-to-reorder, drafts) and the security-driven OAuth2 / Epic SSO redesign through Chrome Custom Tabs + deeplinks.
  • Co-built the Epic Design System: Figma-driven token system, KMP tokens + Compose / SwiftUI components, strict Android ↔ iOS API parity.
  • After FTE transition, also leads the mobile team: sets up process, runs technical direction, and still ships features end-to-end.
  • Authored the team's Python pytest API test framework and Claude Code agents / slash commands integrated with Jira and the build pipeline.
Stack: Kotlin · Kotlin Multiplatform · Swift · Compose · SwiftUI · Ktor · SQLDelight · Decompose · MVIKotlin · Koin · Python · pytest
Mobile Lead / Android Engineer 2017 — May 2019
iXat Taxi
Kazan, Russia
  • Multi-tenant Android taxi platform sold as a white-label franchise: shared business logic, per-fleet package name, branding, and theme.
  • Grew from individual contributor to mobile lead — managed a small team, owned the client ↔ engineering interface, drove project planning.
  • Shipped multiple white-label clients off the same modular codebase until project funding wound down.
Stack: Android · Java · Kotlin · Multi-module Gradle · REST APIs
Android Engineer 2015 — 2017
Vputi
Kazan, Russia
  • Contract Android development for external clients: most projects were multi-module apps sharing infrastructure modules across customers.
  • When the studio wound down, the core team continued together into iXat Taxi.
Stack: Android · Java · Multi-module Gradle

What I'm actually shipping.

ArtStation Android → KMP
Rebuilding the ArtStation mobile clients on a shared Kotlin Multiplatform core (home / discover / project / profile / messaging / comments / login / collections / deeplinks / create-artwork) with Compose Multiplatform on Android and SwiftUI on iOS.
Tech: Kotlin Multiplatform · Compose MP · SwiftUI · MVI · Decompose · Ktor · SQLDelight
Epic Design System (EDS)
Cross-platform Kotlin Multiplatform design system: semantic tokens, enum-first component APIs, Figma-naming 1:1, strict Android ↔ iOS parity.
Tech: Design Tokens · Compose · SwiftUI · XCFramework · Theming
ArtStation API test framework
Python + pytest framework for the ArtStation mobile-backend: fluent Pydantic-validated assertions, role-matrix selection, parallel xdist with per-worker isolated staging users.
Tech: Python · pytest · pytest-xdist · Pydantic 2 · Faker · GitHub Actions
AI-assisted engineering & Spec-Driven Development
Daily-driver setup for the mobile team: Claude Code with custom-authored agents and slash commands, MCP server integrations, and a Spec-Driven Development workflow integrated with Jira and the build pipeline.
Tech: Claude Code · MCP · Spec-Driven Development · AI agents · Jira integration · DX tooling

What I build outside work.

IDEgram
JetBrains IDE plugin that embeds Telegram directly inside the IDE via TDLib, plus a TypeScript backend for encrypted snippet sharing. Two repos shipping as one product on the JetBrains Marketplace.
Stack: Kotlin · IntelliJ Platform SDK · Jewel / Compose · TDLib (JNI) · TypeScript · Node + SQLite · Caddy · Ubuntu VPS
wearAuth
TOTP authenticator with a Wear OS Tile companion: AES256 local secret storage, RFC 6238 codes, QR onboarding, real-time sync between phone and watch via the Wearable Data Layer.
Stack: Kotlin · Wear OS · Wearable Data Layer API · Material 3 · AES256 · Google Play Billing
TMDb KMP app
Personal Kotlin Multiplatform demonstrator outside Epic work — TMDB movie / TV / person browser with the same architecture stack I use professionally.
Stack: Kotlin Multiplatform · Compose Multiplatform · MVIKotlin · Decompose · Ktor 3 · Koin · Coil 3
Telegram bot zoo
A handful of production Telegram bots running on a single Ubuntu VPS — flight-price tracker (Aviasales / Travelpayouts), Ozon price tracker via Playwright scraping, and a few smaller utility bots. All same baseline stack.
Stack: Python 3.11+ · aiogram 3 · APScheduler · SQLite / aiosqlite · Playwright · httpx · DigitalOcean / Ubuntu
Discord ↔ Telegram bridge bot
A bot pair bridging a Discord channel and a Telegram chat — a Discord bot talks to a Telegram bot and forwards messages both ways, giving each side a window into the other community.
Stack: Python · discord.py · aiogram · Bot interop

Stack I work in.

Languages
Kotlin · Kotlin Multiplatform · Swift · Java · Python · Gradle Kotlin DSL
Android
Jetpack Compose · Material 3 · Android SDK · ViewBinding · RecyclerView · WorkManager · AndroidX Lifecycle · AndroidX Navigation · ExoPlayer / Media3 · Glide · Coil · ARCore
iOS
SwiftUI · UIKit · Swift Package Manager · CocoaPods · XCFramework · Kotlin/Native interop · xcodegen · xcodebuild
Multiplatform & architecture
Kotlin Multiplatform · Compose Multiplatform · Decompose · MVIKotlin · MVI · Clean Architecture · Modularization · Essenty
Networking & data
Ktor · Retrofit · OkHttp · kotlinx.serialization · Gson · REST API design · SQLDelight · Room · multiplatform-settings · Offline-first
DI & reactive
Koin · Dagger 2 · KSP · Kotlin Coroutines · Flow · RxJava 2
Design systems
Design Tokens · Figma-to-code · Theming · Component libraries · Accessibility
Testing & SDET
pytest · pytest-xdist · Pydantic · Faker · JUnit · MockK · kotlin-test · Ktor MockEngine · Espresso · Firebase Test Lab · Allure
DevOps / build
GitHub Actions · Gradle 8 + version catalogs · Spotless / ktlint · Kover · ProGuard / R8 · Firebase Crashlytics · Firebase Cloud Messaging
Auth & security
OAuth 2.0 · OpenID Connect · 2FA · AppAuth · Google Identity · Facebook Login · Epic Games SSO · JWT
Process & AI tooling
Spec-Driven Development (SDD) · .sdd/specs · plans · tasks · progress · Claude Code · Custom agents authoring · Slash commands authoring · MCP servers · MCP ↔ Jira / Atlassian · MCP ↔ build pipeline · AI-assisted code review · Cursor · Technical documentation