Job Description
We're hiring a Senior Android Engineer to own and evolve our existing native
Android application, a production app already in users' hands while we make a
deliberate strategic shift toward React Native as our cross-platform
direction. You'll be a proper Android expert first, and a capable React Native
engineer alongside that. Both matter; neither is optional.
Responsibilities
Native Android (the core of the role):
-
Own, evolve, and harden our existing Kotlin Android application performance,
stability, architecture, modularization, build health.
-
Ship features end-to-end: from product/design intent through to release,
monitoring, and the bug reports that come back two weeks later.
-
Drive architectural decisions within the app (MVVM / clean architecture,
modularization, DI, navigation, state management) and defend them with
reasoning, not preference.
-
Keep the Jetpack Compose surface area moving forward without breaking the
Views/DataBinding code that still works.
-
Lead code quality: reviews, automated testing, CI health, release hygiene.
React Native (the strategic direction):
-
Contribute to and help shape our React Native footprint as we migrate and
build cross-platform.
-
Share patterns, components, and infrastructure between native Android and
React Native where it makes sense and resist sharing where it doesn't.
-
Bring opinions on the bridge layer, native modules, and the realistic limits
of cross-platform.
AI-Supported Delivery:
-
Use Claude Code, Superpowers, and comparable AI coding agents and skill
frameworks as part of your normal workflow for scoping, scaffolding,
refactoring, code review, test generation, and documentation.
-
Be the person who improves how the team uses these tools: better prompts,
better skills, better guardrails, better judgment about when not to use
them.
-
Maintain the engineering bar. AI accelerates good engineers; it doesn't
replace the thinking, and you should treat its output the same way you treat
a junior PR review, verify, and take responsibility.
API Integration & Real-time:
-
Integrate GraphQL alongside REST APIs; pick the right tool for each surface.
-
Build event-driven and real-time features using Pub/Sub patterns and
WebSockets where they're warranted.
-
Work cleanly against our FHIR-shaped domain data on the client side the data
is structured, the UI shouldn't fight it.
Qualifications
-
6–9 years of Android development experience with a real portfolio of
production apps you've owned, not just contributed to.
-
Expert-level Kotlin;
comfortable in Java for the parts of the world that still need it.
-
Deep knowledge of the Android ecosystem Jetpack (ViewModel, LiveData/Flow,
Room, WorkManager, Navigation), Jetpack Compose, and the older
Views/DataBinding stack that real codebases still contain.
-
Production experience with React Native not "I built a side project once,"
but features shipped to real users.
-
Strong grip on architecture: MVVM / clean architecture, modularization, DI
(Hilt/Dagger/Koin), state management, navigation at scale.
-
API integration experience: GraphQL (Apollo or equivalent) and REST
(Retrofit, Jackson/Gson).
-
Hands-on experience building event-driven and real-time mobile features
using Pub/Sub patterns and WebSockets connection lifecycle, reconnection,
backpressure, offline behavior, the things that bite in production.
-
Testing is non-negotiable. Strong, demonstrable habits around unit testing
(JUnit), integration testing, and UI testing (Espresso/Robolectric/Compose
testing). We take this seriously; sloppy or skipped testing isn't compatible
with this role.