Compose screens and navigation
Writes Jetpack Compose UI with hoisted state, stable parameters and a navigation graph that survives process death and configuration changes.
Hire · Native Android
Senior Android engineers who sit inside your squad, commit to your Gradle project and carry Kotlin features from ticket to staged rollout on Google Play. Candidates reach your shortlist only after a paid Compose exercise involving coroutines, WorkManager and a stubborn low-memory device.
Kotlin and Compose exercise, paid
Senior, lead and staff engineers
Play Console rollouts handled in-house
On your team
Writes Jetpack Compose UI with hoisted state, stable parameters and a navigation graph that survives process death and configuration changes.
Structures repositories around Kotlin Flow, scopes work to the right lifecycle and keeps the main thread free of disk and network calls.
Moves sync, uploads and reminders onto WorkManager with sensible constraints, respecting Doze, App Standby buckets and foreground service rules.
Tests against your real minSdk, small screens, foldables and vendor skins that kill background processes aggressively.
Manages app bundles, signing keys, staged rollouts, Data safety forms and target API deadlines so updates are never blocked.
Plenty of Android candidates can build a Compose screen from a sample. Fewer can say why a list recomposes on every scroll, or which coroutine scope a repository call should run in. Ask how they would stop a Flow collector from running while the app sits in the background; the answer reveals whether they understand lifecycle-aware collection.
Probe background behaviour too. A strong engineer can explain why a periodic job silently stopped on one manufacturer’s phone and what they changed.
Vetting
Sealed classes for UI state, null safety at API boundaries, extension functions used with restraint, and structured concurrency instead of GlobalScope.
Recomposition scoping, remember and derivedStateOf, lazy list keys, and reading Layout Inspector recomposition counts.
ViewModel with SavedStateHandle, Room migrations, DataStore, and dependency injection through Hilt or Koin.
Knows which work belongs in WorkManager, which needs a typed foreground service, and how exact alarms are restricted on recent Android versions.
Baseline Profiles, Macrobenchmark, StrictMode and Android Studio profilers to cut cold start time and dropped frames.
JUnit and Turbine for Flow, Compose UI tests with semantics matchers, and Robolectric or emulator runs wired into CI.
Work sample
We hand over a Compose feed that recomposes on every scroll and leaks a collector; the candidate finds both causes and explains the fix.
They implement an upload that retries with backoff through WorkManager, survives a reboot and reports progress to the UI, all within one paid day.
They add notification or location permission on Android 13 and above, covering rationale, denial and the settings redirect.
A call on signing, version codes, staged percentages and how they would halt a release that spikes crashes in Android vitals.
Levels
Delivers Kotlin features end to end in an established module structure and gives useful review on Compose and coroutine code.
Owns Gradle modularisation, CI build times, release trains and the code conventions the Android team follows.
Plans migrations such as Views to Compose or a multi-module split, and decides when Kotlin Multiplatform sharing is worth it.
Bring in a senior when the app already has clear modules and you need more delivery. A lead earns their place when builds are slow, releases are manual or each feature lands in a different style. A staff engineer is for structural calls such as finishing a Compose migration or sharing business logic with iOS through Kotlin Multiplatform.
Other options
If parity across iOS and Android matters more than platform depth, a Flutter engineer covers both from Dart.
Open registerTeams already fluent in React and TypeScript often move faster with a React Native hire.
Open registerIf you have not decided between native and cross-platform, start with a mobile generalist or small team.
Open registerAndroid runs on thousands of device models with different memory, screen shapes and OEM tweaks. We give candidates a scenario on a low-RAM device because that is where leaked collectors, oversized bitmaps and process death show up first. Engineers who test only on a flagship emulator tend to ship surprises.
Ask for a small fix shipped to the internal testing track by the end of week one, so signing, CI and Play access are proven early. In week two, give them a feature that touches background work or a permission, with acceptance criteria written for an older Android version as well as the latest.
FAQ
Yes. Most production apps mix both, so candidates are expected to maintain View-based screens and interoperate with Compose through ComposeView and AndroidView while a migration is under way.
They should. Vendor battery optimisers on certain brands stop work that stock Android would allow, and we expect a senior engineer to design around that with WorkManager constraints and honest user messaging.
With the access you grant, they can prepare bundles, run internal and staged tracks, answer policy declarations and watch Android vitals after release.
Works alongside
Agree API contracts, analytics events and feature flags with the Swift side so both apps behave the same.
Open registerA JVM backend engineer shares tooling and can shape endpoints around what the Android client really needs.
Open registerRun exploratory passes across a matrix of OEM devices and Android versions before each staged rollout widens.
Open registerProduct delivery
Primary sources
Dated official documentation, standards, and research that support the factual claims on this page.
Google’s guidance on WorkManager, foreground services and execution limits.
Official advice on recomposition, stability and Baseline Profiles.
How to read this page
Scope, cost and timeline figures are planning guidance until confirmed in a written proposal. Diagrams and screens are illustrations, not client deliverables, and source-code rights and handover follow the signed agreement. See the delivery process and the full disclaimer.
Next decision
Define outcomes, constraints, evidence, rights and handover before delivery begins.
Commercial rights, repositories, environments, documentation, acceptance and handover remain contract-defined.