Skip to content

React Native Developer interview questions

100 real questions with model answers and explanations for Senior React Native Developer candidates.

See a React Native Developer resume example

Practice with flashcards

Spaced repetition · Hunter Pass

Questions

reactreact-nativearchitecture

I would stage a separate upgraded binary because Fabric and Bridgeless apply to its whole React Native runtime, not to selected screens or users.

  • I would inventory all 180 screens, 46 native dependencies, and 18 custom modules, then prove each dependency in clean iOS and Android Release builds.
  • The React Native 0.82-or-later candidate would render every React Native surface with Fabric; route flags could choose compatibility or rewritten screen implementations, but both would use that same renderer.
  • Releases 1 through 6 would move the upgraded binary through 500 internal devices, 1%, 5%, 25%, 50%, and 100%, with at least 48 hours of observation before every expansion.
  • I would halt if crash-free sessions fell below 99.7%, a critical-flow error rose by more than 0.2 percentage points, or startup p95 regressed over 10%; the React Native 0.81-or-earlier app would remain a separate previous-binary cohort.

Why interviewers ask this: The interviewer is testing whether the candidate knows that New Architecture is binary-wide and can stage an upgraded binary with numeric release gates.

reactreact-nativenlp

I would make each independently mounted React Native flow a Fabric surface and avoid alternating ownership inside one interactive view tree.

  • The native checkout shell would own view-controller or Fragment navigation, while each React Native surface would own layout, events, and accessibility below its root.
  • Native controls needed inside a surface would be exposed as Codegen Fabric components rather than wrapped through ad hoc view-controller containment.
  • Cross-boundary data would use small typed props and events, not shared mutable view references or imperative traversal.
  • I would benchmark mount and transition time on 3 device tiers because too many tiny surfaces add initialization cost even when each boundary is technically valid.

Why interviewers ask this: A strong answer defines renderer ownership boundaries and recognizes that excessive surface fragmentation has measurable runtime cost.

designturbo-moduleskotlin

I would make the typed Codegen spec the source of truth and evolve it with additive contracts across the 8-release compatibility window.

  • Each module would expose a narrow TypeScript spec with explicit nullable values, enums, promise behavior, and structured error codes shared by iOS and Android.
  • Codegen output would compile in both native projects in CI, and a generated API diff would reject removed methods or changed field meanings.
  • New capabilities would be optional and discoverable through a version or capability method so an older binary can reject unsupported calls safely.
  • Synchronous methods would be limited to bounded in-memory work under 2 ms, with storage, network, and permission flows remaining asynchronous.

Why interviewers ask this: The interviewer is evaluating contract evolution, cross-platform parity, and whether synchronous native calls are constrained by a real latency budget.

ownershipconcurrencyjsi

I would bind every JSI object to the owning runtime and make native frame buffers explicitly reference-counted and cancelable.

  • A runtime-scoped host object would own a shared native processor, while work items would hold weak references so teardown prevents late callbacks.
  • I would never retain or access jsi::Runtime from camera threads; results would return through the runtime scheduler on the JavaScript runtime thread.
  • Frame buffers would be released deterministically after processing, with a bounded queue of 2 frames that drops stale work instead of growing memory.
  • Surface unmount would cancel producers, invalidate host objects, and pass a 100-cycle mount and unmount leak test on both platforms.

Why interviewers ask this: The interviewer is checking practical knowledge of JSI thread affinity, native resource lifetime, backpressure, and teardown.

reactreact-native

I would use one process-level React Native host and mount isolated surfaces into the existing native navigation shell only when a React Native route is requested.

  • iOS view controllers and Android Fragments would receive typed route inputs and host a surface without owning business state inside the native container.
  • The native shell would remain responsible for authentication gates, universal links, Android app links, and platform back navigation.
  • I would preload only Hermes and the minimal shell after the first native screen, then defer evaluation of noninitial feature modules already embedded in the binary so React Native does not consume the full 2-second cold-start budget.
  • Contract tests would launch all 60 React Native routes from native code and verify return results, state restoration, and process-death recovery.

Why interviewers ask this: The interviewer wants a concrete brownfield boundary that preserves native lifecycle semantics without creating multiple expensive React Native runtimes.

reactreact-nativeapi

I would reduce that combinatorial space to risk-based lanes that still exercise every supported boundary before release.

  • Every pull request would build the current React Native minor on the minimum and current iOS and Android versions with both Debug and Release native configurations.
  • Nightly tests would cover the previous React Native minor, all 3 iOS majors, Android API 26 plus 2 representative modern APIs, and arm64 physical devices.
  • Each of the 46 native libraries would record its New Architecture support, minimum OS, Xcode, Gradle, Kotlin, and CocoaPods constraints in a machine-readable manifest.
  • A React Native or toolchain upgrade could ship only after native compile, 20 critical end-to-end flows, and a 30-minute soak pass on every high-risk lane.

Why interviewers ask this: A strong answer controls matrix cost through risk-based coverage while keeping dependency and platform boundaries explicit.

reactreact-nativesessions

I would classify each package as pure JavaScript, a legacy native package usable through interop, or a package that needs a TurboModule or Fabric component migration.

  • Pure JavaScript packages need no native-architecture rewrite, but I would still test current Hermes behavior, removed APIs, and bundle impact.
  • A legacy native module or view may stay temporarily when the target React Native interop layer supports it and clean iOS and Android Release builds plus runtime smoke tests pass.
  • I would migrate callable native APIs to TurboModules and native views to Codegen Fabric components only when interop fails, required semantics are unsupported, or measured boundary cost justifies it.
  • Every critical package would be mounted, invoked, backgrounded, and torn down for 100 cycles in both Release apps, with an owner and replacement plan before the upgraded binary enters rollout.

Why interviewers ask this: The interviewer is testing whether the audit distinguishes JavaScript, compatible legacy interop, and true migration work using Release-build evidence rather than automatic replacement.

reactreact-nativearchitecture

I would treat Bridgeless as part of the upgraded New Architecture binary, not as a separate runtime toggle for 10% of users.

  • TurboModule calls would return promises or bounded synchronous values, while ordered event streams would carry sequence numbers and documented delivery semantics.
  • Shared native state would use its own serial executor, actor, or lock instead of relying on the removed bridge queue as an accidental mutex.
  • Clean iOS and Android Release builds would mount, invoke, background, and tear down all 12 packages, including any package temporarily served through the interop layer.
  • I would stage the upgraded binary at 1%, 5%, 25%, and 100% for at least 24 hours per step, halting below 99.7% crash-free or above a 0.2-point package-error increase while the legacy app remains a separate store cohort.

Why interviewers ask this: The interviewer is checking that Bridgeless follows the binary-wide New Architecture rollout and that former bridge ordering becomes an explicit concurrency contract.

monorepodependenciesbuild-tools

I would centralize native version declarations and commit every resolver lock so the same revision produces the same iOS and Android graph.

  • CocoaPods versions would live in one podspec or helper with Podfile.lock committed, while Android would use a Gradle version catalog and dependency locking.
  • React Native, Hermes, Reanimated, Kotlin, AGP, and the iOS toolchain would move as one tested platform set rather than independent upgrades.
  • An automated weekly job would propose grouped updates, compile 2 app variants, and publish dependency graph diffs plus binary-size changes.
  • Security fixes would use an expedited lane, but still produce immutable lockfiles and a signed build artifact before reaching 14M users.

Why interviewers ask this: The interviewer is evaluating reproducibility and whether tightly coupled native dependencies are upgraded as a validated platform set.

new-architecturefabric-rendererrollback

I would separate binary rollout from route implementation flags because every React Native surface in the upgraded binary uses Fabric.

  • Each of the 30 routes would expose one typed input, output, persistence, and analytics contract for a compatibility implementation and a rewritten implementation that both render through Fabric.
  • A cached kill switch could route newly started flows to the compatibility implementation within 10 minutes without changing renderer or downloading native code.
  • I would halt distribution of the upgraded binary separately; an installed New Architecture binary cannot become the React Native 0.81-or-earlier legacy binary through a remote flag.
  • Additive state schemas and 1,000 switch-and-resume tests would prove both implementations survive process death while the previous store binary remains the native fallback cohort.

Why interviewers ask this: A strong answer distinguishes a same-renderer implementation fallback from the binary-wide New Architecture boundary.

reactautolayoutreact-native

I would federate source ownership and build-time packages, not assume web-style runtime downloading is acceptable on mobile.

  • The reviewed binary would embed all 9 domain modules, while one shell owns navigation, authentication, design tokens, telemetry, and the native capability contract.
  • React, React Native, Reanimated, navigation, and Hermes-facing libraries would be exact host-owned singletons with one approved native dependency set.
  • Startup would eagerly evaluate only the shell and initial route; embedded noncritical modules could defer evaluation until navigation with a 200 ms loading-state budget.
  • Downloaded JavaScript could update only when current review and runtime policy permits it and only within capabilities already embedded and reviewed; new functionality or native code would require a store binary.

Why interviewers ask this: The interviewer is testing whether the candidate limits federation to build-time composition and policy-compliant updates instead of promising downloaded executable features on iOS.

active-users

I would make the weekly output a versioned build-time package and accept that production feature activation follows the monthly reviewed host binary.

  • Every package would expose one registration entry with routes, required host capabilities, analytics schema version, lifecycle hooks, and a health check.
  • CI would test the exact content hash against the current and next host, then the monthly host would embed the approved versions into one signed iOS and Android candidate.
  • iOS would not download executable feature modules that introduce or change functionality, and Android native dynamic delivery would use store-managed mechanisms tied to that app version.
  • A runtime JavaScript update could address an already reviewed embedded capability only when review policy and runtime compatibility allow it; flags could hide a bad embedded module until the next binary.

Why interviewers ask this: A strong answer gives squads independent package ownership while keeping executable feature delivery inside store and runtime policy.

monorepo

I would organize the graph around domain APIs and platform packages, then make forbidden dependency directions fail before compilation.

  • Each domain would expose a public index with routes, commands, and data types; deep imports into another domain would be blocked by lint and dependency graph rules.
  • Shared packages would be limited to stable concerns such as UI primitives, telemetry, networking, and test utilities rather than business logic used by 2 domains.
  • Native packages would declare iOS and Android build inputs explicitly so a JavaScript-only change does not invalidate every native target.
  • Affected-graph CI would test changed packages plus reverse dependencies, with a nightly full build guarding mistakes outside the 15-minute lane.

Why interviewers ask this: The interviewer is evaluating whether monorepo boundaries are enforceable in tooling and improve both coupling and build time.

reactreact-nativesessions

I would keep one immutable product core and express brand variation through validated configuration, generated assets, and platform build settings.

  • A schema-checked brand manifest would define semantic tokens, copy bundles, feature entitlements, API endpoints, and allowed navigation entries.
  • Bundle identifiers, signing, associated domains, push credentials, and privacy manifests would be generated per brand at native build time.
  • Runtime brand switching would cover only capabilities shared by the installed binary, never native entitlements or SDKs absent from that brand build.
  • CI would build all 12 brands and run visual, deep-link, and configuration contract tests on at least 2 platforms before publishing the SDK.

Why interviewers ask this: The interviewer is checking whether white-label variation is data-driven while native identity and entitlement differences remain build-time concerns.

system-designdesigntokens

I would define semantic tokens once and generate typed React Native, iOS, and Android representations from the same validated source.

  • Components would consume roles such as surfacePrimary and textCritical rather than brand color names or raw hex values.
  • The generator would reject missing tokens across 12 brands and calculate contrast for all text and state combinations against WCAG AA thresholds.
  • Typography and spacing changes would be snapshot-tested in 6 locales because longer copy can expose clipping even when color tokens are correct.
  • Theme objects would be memoized and switched at the application boundary so 180 screens do not recompute styles during a frame.

Why interviewers ask this: A strong answer treats tokens as a generated cross-platform contract with accessibility, localization, and runtime performance checks.

navigationdeep-linking

I would make the shell the only navigation authority and let modules register typed, versioned route descriptors.

  • Every route would have a stable ID, a schema for serializable parameters, authentication requirements, and an optional result contract.
  • Universal links, Android app links, and push targets would normalize into the same internal route intent before any module loads.
  • Unknown or retired route versions would fall back to a safe destination and emit a metric rather than crashing during state restoration.
  • Contract tests would replay the top 100 external links against the current and previous monthly host builds on iOS and Android.

Why interviewers ask this: The interviewer is testing whether navigation is a durable cross-module protocol rather than direct access to another module's navigator.

reactanimationdependencies

I would divide dependencies into host singletons, centrally aligned libraries, and truly private leaf dependencies.

  • React, React Native, Reanimated, navigation, gesture handling, and the query client would be exact host-owned singletons with no module-bundled copies.
  • Common TypeScript libraries would use one workspace version policy, while private pure-JavaScript utilities could vary only if bundle analysis proves isolation.
  • Module manifests would declare peer ranges, and publication would fail when a requested range does not intersect the host platform set.
  • A quarterly upgrade train would move the singleton set together and require bundle size to stay within a 1 MB regression budget.

Why interviewers ask this: The interviewer is checking whether dependency sharing protects runtime identity and native compatibility instead of only reducing bundle size.

active-usersdesign

I would reject the request as stated because downloaded executable modules cannot be a back door for new app functionality.

  • Apple App Store Review Guideline 2.5.2 forbids downloading, installing, or executing code that introduces or changes app features, so the iOS binary must already contain the reviewed capability.
  • JavaScript OTA delivery is limited to what current review policy permits, a matching runtime, and behavior within the installed binary's embedded capability contract.
  • Android native dynamic features may use Play Feature Delivery, but they remain store-managed artifacts tied to the Play-distributed app version rather than arbitrary downloads.
  • The 10-minute path can change flags, configuration, and content or apply a policy-compliant fix; 5 genuinely new executable modules, permissions, SDKs, or native APIs require store review and rollout.

Why interviewers ask this: A strong answer applies iOS executable-code policy and the installed capability boundary instead of treating signed JavaScript as unrestricted feature delivery.

slofeature-flagsactive-users

I would evaluate one typed flag at the shell boundary and route newly started checkouts to one of two complete embedded implementations.

  • The flag would carry an implementation ID, audience rules, expiry date, and minimum binary capability version, never a URL for downloaded executable module code.
  • The last valid signed configuration would be cached for cold start, with the proven checkout as the offline or malformed-config default.
  • Exposure would be logged once before checkout begins, with 1% observed for 24 hours, 10% for 24 hours, and 50% for 48 hours before reaching 100%.
  • I would halt below 99.9% completion, below 99.7% crash-free sessions, or above a 0.2-point payment-error increase; the kill switch would affect new checkouts without switching an in-flight transaction.

Why interviewers ask this: The interviewer is evaluating whether flags select embedded implementations with numeric gates instead of delivering executable feature modules.

api

I would define a small versioned module contract and verify every publication against all 3 supported host versions.

  • The contract would contain registration, typed routes, capability requirements, lifecycle callbacks, telemetry declarations, and structured failure results.
  • Additive fields would be optional with defaults, while removals or changed semantics would require a new major contract and a parallel compatibility adapter.
  • Consumer-driven tests from the 3 hosts would run against the candidate module, and host fixtures would run against its current and previous versions.
  • Publication would fail on undocumented global state, direct imports from the shell, or native capability calls absent from the declared range.

Why interviewers ask this: The interviewer is testing concrete multi-version module compatibility rather than generic statements about cross-team alignment.

Locked questions

  • 21

    A 180-screen app serves 14M MAU and currently duplicates user data across Redux, component state, and 40 caches; how would you partition server, client, and local state?

    componentsstatecaching
  • 22

    Two million users may stay offline for 24 hours and edit up to 5,000 records in SQLite; how would you design synchronization with a 60-second convergence SLA after reconnect?

    design
  • 23

    A user edits the same 30-field application on 3 devices during a 12-hour offline window, and silent data loss must stay below 0.01%; what conflict strategy would you choose?

  • 24

    A finance app stores 200 MB offline for 5M users, must revoke server access within 15 minutes, and product asks to wipe an offline suspended device in the same window; what guarantee can Keychain and Keystore actually provide?

    secure-storagecoroutines
  • 25

    Fourteen million MAU use sessions on up to 3 devices, access tokens last 10 minutes, and revocation must propagate within 15 minutes; how would you architect mobile authentication?

    authtokenssessions
  • 26

    A 180-screen app makes 60 GraphQL and 40 REST request types, must show cached data within 300 ms, and tolerates 5 minutes of staleness; how would you unify caching?

    cachingrestgraphql
  • 27

    Users upload 20 photos of 8 MB each over unreliable mobile networks, and 95% of upload sessions must complete within 10 minutes; how would you design the media path?

    sessionsdesign
  • 28

    Five percent of 14M monthly users open one of 120 destinations through push notifications or deep links, and routing must finish in 500 ms; how would you architect the flow?

    android-componentsnavigationdeep-linking
  • 29

    A 14M-MAU health app operates in 6 regions, must delete account data within 30 days, and stores up to 500 MB per device; how would you enforce privacy and retention on mobile?

    retentionactive-users
  • 30

    Nine modules emit 400 analytics events for 14M MAU, and schema errors must stay below 0.1%; how would you design the mobile analytics contract?

    active-usersschemadesign
  • 31

    A 14M-MAU app must reach usable content within 2 seconds at p75 on mid-tier devices, but currently takes 3.8 seconds; how would you allocate the startup budget?

    active-users
  • 32

    A feed must stay smooth on both 60 Hz and 120 Hz devices for 14M MAU, with fewer than 1% slow frames; how would you design around the frame budgets?

    active-usersdesign
  • 33

    Hermes heap grows from 90 MB to 260 MB after 20 minutes on a mid-tier Android device, while the app has a 300 MB total-memory budget; how would you redesign memory use?

    memoryhermesdata-structures
  • 34

    An image-heavy React Native flow uses 140 MB in JavaScript and 420 MB natively on 2 GB devices, with an out-of-memory target below 0.05%; how would you separate and control the budgets?

    reactreact-nativememory
  • 35

    A 10,000-item mixed feed must use under 220 MB and keep p95 interaction latency below 100 ms; how would you choose between FlatList and FlashList?

    latencyvirtualized-lists
  • 36

    A catalog shows 40 images per screen for 14M MAU, with a 1.5 MB first-screen transfer budget and 60 fps scrolling; what image architecture would you use?

    active-usersarchitecture
  • 37

    A gesture-driven chart updates at 120 Hz for 30 seconds and cannot exceed 8.33 ms per frame; what belongs in the Reanimated UI runtime?

    animation
  • 38

    A delivery app may run 8 hours per shift, must use under 8% battery per hour, and has a 50 MB daily network budget; how would those budgets shape the architecture?

    architecture
  • 39

    Weekly releases touch 180 screens, and CI must block startup regressions over 100 ms or slow-frame regressions over 0.5 percentage points; what automated performance system would you build?

    system-designperformance
  • 40

    Your 14M users span 2 GB budget phones, 6 GB mid-tier devices, and 120 Hz flagships across 4 OS generations; what device-tier performance matrix would you define?

    performance
  • 41

    A 180-screen app releases weekly and must keep critical-flow escape defects below 0.5%; what mobile test pyramid would you design?

    defectspyramiddesign
  • 42

    Nine modules ship weekly through EAS, Fastlane, or Bitrise, and pull-request feedback must arrive within 20 minutes; how would you structure the mobile pipeline?

    feedbackci-cdswift
  • 43

    Twelve brand apps require iOS and Android signing, 40 weekly builds, and credential rotation every 90 days; how would you manage signing and secrets?

    secrets
  • 44

    A 14M-MAU app needs OTA fixes within 30 minutes using EAS Update or a self-hosted service, while 6 native binary versions remain active; how would you enforce compatibility and store rules?

    active-usersandroid-componentsover-the-air-updates
  • 45

    A weekly release serves 14M MAU and must preserve 99.7% crash-free sessions while moving through 1%, 5%, 25%, and 100% stages; how would you design rollout controls?

    active-usersdesignsessions
  • 46

    Six native versions remain active, and 99% of crash events must have readable stacks within 15 minutes; how would you prove symbol provenance, retention, upload SLO, and synthetic verification?

    retentionslo
  • 47

    Nine modules need development, preview, staging, and production EAS Update channels across 6 active runtime versions; how would you prevent environment, branch, and artifact drift?

    artifactsiacover-the-air-updates
  • 48

    A React Native monorepo has 35 packages, 9 apps, and 40 daily native builds, but remote-cache hits are only 20%; how would you redesign build caching to reach 80%?

    reactreact-nativecaching
  • 49

    Nine modules propose 25 native SDKs per quarter, but compressed device-specific store download size must stay under 80 MB on both iOS and Android with 99.7% crash-free sessions; what governance would you encode?

    sessions
  • 50

    For a 14M-MAU app with 180 screens and weekly releases, what SLO dashboard would you build to keep mobile platform quality within a 2-second startup and 99.7% crash-free target?

    active-usersslo
  • 51

    Crash-free sessions fell from 99.7% to 97.8% after a Fabric-enabled binary reached 20% of users; what do you do in the first hour and before resuming rollout?

    sessionsfabric-renderer
  • 52

    A synchronous C++ TurboModule deadlocks when its JavaScript call holds a module mutex, dispatches to the main thread, and a native callback re-enters the same module; how would you diagnose and fix it?

    concurrencyjavascriptcallbacks
  • 53

    A JSI-backed image processor crashes once per 40,000 edits with a use-after-free signature; how do you find and fix the lifetime error?

    jsiconcurrency
  • 54

    A payment SDK supports the old architecture but crashes in a New Architecture Android binary staged to 15% of users; how do you handle the incompatibility?

    new-architecturesoft-skills
  • 55

    After one shared Fabric component ships, Android renders correctly but iOS drops touches on 12% of sessions; how do you diagnose the platform divergence?

    componentssessionsfabric-renderer
  • 56

    A brownfield app embeds React Native in three native flows and crashes when the second New Architecture surface starts; how do you separate the Android and iOS host lifecycles?

    lifecyclenew-architecturereact
  • 57

    A migrated native sensor module emits 800 events per second and makes typing lag by 400 ms; how do you stop the event flood?

  • 58

    Canceling an asynchronous C++ TurboModule job freezes the app when completion holds a result mutex and waits for the JavaScript scheduler while cancel holds a registry lock and waits for that job; how would you fix it?

    asyncconcurrencyjavascript
  • 59

    At 35% rollout of a New Architecture binary, checkout errors rise from 0.4% to 2.1% without a clear crash; how do you contain the release while preserving evidence?

    new-architecture
  • 60

    Management asks whether the New Architecture migration is actually complete after 92% rollout; what production evidence do you present?

    new-architecturemigrations
  • 61

    Cold start regresses from 1.8 to 4.6 seconds after a release; walk through your diagnosis, containment, fix, and proof.

  • 62

    A product feed drops from 60 to 32 fps after adding personalized cards; how would you recover scroll performance?

    discoveryperformance
  • 63

    A gesture is smooth at 60 Hz but visibly stutters on 120 Hz devices where the frame budget is 8.3 ms; what do you inspect and change?

  • 64

    Search input pauses for 700 ms every fifth keystroke while CPU remains below 35%; how do you identify a JavaScript event-loop stall?

    javascript
  • 65

    Checkout taps respond quickly in JavaScript logs, but the visible transition freezes for 480 ms on Android; how do you investigate UI-thread jank?

    concurrencyjavascriptrendering
  • 66

    Across 4 million devices, every foreground cycle adds a native connectivity listener; JavaScript heap stays flat, callbacks multiply, and battery use rises 18%; how do you find and stop the fleet-scale leak?

    javascriptcallbacksdata-structures
  • 67

    Android RSS rises by 420 MB during video browsing while the Hermes heap stays flat; where do you look next?

    hermesdata-structures
  • 68

    Uploading four 48-megapixel photos causes OOM on devices with 3 GB RAM; how do you redesign the image path?

  • 69

    The release triggers Android ANRs above 0.6% and iOS watchdog terminations during launch; what common investigation do you run?

  • 70

    Battery usage doubles after a networking change because failed requests retry in the background; how do you contain and correct it?

    resilience
  • 71

    An EAS Update fix uses a native method present only in runtime 6, while 8% of active users remain on runtime 5 and are correctly filtered from receiving it; how do you contain the incident for both cohorts?

    cohortsincidentsover-the-air-updates
  • 72

    Two binaries with different native dependency graphs were assigned the same runtimeVersion, so EAS treats both as compatible and delivers one update to both; how do you repair the policy?

    dependencies
  • 73

    A release is due in six hours, but iOS signing fails after a certificate rotation while Android still builds; how do you respond?

  • 74

    A store release shows purchase failures rising from 0.3% to 1.4% at a 10% staged rollout; what is your release decision?

    gtm
  • 75

    Sentry shows 2,000 opaque native crashes after release because source maps, dSYM, and ProGuard symbols are missing; how do you recover observability?

    observabilitysource-mapsbuild-tools
  • 76

    CI intermittently ships an older native library even though package locks are correct; how do you prove and fix native cache poisoning?

    caching
  • 77

    Upgrading a native camera dependency compiles but crashes on arm64 release devices with an ABI symbol error; what do you do?

    dependencies
  • 78

    A new binary improves crash-free sessions from 99.2% to 99.8% but drops checkout conversion by 3.5%; do you roll back?

    sessionsrollback
  • 79

    Apple rejects the app because a bundled SDK lacks a required privacy manifest two days before launch; how do you resolve it safely?

    android-components
  • 80

    A newly released home-screen module causes a 6% login-loop rate, but a store rollback will take hours; how should its kill switch work?

    rollback
  • 81

    After reconnecting from a 12-hour flight, 2% of users lose offline edits when two devices changed the same record; how do you handle the incident?

    soft-skillsincidents
  • 82

    A SQLite migration leaves 7% of upgraded Android users unable to open the app; what is your recovery plan?

    recoverymigrations
  • 83

    An expired-token change makes 40 parallel requests each refresh authentication, locking users out; how do you stop the refresh storm?

    authtokenslocking
  • 84

    A key rotation makes encrypted sessions unreadable for 3% of users who skipped two app versions; how do you restore access without weakening storage security?

    encryptionsessions
  • 85

    A GraphQL cache update shows one user's order details in another order card for 0.2% of sessions; how do you investigate and fix it?

    sessionsgraphqlcaching
  • 86

    Poor-network users create duplicate uploads and are charged twice for processing; how do you make the mobile flow safe?

    concurrency
  • 87

    Push notifications appear twice for 6% of Android users, while cold-start taps sometimes open the home screen instead of the target route; what do you do?

    android-components
  • 88

    A custom-scheme login deep link can be claimed by another installed app; how do you close the takeover risk?

    deep-linkingnavigation
  • 89

    A 15-minute background sync succeeds in the simulator but the OS kills it after about 30 seconds on real devices; how do you redesign it?

  • 90

    A release sends full search queries and user IDs as analytics properties, creating 12 million unique values per day; how do you handle the cardinality and privacy incident?

    soft-skillsincidentsqueries
  • 91

    Adding one feature module to a super-app increases median startup from 2.0 to 3.1 seconds for all 9 million users; how do you isolate and reverse the regression?

  • 92

    Two independently shipped super-app modules require incompatible versions of the same native SDK, and five supported host builds must validate six module-version combinations; what decision do you make?

    validation
  • 93

    A white-label release reaches 60,000 users with another client's logo and support URL; how do you contain and prevent the asset mix-up?

  • 94

    After a Fabric component migration, VoiceOver and TalkBack expose only 60% of the checkout controls even though all views are visible; how do you investigate the missing accessibility nodes?

    mobile-accessibilitytalkbackvoiceover
  • 95

    A required native identity SDK has a two-hour outage and login success falls from 98.9% to 61%; what can the app team do?

  • 96

    Detox and Maestro flakiness blocks every release of an app with 180 screens, with 14% of runs failing differently; how do you restore signal?

    end-to-end-testing
  • 97

    Define the release decision when crash-free sessions are 99.55% against a 99.7% SLO, but the only new issue affects 0.08% of low-value sessions.

    sessionsslo
  • 98

    A release passes flagship devices but crashes on 11% of Android phones with 2 GB RAM and API 26; how do you handle the low-end-only failure?

    soft-skillsapi
  • 99

    iOS sends a memory warning after five camera edits and kills the app on the seventh, while Android remains stable; what do you do?

    memory
  • 100

    An engineer has two weeks to fix an intermittent checkout freeze that reproduces in 1 of 300 runs; how do you mentor them without taking over?

    mentoring