Select your current position
Pick a role and level — we'll show the growth path, skills and gap analysis.
Development path
Junior
0-2 years
Responsibility: Building UI screens with Jetpack Compose/XML. Working with Retrofit. Adaptive layout design. Writing unit tests. Fixing bugs.
Key skills:
Middle
2-5 years
Responsibility: Designing architecture (MVVM/MVI). Working with Room, Hilt (DI). Navigation Component. Background processing (WorkManager). Code review.
Key skills:
Senior
5-8 years
Responsibility: Application architecture. Performance optimization (Android Profiler). Modularization. Custom Views. Offline-first design.
Key skills:
Lead / Staff
7-12 years
Responsibility: Android platform: CI/CD, modularization, design system. Compose migration. Coordination. Release management. Standards.
Key skills:
Principal
10+ years
Responsibility: Mobile strategy. KMP (Kotlin Multiplatform). Architecture for scale. Google I/O insights.
Key skills:
Gap analysis: skills to develop
To reach the next level you'll need to develop:
Independently implements complex screens with Android Architecture Components. Optimizes performance and memory consumption. Works with asynchronous patterns.
Independently implements ASO strategies for Android apps: conducts keyword analysis using App Annie/Sensor Tower, optimizes store listings for conversion, A/B tests screenshots and descriptions. Understands Google Play ranking factors and review management best practices.
Implements Clean Architecture in Android applications: domain module with UseCase and Repository interfaces without Android dependencies, data module with Room/Retrofit implementations, presentation module with ViewModel and Compose. Correctly maps models between layers (Entity, Domain, DTO), implements DI via Hilt for layer binding, follows the dependency inversion principle.
Implements data fetching with Retrofit and OkHttp, handles pagination and caching strategies. Manages network state with Flow/LiveData. Writes unit tests for repository layer.
Writes Android E2E tests via Espresso and UI Automator: testing complete user flows (registration, purchase, settings), working with RecyclerView via RecyclerViewActions, handling animations through IdlingResource. Uses Espresso-Intents for intent verification, tests deep links, configures test orchestrator for test isolation, works with Compose Testing for Compose screens.
Works with Apollo Kotlin Client in Android projects: normalized cache configuration for offline access, pagination implementation via Relay-style connections, fragment usage for field reuse. Handles GraphQL errors and partial responses, configures custom scalar adapters for dates and ID types, implements optimistic UI updates for mutations.
Implements OAuth 2.0 with PKCE in Android via AppAuth or custom implementation: code_verifier/code_challenge generation, redirect URI handling via deep link, code-to-token exchange. Implements refresh token rotation with concurrent request handling, stores tokens in EncryptedSharedPreferences, configures OkHttp Authenticator for transparent refresh, handles token revocation.
Independently implements complex screens with Kotlin Coroutines and Flow. Optimizes performance and memory consumption. Works with asynchronous patterns.
Independently implements complex screens with Kotlin and Jetpack Compose. Optimizes performance and memory consumption. Works with asynchronous patterns.
Configures Gradle-based CI/CD pipelines with automated testing and signing. Implements build flavors for multiple environments. Sets up artifact distribution via Firebase App Distribution or internal tracks.
Profiles Android apps with Android Profiler to optimize CPU, memory, and network usage. Reduces jank by optimizing RecyclerView and layout hierarchies. Implements lazy loading and efficient bitmap handling.
Implements Android security best practices including EncryptedSharedPreferences and certificate pinning. Configures ProGuard/R8 obfuscation rules. Handles biometric authentication with BiometricPrompt API.
Independently implements complex screens with Navigation and Deep Links. Optimizes performance and memory consumption. Works with asynchronous patterns.
Applies OWASP MASVS recommendations in Android development: reverse engineering protection via ProGuard, root detection via SafetyNet, data leakage prevention through clipboard and screenshots. Implements certificate pinning, configures Network Security Config for cleartext traffic restriction, performs basic security audits using MobSF and JADX.
Sets and tracks performance budgets for Android applications: cold start < 2s, APK size < 15MB, memory < 200MB, frame render < 16ms. Configures Macrobenchmark tests for startup and scroll performance, integrates Firebase Performance Monitoring for production metrics, analyzes APK size via Android Size Analyzer, optimizes resources (WebP, vector drawables, resource shrinking).
Tests Android-specific scenarios: behavior during configuration changes (rotation, locale change), operation under limited memory (onTrimMemory), lifecycle correctness (onSaveInstanceState/onRestoreInstanceState). Tests across different API levels on emulators, tests permissions flow, deep links, push notifications, camera and geolocation in test environments.
Implements WebSocket client in Android via OkHttp: connection lifecycle management tied to Activity/Fragment lifecycle, automatic reconnect with exponential backoff, message serialization/deserialization via Moshi. Handles connection states (connecting, connected, disconnecting), implements heartbeat/ping-pong, buffers messages during connection loss.
Understands Android memory model: heap vs stack, garbage collection (ART GC), and object lifecycle. Identifies memory leaks using Android Profiler and LeakCanary. Manages bitmap memory efficiently with proper recycling and sampling. Uses WeakReferences for caches and avoids Activity context leaks in long-lived objects.
Career transitions
Possible career trajectories for the Android Developer role
↔️ Lateral 1
Adjacent roles for a lateral move
╨Я╨╡╤А╨╡╤Е╨╛╨┤ ╨▓ ╨║╤А╨╛╤Б╤Б-╨┐╨╗╨░╤В╤Д╨╛╤А╨╝╤Г ╤З╨╡╤А╨╡╨╖ Flutter