Applies algorithmic thinking to Android performance optimization: efficient sorting/filtering for large RecyclerView datasets, diff algorithms for ListAdapter updates, scheduling algorithms for background work coordination. Designs efficient algorithms for offline data synchronization and conflict resolution.
Roles · Android Developer · Senior
What a Senior } should know
36 core skills, 53 in total. Expectations per skill, and what changes at the next level.
This page lists what a Senior } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Frontend Development, Mobile Development.
Core skills for a Senior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 8
Designs async architectures for Android: coroutine-based data layer with proper scope management, Flow-based reactive UI updates, Isolate strategies for CPU-bound operations. Mentors team on structured concurrency and avoiding coroutine leaks.
Designs code quality standards for Android projects: Kotlin coding conventions, Compose best practices, modularization strategies for large apps. Configures Detekt/ktlint with custom rules. Refactors legacy Activity-based code to modern architecture patterns. Establishes PR review criteria for UI consistency.
Selects optimal data structures for Android applications: sparse arrays, Room entity relationships, efficient RecyclerView data sources for large lists. Optimizes in-memory caching with LRU strategies for image and data stores. Designs offline-first data models with proper sync conflict resolution structures.
Has deep expertise in design patterns for Android: designs clean architecture with dependency injection and use case patterns, implements reactive data flow architectures, optimizes pattern usage for Android lifecycle and performance. Mentors team on architectural patterns for scalable Android applications.
Designs memory-efficient architectures for Android applications: custom memory pools for RecyclerView, efficient image loading pipelines (Coil/Glide internals), and proactive OOM prevention. Implements memory-aware caching strategies with LruCache and DiskLruCache. Optimizes for low-memory devices using onTrimMemory callbacks. Mentors team on memory profiling and leak detection workflows.
Has deep expertise in Android multithreading: designs coroutine-based architectures with proper scope management, implements concurrent data processing with Flow operators, optimizes thread pool configurations for Android runtime. Mentors team on structured concurrency patterns for complex Android applications.
Applies OOP/SOLID in Android architecture: clean separation with MVVM/MVI patterns, interface segregation for repository contracts, dependency injection with Hilt/Dagger. Designs modular Android apps with proper abstraction layers for testability, platform-specific implementations, and feature module independence.
Frontend Development · 1
Designs the Android application's data-fetching layer: OkHttp interceptor configuration for authorization and logging, response caching strategies, pagination handling via Paging 3. Implements offline-first approach with Room as single source of truth, configures retry policies and exponential backoff, optimizes network requests through batching and deduplication.
Mobile Development · 8
Designs mobile application architecture with Android Architecture Components. Optimizes performance for low-end devices. Implements CI/CD for mobile development. Mentors the team.
Designs comprehensive ASO strategy for Android products: builds keyword tracking dashboards, implements automated store listing experiments, analyzes competitor ASO tactics. Optimizes conversion funnels from impression to install and mentors team on ASO practices.
Designs mobile application architecture with Kotlin and Jetpack Compose. Optimizes performance for low-end devices. Implements CI/CD for mobile development. Mentors the team.
Designs mobile application architecture with Kotlin Coroutines and Flow. Optimizes performance for low-end devices. Implements CI/CD for mobile development. Mentors the team.
Configures CI/CD for Android projects: GitHub Actions/Bitrise pipelines with Gradle caching, automatic debug/release APK and AAB builds, unit and instrumented test execution. Configures signing via Gradle and keystore storage in CI secrets, sets up automatic deployment to Firebase App Distribution for testers, optimizes build times.
Profiles and optimizes Android application performance: analysis via Android Profiler (CPU, Memory, Network), cold/warm start optimization through App Startup library, eliminating jank in RecyclerView through DiffUtil and ViewHolder reuse. Configures baseline profiles to accelerate JIT, optimizes Compose recomposition through stability annotations.
Implements Android application security: data encryption via EncryptedSharedPreferences and EncryptedFile, certificate pinning via OkHttp CertificatePinner, reverse engineering protection through ProGuard/R8 obfuscation. Configures biometric authentication via BiometricPrompt API, implements secure token storage in Android Keystore, audits dependencies for vulnerabilities.
Designs mobile application architecture with Navigation and Deep Links. Optimizes performance for low-end devices. Implements CI/CD for mobile development. Mentors the team.
API & Integration · 4
Designs documentation for Android SDK and internal libraries: auto-generating Dokka documentation from KDoc, creating code samples and integration guides. Documents architectural decisions through ADRs (Architecture Decision Records), maintains migration guides for API updates, creates interactive examples through Android sample apps for SDK consumers.
Designs Android application GraphQL integration: caching strategy (cache-first, network-first, cache-and-network), subscription configuration via WebSocket for real-time updates, query complexity optimization. Implements persisted queries to reduce traffic, configures Apollo codegen in CI, profiles and optimizes Apollo cache for large data graphs.
Architecturally designs the Android application's network layer: Repository abstraction over Retrofit with unified error handling, offline-first strategies via NetworkBoundResource pattern, client-side API versioning. Optimizes network requests — batching, deduplication of concurrent requests, conditional requests via ETag/Last-Modified, configures connection pooling in OkHttp.
Designs real-time communication in Android applications: WebSocket service architecture with Foreground Service for stable connection, message delivery strategies (at-least-once, exactly-once), synchronization with local Room database. Implements protocols over WebSocket (STOMP, custom binary), optimizes battery through adaptive heartbeat and Doze-mode compatibility.
DevOps & CI/CD · 1
Optimizes the Android project's CI/CD pipeline: Gradle build cache with remote storage, parallel module builds, conditional test execution based on changed files (path filters). Configures automated release pipeline — bump version, generate changelog, upload to Play Store via Fastlane/Gradle Play Publisher, integrates Firebase App Distribution for alpha/beta tracks.
Testing & QA · 4
Designs Android E2E test infrastructure: Page Object pattern for Espresso tests, Robot Pattern for readable tests, test data strategy (seeding, cleanup). Configures parallel execution on Firebase Test Lab with sharding, implements screenshot testing via Paparazzi, optimizes test stability — retry strategies, custom IdlingResources for async operations.
Designs Android application integration testing strategy: end-to-end tests of the data layer (API→Repository→Room), Room migration testing via MigrationTestHelper, contract testing with backend via Pact. Configures test environment with realistic data, optimizes integration test startup time, implements snapshot testing for complex state machines.
Designs mobile-specific testing strategy for Android: testing on real devices via Firebase Test Lab (device matrix), monkey testing with random seed arguments, performance testing via Macrobenchmark. Configures accessibility testing via Accessibility Scanner, verifies backward compatibility across Android API 24-34, implements network condition testing (slow, offline).
Designs unit testing strategy for Android applications: test architecture with shared fixtures and builders, fakes vs mocks for the Repository layer, testing complex coroutine scenarios (timeout, cancellation, exception propagation). Configures snapshot testing for ViewModel states, implements mutation testing via Pitest, optimizes test speed through parallel execution.
Security · 3
Designs Android application auth architecture: multi-provider authentication (Google Sign-In, Facebook, Apple via Credential Manager), biometric authentication via BiometricPrompt with crypto object. Implements session management with secure token storage in Android Keystore, configures token binding, designs graceful auth degradation and offline authentication via cached credentials.
Ensures OWASP MASVS-L2 compliance for Android applications: full audit against MASVS checklist, anti-tampering protection implementation, runtime application self-protection (RASP). Configures obfuscation via R8 with custom rules, implements jailbreak/root detection with graceful degradation, conducts threat modeling for mobile attack vectors, integrates SAST/DAST into CI pipeline.
Designs Android application security patterns: secure data storage architecture (Keystore + EncryptedFile), IPC protection through signature-level permissions, anti-debugging and anti-tampering protection. Implements code obfuscation strategy via R8 with custom dictionary, implements SSL pinning with backup pins, configures ProGuard rules for security-critical classes, conducts security code reviews.
AI-Assisted Development · 2
Integrates AI assistants into the Android development workflow: auto-generating boilerplate (feature module scaffolding, DI setup, Navigation graph), creating architectural documents and ADRs. Uses AI for code review preparation, performance trace analysis, Espresso test generation from user stories. Critically evaluates AI recommendations on Android APIs — checks deprecated APIs and compatibility.
Maximizes productivity through Copilot in Android development: workspace-aware code generation for multi-module projects, boilerplate creation (DI modules, Navigation setup, feature scaffolding). Configures Copilot workspace for Android context, uses Copilot Chat for architectural discussions, critically evaluates suggestions — checks thread safety, lifecycle awareness, memory leaks.
Architecture & System Design · 2
Designs Clean Architecture for complex Android applications: multi-module implementation with API/impl modules for each feature, shared domain module strategy, cross-cutting concerns architecture (logging, analytics, error handling). Optimizes the balance between architectural purity and pragmatism — when shortcuts are acceptable, how to manage mapper boilerplate, strategy for legacy code.
Designs multi-module Android application architecture: decomposition into feature/core/shared modules, defining inter-module contracts through API modules, navigation strategy between feature modules. Designs scalable solutions for 20+ modules, defines bounded context boundaries, applies DDD principles for complex domains in mobile context.
Version Control & Collaboration · 2
Conducts deep architectural review of Android code: evaluating solution scalability, checking edge cases (process death, config changes, low memory), analyzing performance implications. Reviews cross-module changes focusing on API stability, checks security aspects (data leakage, insecure storage), mentors through PR comments, creates templates for common review findings.
Designs Git strategies for the Android team: branching model (GitFlow/Trunk-based) accounting for Play Store release cadence, release branch strategy for hotfixes, squash merge rules for clean history. Configures advanced Git hooks (commit message validation, build checks), manages submodules for shared libraries, optimizes repository size for multi-module Android projects.
Performance Engineering · 1
Designs performance budget system for Android applications: automated monitoring via CI (Macrobenchmark regression detection), alerts on metric degradation, per-device-category budgets (low-end vs flagship). Profiles complex scenarios via Perfetto/System Trace, optimizes Compose recomposition, configures R8 for APK minimization, implements baseline profiles for critical paths.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Lead
51 skills get a higher expectation or become core when moving from Senior to Lead. The biggest jumps first.
- Algorithms & Complexity: Advanced → Expert
- Android Architecture Components: Advanced → Expert
- API Documentation: Advanced → Expert
- App Store Optimization (ASO): Advanced → Expert
- Async Programming: Advanced → Expert
- ChatGPT / Claude: Advanced → Expert
- Clean Architecture: Advanced → Expert
- Code Quality & Refactoring: Advanced → Expert
- Code Review: Advanced → Expert
- Data Fetching: Advanced → Expert
} in the open competency matrix: 53 skills across 5 levels. The matrix is free for individuals and stays free.