The RoleYou'll join the Unified Experience team - the group responsible for building seamless collector journeys across Fanatics Live, Marketplace, Instant Rips, Collections, Topps, and future experiences.
This is the Android seat on that team, and it's a systems role as much as a feature role. You'll own the shared Android foundation that multiple apps and multiple feature teams depend on: common identity and session handling, shared Compose components and modules, consistent navigation and deep linking between surfaces, and the migration paths that get us from where each app is today to where the unified experience needs it to be. When you get it right, four teams ship faster and collectors stop noticing the seams.
The Android stack is modern by design: Kotlin and Jetpack Compose throughout, Coroutines and Flow for concurrency and state, a unidirectional architecture with a strict state contract, GraphQL against our backend, and a modular multi-module Gradle codebase with automated build and release pipelines. No legacy View-system app hiding under the surface - you'll be working in a codebase you can be proud of.
AI tooling is part of how we work. We expect engineers to use it on the job, give it good context, and verify the output - not just accept it.
What You'll Do- Design and ship shared Android foundations - reusable modules, Compose components, and internal libraries - that multiple collector-facing apps depend on, and treat the engineers consuming them as first-class customers.
- Own unified identity, session, and entitlement flows across surfaces, so a collector signs in once and moves between Live, Instant Rips, Marketplace, and Collections without friction.
- Lead migrations and consolidations against live users: persistence and data model changes, deprecating divergent implementations, and phased rollouts that don't break anyone mid-flow.
- Own features end to end - API contracts, state and effect handling, Compose UI, testing, and release.
- Build deep linking, navigation, and cross-surface handoffs that make separate products behave like one.
- Write genuine test coverage: unit tests with fake dependencies, Flow and coroutine test patterns, Compose UI tests where they earn their keep - not coverage theater.
- Instrument what you ship and watch it in production: event tracking, feature flags, staged Play Store rollouts, crash and ANR triage, and monitoring you actually check after launch.
- Own Android performance where users feel it: startup time, jank in scrolling and animation-heavy surfaces, memory under sustained real-time load.
- Review pull requests with judgment: surface real defects, prioritize what matters, coach on what to let go.
- Contribute to architectural decisions: modularization strategy, state management, effect handling, failure handling.
- Mentor engineers earlier in their career and raise the quality bar across the team.
What We're Looking For- 5+ years building consumer-facing Android applications at scale.
- Kotlin - coroutines, structured concurrency, Flow, and a working understanding of where each belongs.
- Jetpack Compose - state hoisting, recomposition and stability, performance-aware composition, Compose Navigation.
- Unidirectional state management at scale - MVI or a comparable strict, testable architecture (Molecule, Orbit, Mavericks, or a well-reasoned in-house pattern) that you can explain and defend.
- Multi-module Gradle architecture - clean module boundaries, convention plugins, version catalogs, build times you've actively fought for.
- Shared architecture across multiple apps - you've built reusable modules, SDKs, or internal libraries consumed by more than one app or more than one team, and you understand the API-stability and versioning discipline that requires.
- Dependency injection - Hilt, Dagger, Koin, or equivalent, used deliberately rather than by habit.
- GraphQL on Android - Apollo Kotlin, schema-driven development, codegen, subscriptions.
- CI/CD - Bitrise, GitHub Actions, Fastlane, or equivalent automated build/test/release pipelines feeding the Play Console.
- Testing discipline - JUnit, Turbine, Robolectric, Compose testing, and instrumentation tests, with real assertions.
- Static analysis - ktlint, detekt, or equivalent quality gates.
- Hands-on with AI-assisted development tooling - Claude Code, Cursor, Copilot, or similar - with a track record of using it for real work, not demos.
- Structured commit/PR discipline tied to a project tracker (Linear, Jira, or equivalent).
- Comfortable working across team boundaries - this role depends on influence with engineers you don't manage.
Bonus Points- Experience with livestreaming, real-time auctions, or high-throughput WebSocket/subscription workloads.
- Baseline Profiles, Macrobenchmark, or other systematic Android performance work.
- Exposure to marketplace or e-commerce Android applications.
- Payments, billing, or Play Billing experience.
- Developer tooling or internal platform work that measurably saved other engineers time.
- Passion for sports cards, collectibles, or live commerce.
The salary range represents base pay only and does not include short-term or long-term incentive compensation. This salary range is specific to New York City and may not be applicable to other locations. When determining base pay, as part of a final compensation package, we consider several factors such as location, experience, qualifications, and training. For information about our benefits, please visit https://benefitsatfanatics.com/
NYC Salary Range
$160,000-$200,000 USD
By submitting your application, you agree to our terms of service and acknowledge you have read our Candidate Privacy Policy.