Designs algorithmically optimal solutions for Android applications: efficient search, sorting large lists in RecyclerView, optimizing graph traversal for navigation. Conducts code reviews focusing on O-notation, trains the team on choosing data structures for specific mobile scenarios — caching, pagination, offline-first approaches.
Roles · Android Developer · Lead
What a Lead } should know
35 core skills, 52 in total. Expectations per skill, and what changes at the next level.
This page lists what a Lead } 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 Lead
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 8
Establishes asynchrony strategy for Android projects: Kotlin Coroutines usage standards, dispatcher selection rules (Main, IO, Default), error handling patterns in suspend functions. Implements structured concurrency, defines lifecycle-aware coroutine standards via viewModelScope and lifecycleScope, trains the team on Flow operators for reactive UIs.
Builds a code quality system for the Android team: detekt and ktlint configuration with custom rules, SonarQube integration for Kotlin, mandatory code review checklists. Implements Android-specific lint rules, KDoc documentation standards, test coverage metrics. Trains the team on clean Kotlin code principles and architectural conventions.
Defines data structure usage standards for Android projects: SparseArray instead of HashMap for int keys, ArrayDeque for event queues, TreeMap for sorted caches. Reviews team architectural decisions, trains on choosing optimal Kotlin collections for specific scenarios — StateFlow, SharedFlow, Channel.
Implements and adapts design patterns for the Android team: Repository for data management, Observer via LiveData/StateFlow, Factory for Fragment and ViewModel creation. Develops internal guides on pattern usage in the Android context — Dependency Injection via Hilt, Builder for component configuration, Strategy for A/B testing.
Manages memory in Android team applications: Bitmap handling standards (inSampleSize, pools), profiling via Memory Profiler in Android Studio, leak prevention strategies via LeakCanary. Defines object lifecycle rules, WeakReference patterns for callbacks, GC pause optimization for smooth UI rendering.
Manages multithreading in Android team applications: Main thread rules, context switching standards via Dispatchers, thread-safe patterns for SharedPreferences and database work. Implements diagnostic tools — StrictMode, ANR analysis, thread profiling in Android Studio for detecting locks and deadlocks.
Ensures SOLID principle adherence in the Android codebase: single responsibility for ViewModel and UseCase, open-closed via Repository abstractions, interface segregation for inter-module contracts. Conducts architectural reviews focusing on OOP principles, establishes inheritance and composition standards for Kotlin classes in the team.
Frontend Development · 1
Defines networking layer architecture for Android projects: Repository pattern standards, data synchronization strategies (periodic, push-based, conflict resolution). Implements network error monitoring via Firebase Crashlytics, configures network inspection in CI, trains the team on effective data loading patterns considering mobile constraints.
Mobile Development · 8
Defines Android application architectural standards: choosing between MVVM and MVI for different screens, feature module decomposition rules, contracts between layers (domain, data, presentation). Implements multi-module architecture with proper dependency inversion, configures Hilt modules for DI, conducts architectural reviews for all new features.
Defines ASO standards for mobile product portfolio: establishes store listing optimization workflows, coordinates ASO with marketing and product teams, implements cross-app keyword strategies. Conducts ASO audits and defines the technical roadmap for store presence.
Defines Jetpack Compose standards for the Android team: composable function architecture, state hoisting and side-effect rules, recomposition strategies for optimal performance. Implements a Compose-based design system (Material 3 customization), configures preview configurations, trains the team on correct patterns — remember, derivedStateOf, LaunchedEffect.
Establishes coroutine standards for the Android team: structured concurrency rules, choosing between StateFlow and SharedFlow for UI state, error handling patterns via CoroutineExceptionHandler. Implements coroutine testing via Turbine and TestDispatcher, defines cancellation and timeout rules, trains the team on advanced Flow operators.
Defines CI/CD strategy for the Android team: multi-module pipelines with parallel builds, detekt/lint integration in PR checks, automatic release train to Play Store. Implements remote Gradle build cache, configures snapshot testing in CI, defines branch protection and merge policy standards for Android repositories.
Defines performance strategy for the Android team: performance budgets (startup < 1s, frame time < 16ms), Macrobenchmark implementation for automatic regression tracking. Configures Firebase Performance Monitoring for production metrics, defines SLAs for ANR rate and crash rate, trains the team on profiling and optimization using Perfetto and System Trace.
Defines security standards for the Android team's applications: OWASP MASVS compliance checklist, security review processes for each release, secrets management strategy (API keys, signing keys). Implements SafetyNet/Play Integrity API for attestation, configures Network Security Config, trains the team on protecting against typical attacks — MITM, injection, data leakage.
Defines Android application navigation architecture: Navigation Component standards with Safe Args, deep linking strategy, back-stack management rules for complex flows. Implements type-safe navigation in Compose, configures multi-module navigation via navigation graphs, trains the team on patterns — nested graphs, conditional navigation, results between screens.
API & Integration · 4
Defines documentation standards for the Android team: ADR templates for architectural decisions, mandatory KDoc coverage for public APIs, documentation review processes during PRs. Implements Dokka generation in CI with publishing to an internal portal, coordinates API contract documentation with the backend team, trains the team on writing clear technical documentation.
Defines GraphQL strategy for the Android team: query and mutation writing standards, fragment and variable usage rules, Apollo module architecture in multi-module applications. Coordinates schema evolution with the backend team, implements schema validation in CI, trains the team on advanced patterns — deferred queries, @defer, custom fetch policies.
Defines API integration standards for the Android team: unified networking module with typed errors, API version migration strategy, interaction contracts with the backend team. Implements API mocking via MockWebServer for backend-independent development, configures contract testing, trains the team on REST patterns in the context of mobile constraints.
Defines real-time communication standards for the Android team: messaging layer architecture, conflict handling protocols for offline-to-online transitions, graceful degradation strategies for unstable networks. Implements WebSocket metrics monitoring (latency, reconnects, message loss), configures load testing for real-time features.
DevOps & CI/CD · 1
Defines CI/CD strategy for the Android team: standard workflow templates (reusable workflows), branch protection policies, merge queue for stable main. Implements Gradle Enterprise / Develocity for build analytics, configures self-hosted runners with Android SDK for faster builds, defines CI time SLA (PR check < 15 min), trains the team on pipeline optimization.
Testing & QA · 4
Defines E2E strategy for the Android team: critical user journeys for mandatory E2E coverage, execution time budget (<30 min), flaky test processes (quarantine, fix SLA). Implements visual regression testing for UI consistency, configures nightly E2E runs on Firebase Test Lab across a device matrix, trains the team on writing stable and maintainable E2E tests.
Defines integration testing strategy for the Android team: testing pyramid (unit/integration/e2e ratio), feature module testing standards, smoke testing processes before release. Implements automatic integration test runs on real devices via Firebase Test Lab, configures flaky test detection and quarantine, trains the team on effective integration patterns.
Defines mobile testing strategy for the Android team: device matrix for mandatory testing (top 20 devices by analytics), regression testing processes before release, accessibility testing standards. Implements automated compatibility testing, configures crash-free rate monitoring by device and API level, coordinates test case prioritization with the QA team.
Defines unit testing strategy for the Android team: coverage standards (>80% for domain/data layers), mandatory tests in PR checks, test templates for typical components (ViewModel, UseCase, Repository). Implements TDD culture in the team, configures coverage gates in CI, trains developers on effective testing — proper granularity, testing behavior rather than implementation.
Security · 2
Defines authentication standards for the Android platform: unified auth module for all applications, SSO strategy between apps (via Custom Tabs or shared Keystore), key rotation processes. Implements Passkeys/FIDO2 via Credential Manager API, coordinates auth standards with the backend team, trains the team on security aspects of mobile authentication.
Defines secure coding standards for the Android team: security coding guidelines, mandatory security review for auth/payment/data modules, pre-release checklists. Implements SAST tools (Detekt security rules, MobSF) in CI, conducts security training for developers, coordinates vulnerability fixes with severity-based prioritization.
AI-Assisted Development · 2
Defines AI assistant usage standards for the Android team: recommended prompts for typical tasks (feature template, test generation, code review), security guidelines (do not share secrets, API keys). Implements AI into team processes — auto-generating PR descriptions, changelogs, module documentation, trains the team on effective prompt patterns for mobile development.
Defines GitHub Copilot usage policy for the Android team: guidelines for accepting/rejecting suggestions, security rules (do not commit secrets from suggestions), code review standards for AI-generated code. Analyzes Copilot productivity metrics (acceptance rate, time saved), implements Copilot Enterprise features for the team, trains on effective usage patterns in mobile development.
Architecture & System Design · 2
Defines Clean Architecture standards for the Android team: module templates (feature-api/feature-impl/feature-test), dependency rules between modules, architectural review processes. Configures Gradle convention plugins to enforce architectural rules, implements ArchUnit for automatic dependency verification, trains the team on Clean Architecture principles and trade-offs.
Defines architectural standards for the Android team: reference architecture for new applications, module decomposition and dependency rules, architectural review and ADR processes. Conducts design reviews for complex features, trains the team on design principles, balances ideal architecture with pragmatic delivery considering business priorities.
Version Control & Collaboration · 2
Defines code review process for the Android team: mandatory reviewer rules (CODEOWNERS), review time SLA (< 24h), checklists for different change types (feature, bugfix, refactoring, migration). Implements automated review via Danger/Detekt PR integration, balances thoroughness with velocity, trains the team on constructive code review focusing on learning over criticism.
Defines Git standards for the Android team: branching strategy matching the release train (weekly/biweekly Play Store releases), merge policies for protected branches, commit message conventions (Conventional Commits). Implements monorepo or multi-repo strategy for multiple Android applications, configures CODEOWNERS for modules, trains the team on advanced Git workflows and conflict resolution.
Performance Engineering · 1
Defines performance strategy for the Android team: SLAs for key metrics (startup P95 < 1.5s, crash-free > 99.9%, ANR-free > 99.5%), performance review processes before release. Implements performance testing in CI pipeline, configures dashboards with production metrics by device and API level, defines performance culture — team training, performance champions, regular audits.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Principal
0 skills get a higher expectation or become core when moving from Lead to Principal. The biggest jumps first.
} in the open competency matrix: 52 skills across 5 levels. The matrix is free for individuals and stays free.