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.