Skip to content

Flutter Developer interview questions

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

See a Flutter Developer resume example

Practice with flashcards

Spaced repetition · Hunter Pass

Questions

active-usersarchitectureflutter

I would use a feature-first package graph with one app composition root and enforce its edges in CI.

  • Each business feature exposes a small api package and keeps widgets, Riverpod providers or BLoCs, repositories, and DTOs in an implementation package owned by one team.
  • Shared Dart domain types live in low-churn core packages, while Swift, Kotlin, and plugin code stays behind a platform package so features never import host details.
  • CODEOWNERS plus a dependency-graph check reject implementation-to-implementation imports, and affected-package tests keep the p95 pull-request path below 12 minutes.
  • I would accept extra boundary models only where they let the 5 teams release changes without editing another team's implementation.

Why interviewers ask this: This tests whether the candidate can turn scale and team ownership into enforceable Flutter package boundaries.

monorepodependenciesflutter

I would remove cycles through narrow contracts, then optimize the measured high-fan-out packages rather than merging everything.

  • I would map imports and change frequency, then extract route, result, and domain interfaces from the smallest stable seam that breaks each of the 11 cycles.
  • Volatile shared UI and utility packages would be split by ownership or moved back into their consumers; only stable primitives may have more than 15 dependents.
  • A CI graph task would reject cycles, forbidden feature edges, and public imports of another package's src directory.
  • I would keep the new graph only if all cycles disappear and incremental analysis of an affected feature falls below 90 seconds.

Why interviewers ask this: A strong answer uses dependency evidence and measurable build outcomes instead of treating more packages as automatically better.

ownershipflutter

I would give checkout one accountable owner and replace cross-team implementation edits with consumer-owned contracts.

  • The checkout team owns its state, UI, analytics, and orchestration, while payments, identity, and catalog publish narrow capabilities with explicit maintainers and compatibility tests.
  • CODEOWNERS requires the owning team on implementation changes, but contract changes require one consumer and one provider reviewer rather than all 5 teams.
  • Quarterly ownership reports track unowned packages, approval latency, and cross-team edits, with a target of at most one external approval for a normal checkout change.
  • Shared code moves to a platform owner only after at least 3 features need the same stable behavior, not merely similar syntax.

Why interviewers ask this: This evaluates whether ownership boundaries reduce coordination cost without creating an ungoverned shared layer.

flutternavigationdesign

I would keep typed destinations in API packages and let the app shell resolve them to concrete builders.

  • Each feature publishes Dart 3 sealed route inputs and typed results containing stable IDs, never Widget classes, GoRouter instances, or repository types.
  • The app composition root registers all 24 handlers and maps the 8 validated deep links through the same route parser, including authentication and prerequisite checks.
  • Contract tests verify route serialization, unknown versions, back behavior, and that every registration resolves exactly once.
  • A package graph gate enforces zero implementation-to-implementation edges, accepting centralized assembly in exchange for auditable navigation.

Why interviewers ask this: Typed routes preserve feature isolation while one composition root keeps internal and external navigation consistent.

active-usersmicro-frontendsflutter

I would start with a regular package and choose deferred delivery or a plugin only for a measured boundary, not for team independence alone.

  • A plugin is justified when the feature owns Swift or Kotlin APIs; it does not make Dart code independently deployable and adds platform versioning work.
  • Android deferred components may reduce the base download, but iOS still ships the code in the app, so I would measure platform-specific size and p95 first-open latency.
  • A runtime micro-frontend adds routing, dependency, observability, and compatibility failure modes without App Store-independent iOS code delivery.
  • I would defer the feature only if p95 first open stays below 4 seconds; otherwise I would reduce assets or bundle it for predictable entry.

Why interviewers ask this: The answer should reject fashionable architecture when platform delivery constraints do not support its promised benefit.

flutterlatencyoop

I would expose one Dart capability contract and keep both native implementations behind a federated plugin boundary.

  • The app-facing package defines typed camera commands, results, errors, and lifecycle states without AVFoundation or CameraX types.
  • Swift and Kotlin packages implement the contract and own thread hops, permission mapping, resource cleanup, and native test fixtures.
  • The Dart adapter normalizes only behavior that must match, while platform-specific capabilities remain explicit rather than forced into a false common denominator.
  • Integration benchmarks measure p95 command round trips below 50 ms on both platforms, including serialization and main-thread dispatch.

Why interviewers ask this: This tests whether abstraction preserves a shared contract without hiding meaningful iOS and Android differences.

platform-channelspigeon

I would use Pigeon because generated typed interfaces satisfy the compile-time contract better than handwritten MethodChannel maps.

  • The Pigeon schema defines nullable fields, enums, structured errors, and async host methods, then generates matching Dart, Swift, and Kotlin code in CI.
  • A thin adapter keeps generated types out of the domain layer so schema regeneration does not spread across 14 call sites.
  • MethodChannel remains suitable for one small experimental call, but string method names and dynamic maps move failures to runtime.
  • CI regenerates code and fails on a diff, while compatibility tests run the previous Dart client against the current native host.

Why interviewers ask this: The interviewer is checking a channel choice against type safety, maintenance cost, and compatibility rather than familiarity.

flutterdesign

I would separate native transfer state from UI sampling and make subscription lifetime explicit.

  • Native code emits typed snapshots with file ID, monotonic sequence, bytes, and terminal state on one serialized queue, never one channel per progress tick.
  • The Dart adapter coalesces each file to at most 10 updates per second but always delivers completion and failure without dropping them.
  • onListen registers one observer and onCancel removes it, with resubscription returning the latest snapshot so a rebuilt view does not reset progress.
  • A 60-second test verifies bounded memory, no missing terminal events, and UI data age below 150 ms for all 20 files.

Why interviewers ask this: A strong answer handles backpressure, terminal-event reliability, and channel lifecycle as separate concerns.

algorithmsconcurrencydart

I would use FFI for the hot synchronous buffer path and keep platform channels for operating-system services.

  • FFI avoids repeated codec serialization, and NativeCallable or a narrow C ABI keeps the boundary stable across Swift, Kotlin, and Dart wrappers.
  • Buffers use explicit ownership and reused native allocations; every allocation and release is covered by stress tests and AddressSanitizer on native builds.
  • Calls run outside the UI isolate when they can exceed the frame budget, because FFI itself does not make CPU work asynchronous.
  • I would require p95 end-to-end work below 16.7 ms and no memory growth after 100,000 calls before accepting the native complexity.

Why interviewers ask this: This evaluates whether the candidate understands that FFI improves data-path overhead but introduces memory and scheduling responsibilities.

flutter

I would version the capability contract separately from the plugin package and model lifecycle transitions explicitly.

  • The Dart interface negotiates a contract version and capabilities, rejecting an unsupported major version while allowing additive optional fields within a major line.
  • Android attaches resources to ActivityAware callbacks and releases them on configuration detachment; iOS responds to scene activation and disconnection without assuming one global window.
  • Pending calls receive a typed unavailable or cancelled result during host loss, and reattachment recreates observers without duplicating them.
  • A matrix tests 3 Flutter release lines, Activity recreation, 2 iOS scenes, and old-Dart-to-new-host compatibility before publication.

Why interviewers ask this: The answer should combine semantic compatibility with correct native resource ownership across host lifecycle changes.

flutteranimationci-cd

I would treat 16.7 ms as the full frame interval and profile UI and raster work separately because either can miss vsync.

  • DevTools frame charts and a release or profile build identify whether build, layout, paint, rasterization, or GPU submission owns the slow frames.
  • I would keep p95 UI and raster durations each below about 8 ms to leave scheduling headroom, rather than allowing either side to consume the entire interval.
  • Timeline events around the animation correlate a named interaction with shader, image decode, saveLayer, or layout cost on the target device.
  • The change passes only when slow frames fall below 2 percent across 20 identical traces, not when the average improves.

Why interviewers ask this: This checks practical understanding of Flutter's parallel UI and raster workloads and percentile-based frame budgets.

renderingwidgets

I would narrow configuration updates at the element layer and painting invalidation at the render layer instead of optimizing the whole tree blindly.

  • Immutable widgets describe configuration, elements retain identity and state, and render objects perform layout and paint, so stable keys and const subtrees reduce unnecessary element updates.
  • The counter value is selected at the smallest consumer through Riverpod select or a focused ListenableBuilder, keeping the other 599 widget configurations unchanged.
  • A RepaintBoundary isolates the animated region only if DevTools repaint visualization proves surrounding pixels repaint; too many boundaries waste layers and memory.
  • I would compare build counts and raster time over 100 updates, requiring only the counter subtree to rebuild and p95 paint below 4 ms.

Why interviewers ask this: A strong answer distinguishes rebuild, relayout, and repaint instead of treating them as the same cost.

memory

I would compose lazy slivers and preserve stable item identity so the viewport creates only nearby rows.

  • A CustomScrollView combines SliverPersistentHeader for months with SliverList or SliverVariedExtentList when extents are known cheaply, avoiding shrinkWrap and nested scrolling lists.
  • Rows use stable backend IDs, presentation-ready models, and bounded keep-alive only for the few controls that must retain local UI state.
  • Pagination retains a window around the viewport and evicts decoded images through the image cache rather than holding models for all 50,000 rendered children.
  • A scroll benchmark must keep peak RSS below 120 MB and p95 frame time below 16.7 ms on the lowest supported device.

Why interviewers ask this: The interviewer is evaluating lazy sliver composition, identity, and memory behavior for a genuinely large collection.

gridcustom-renderingjobs

I would use a custom RenderObject only after proving existing slivers cannot express the two-axis virtualization within budget.

  • The render object would compute visible row and column ranges from constraints and scroll offsets, then lay out only cells intersecting the viewport plus a small cache extent.
  • It would separate layout inputs from paint-only selection changes, implement hit testing and semantics, and avoid intrinsic measurement across all 2,000 cells.
  • I would first prototype with existing two-dimensional scrolling primitives because custom layout carries long-term accessibility, gesture, and framework-upgrade costs.
  • The custom path is accepted only if p95 layout drops below 8 ms and semantics tests cover keyboard and screen-reader traversal.

Why interviewers ask this: This tests whether custom rendering is justified by measured geometry needs and includes the responsibilities hidden by widgets.

flutterrenderinganimation

I would profile the Impeller path and asset workload rather than assume all shader-related hitches disappeared automatically.

  • A profile build with Perfetto and Flutter timeline data separates Dart work, texture upload, pipeline creation, raster time, and GPU completion during the first animation.
  • I would simplify unsupported or expensive effects, reduce large saveLayer regions, and warm only the small deterministic animation path if pipeline creation is proven dominant.
  • The 3 GPU models stay in the benchmark matrix because driver behavior and texture limits can differ even under Impeller's precompiled shader model.
  • Release requires first-run p95 below 16.7 ms or an intentional reduced-motion fallback, with no visual mismatch in golden or screenshot checks.

Why interviewers ask this: A strong answer treats Impeller as a rendering architecture with measurable GPU costs, not a universal performance switch.

renderingfluttercaching

I would isolate stable expensive content from moving markers, then keep only boundaries that produce measured raster savings.

  • Static labels and map decoration may share one RepaintBoundary if they remain unchanged across marker ticks, while animated markers paint in a separate lightweight layer.
  • I would inspect raster-cache entries and repaint rainbow output, removing per-label boundaries whose cached textures cost more than repainting their simple text.
  • Large images are decoded near display size and reused by cache key, while transient transformed layers avoid forced caching unless repeated frames amortize the upload.
  • The target is less than 15 MB raster-cache growth and p95 raster time below 8 ms over a 60-second animation.

Why interviewers ask this: This evaluates cache economics and layer isolation rather than reflexively adding RepaintBoundary everywhere.

a11yflutterdesign

I would separate the scene model, viewport transform, interaction overlay, and semantic representation so each can update at its own rate.

  • A CustomPainter or render object draws visible nodes from a spatial index, while selection handles and cursors repaint independently without rebuilding the 500-node model.
  • Pointer, keyboard, and focus commands feed one deterministic Dart 3 sealed-action reducer with undo records, rather than mutating canvas objects directly.
  • Semantics exposes selected and nearby nodes as navigable controls even though the visual canvas is custom, and reduced-motion settings disable nonessential transitions.
  • Benchmarks cover pan, zoom, multi-select, and undo with p95 frame time below 16.7 ms and hit-test latency below 50 ms.

Why interviewers ask this: The answer should combine rendering efficiency, interaction architecture, and accessibility for a complex custom UI.

I would benchmark from process start to the first usable frame and optimize only traced work on that critical path.

  • Flutter integration or native macrobenchmarks run at least 30 cold starts in profile or release mode with identical device state, separating engine start, Dart initialization, plugin registration, and first-frame work.
  • Only crash reporting and launch-critical configuration stay synchronous; analytics, remote config, database warming, and noninitial routes initialize on first use.
  • The first screen uses small local assets and no blocking network dependency, while Dart 3 startup code avoids eagerly constructing the full provider graph.
  • I would gate p95 below 1.5 seconds and require warm-start p95 not to regress by more than 5 percent.

Why interviewers ask this: This checks whether startup work is measured as a critical path with an explicit, reproducible release gate.

fluttermemory

I would separate retained-object leaks, decoded-image pressure, and native allocations before changing cache limits.

  • DevTools heap snapshots and retaining paths compare visits 2 and 10, while Android Studio or Instruments confirms whether the missing memory sits in Dart, GPU textures, or native plugins.
  • Controllers, stream subscriptions, and Riverpod auto-dispose scopes must release with the route; a repeat test requires zero retained gallery owners after collection.
  • Decoded images get a measured ImageCache byte limit and target-size decoding, accepting redecodes to keep peak RSS below 210 MB.
  • A 15-minute gallery loop passes only if post-GC memory returns within 10 MB of the second-visit baseline and no out-of-memory kill occurs.

Why interviewers ask this: A strong answer distinguishes leaks from bounded caches and verifies both Dart and native memory.

designci-cd

I would request, decode, and cache thumbnails at their displayed pixel size instead of moving 12 MP images through the UI path.

  • The CDN supplies width, format, and quality variants, while cacheWidth or ResizeImage limits local decoding when a server variant is unavailable.
  • The list prefetches only a small viewport window, caps concurrent fetches, and cancels work for rows that leave the window before decode.
  • Memory cache stores decoded thumbnails under a byte budget, disk cache stores compressed responses, and full resolution loads only in the detail view.
  • Benchmarks require first visible thumbnails within 500 ms, peak RSS below 220 MB, and no more than 8 concurrent decodes.

Why interviewers ask this: This evaluates end-to-end image sizing, concurrency, and cache separation rather than a single widget choice.

Locked questions

  • 21

    An Android App Bundle is 92 MB and the iOS download is 118 MB, with targets of 65 MB and 85 MB. How would you create an app-size budget?

  • 22

    A Flutter release includes 40 feature packages, 6 reflection-like registries, and 18 MB of apparently unreachable Dart code. How would you verify tree shaking?

    tree-shakingapp-sizeflutter
  • 23

    A Flutter app serves 1M MAU, but performance telemetry may add only 0.5 percent CPU and 200 KB per session. What observability would you instrument?

    active-usersobservabilityperformance
  • 24

    Five teams use Riverpod across 35 features, and a login change currently invalidates 120 providers. How would you restructure state ownership?

    state-managementownership
  • 25

    A BLoC checkout has 16 states, 22 events, and 4 parallel side effects. How would you keep it deterministic across 6 product teams?

    state-management
  • 26

    A profile flow has 7 screens, 3 drafts, and process restoration, but teams disagree whether state belongs in widgets, Riverpod, or repositories. What ownership rules would you set?

    conflictownershipwidgets
  • 27

    A telemetry BLoC receives 5,000 events per minute from 200 devices. Events must stay ordered per device, while independent devices should process in parallel. How would you design keyed concurrency and deterministic state?

    concurrencydesignstate-management
  • 28

    An offline field app edits 10,000 records, may stay disconnected for 72 hours, and requires no silent overwrite. How would you design consistency?

    designconsistency
  • 29

    A Flutter client must support API versions 3 and 4 for 90 days, with 25 endpoints and no forced app update. How would you shape the client contract?

    endpointsflutter
  • 30

    A Dart 3 app must parse a 40 MB JSON payload in under 600 ms without blocking 60 Hz interaction. How would you use isolates?

    concurrencydart
  • 31

    An app runs up to 50 CPU tasks per minute, each lasting 80 to 300 ms, and isolate spawn costs 20 ms. How would you design a compute pool?

    concurrencydesign
  • 32

    A user cancels a 3-second isolate job, and the UI must stop within 100 ms without killing unrelated work. How would you implement cancellation?

    concurrencyresilience
  • 33

    A camera plugin sends 25 MB frames to Dart 20 times per second, and copying pushes memory above 300 MB. How would you redesign binary transfer?

    memorydart
  • 34

    A sync queue has 50,000 pending changes and normally takes 10 minutes, but iOS usually grants about 30 seconds of background time and Android may kill the process. What resumable background contract and architecture would you promise?

    promisesconcurrencydata-structures
  • 35

    Five teams need a Flutter design system with 60 components and a 6-month migration window. How would you define its architecture?

    componentsdesign-systemflutter
  • 36

    A checkout must pass WCAG 2.2 AA, support 200 percent text scaling, and remain usable by switch control. What would you require?

    a11yscaling
  • 37

    A Flutter app supports 12 locales, including Arabic, and translations may expand by 40 percent. How would you structure localization?

    flutter
  • 38

    A product requires native-feeling iOS and Android behavior across 30 shared screens, but only 8 interactions differ. How would you adapt without forking the UI?

  • 39

    Five teams produce golden tests on 3 operating systems, and 14 percent currently fail from font or renderer drift. What strategy would you set?

    golden-testssystem-designiac
  • 40

    A Flutter repository has 4 environments and 7 developers can inspect the client binary. Where do API secrets belong?

    flutterapisecrets
  • 41

    A banking app stores refresh tokens and a 256-bit local encryption key on iOS and Android. How would you use secure storage?

    encryptiontokens
  • 42

    A mobile API handles payments, and security proposes TLS pinning with 30-day certificates and a 24-hour rotation SLA. Would you approve it?

    tlsapi
  • 43

    Sentry captures 2 percent of sessions for a health app, and events may contain email, diagnosis text, and access tokens. How would you design the PII boundary?

    tokenssessionspii
  • 44

    A threat model includes rooted Android phones, jailbroken iPhones, 7 developers who can inspect the binary, and attacker-controlled local storage. What security boundary would you claim?

    formsthreat-modeling
  • 45

    A Flutter app has 40 packages, an 8-minute pull-request budget, and 2 physical-device models nightly. How would you define the test architecture?

    flutterarchitecture
  • 46

    A 120-screen native app must adopt Flutter add-to-app for 15 screens over 4 releases without changing authentication or navigation ownership. What boundary would you use?

    decision-makingownershipflutter
  • 47

    Two native teams plan to replace 80 screens with Flutter in 12 months while shipping monthly. How would you sequence the migration?

    fluttermigrations
  • 48

    A Flutter monorepo ships weekly to both stores, and pull requests must finish in 10 minutes. Which CI/CD gates would you enforce?

    ci-cdmonorepocode-review
  • 49

    A release rolls out to 1, 10, 25, 50, and 100 percent of 1M MAU. Which Sentry signals would control each promotion?

    active-users
  • 50

    An RFC proposes replacing BLoC with Riverpod across 28 features, and 3 engineers disagree after a 2-week prototype. How would you make and mentor through the decision?

    conflictmentoringdecision-making
  • 51

    After release 9.4 reaches 20%, a 60 Hz feed rises from 3.2% to 18.7% janky frames and UI-thread p95 reaches 31 ms while raster p95 stays at 7 ms. What do you diagnose, contain, and require before resuming rollout?

    concurrency
  • 52

    A chart animation on 120 Hz devices shows raster-thread p95 of 19 ms, 27% missed frames, and UI-thread p95 of 4 ms after a 35% rollout. How do you isolate the GPU cost and decide on rollback?

    concurrencyanimationrollback
  • 53

    After switching the Android renderer to Impeller for 15% of users, checkout animation jank rises from 4% to 22% only on 2 Mali GPU families, with raster p99 at 46 ms and no Dart code change. What evidence and decision do you need?

    renderinganimationdart
  • 54

    A live auction regenerates keys for 600 rows at 10 ticks per second, causing about 1,800 element mounts per tick, 24 ms GC pauses, and lost row state. How do you diagnose and contain the churn, and what proves the fix?

    churn
  • 55

    On 512 MB Android devices, viewing 24 photos raises RSS from 118 MB to 472 MB and causes 1.6% OOM terminations; heap snapshots show 48 decoded 4000x3000 images. What do you contain and change?

    snapshotdata-structures
  • 56

    Opening and closing a scanner 30 times grows Dart heap from 82 MB to 244 MB, and 30 State objects remain through a camera stream subscription. How do you prove and repair the leak?

    data-structuresdart
  • 57

    Cold time to first frame regresses from 1.6 to 3.9 seconds after 3 SDKs are added, with 1.4 seconds before runApp and 700 ms of synchronous preferences reads. What do you defer and how do you gate recovery?

  • 58

    Android user-perceived ANRs rise from 0.24% to 0.93% at a 25% rollout, and traces show a Flutter plugin blocking the platform thread for 6.2 seconds during database migration. What is your recovery sequence?

    databasemigrationsconcurrency
  • 59

    A Flutter upgrade increases Android download size from 38 MB to 61 MB and iOS install size from 92 MB to 134 MB, breaching a 50 MB cellular target. How do you find the 23 MB regression and decide what ships?

    flutter
  • 60

    A custom RenderObject shipped to 10% causes 14% of sessions to hit repeated layout, 900 layout passes in 2 seconds, and occasional blank cards after rotation. How do you contain and diagnose it?

    custom-renderingsessions
  • 61

    After a Riverpod refactor reaches 30%, changing one account rebuilds data for all 80 accounts and starts 240 API calls in 1 minute. How do you identify the invalidation fault and recover?

    refactoringapistate-management
  • 62

    500 orders emit 6,000 status events per minute. Fully sequential handling creates a 90-second lag, while fully concurrent handling reorders events for the same order. Which BLoC concurrency policy do you choose, and how do you prove its ordering?

    state-managementconcurrency
  • 63

    A profile loads revision 42 in 180 ms, but an older revision 41 request completes at 1.2 seconds and overwrites it in 3.8% of sessions. How do you stop the stale async commit?

    sessionsasync
  • 64

    After visiting 120 product IDs, memory rises from 110 MB to 390 MB and Riverpod reports 120 family providers still alive because each called keepAlive. How do you bound retention without breaking back navigation?

    state-managementnavigationmemory
  • 65

    Importing 12 files starts 12 isolates, drives 8-core devices to 100% CPU, delays UI frames to 74 ms p95, and increases completion time from 40 to 67 seconds. What do you change?

    concurrency
  • 66

    Sending a 180 MB Uint8List to an image isolate temporarily doubles RSS to 620 MB and OOMs on 1 GB devices, although processing itself needs only 220 MB. How do you verify and use TransferableTypedData?

    concurrency
  • 67

    Users leave a report screen after 300 ms, but its 18-second export continues, holds 140 MB, and writes a late success state in 6% of navigations. How do you make cancellation real?

    navigationresilience
  • 68

    A background sync writes its checkpoint before the local transaction commits. OS termination affects 22% of runs, and 18,000 items are skipped after restart. How do you contain the data loss and redesign the sync for atomic recovery?

    transactionsconcurrency
  • 69

    A logout-login cycle completed 50 times leaves 50 Riverpod stream subscriptions and duplicates each balance update 50 times. What ownership boundary failed and how do you prove the fix?

    ownershipstate-management
  • 70

    A BLoC restores 400 queued checkout events after process restart and submits 17 duplicate orders before a kill switch is enabled. How do you contain the incident and redesign replay?

    concurrencydata-structuresincidents
  • 71

    The primary API returns 503 for 18 minutes to 2 million mobile sessions, checkout success falls from 96% to 41%, and cached catalog data is 20 minutes old. What does the app do during recovery?

    sessionsapicaching
  • 72

    A 90-second outage causes 600,000 clients to retry every 1 second, raising backend traffic from 8,000 to 140,000 requests per second after recovery. How do you stop the retry storm?

    zero-to-oneresilience
  • 73

    4 separately constructed Dio clients bypass an existing refresh coordinator. When 80 requests encounter an expired token, they produce invalid_grant errors and log the user out. How do you diagnose, contain, and restore one refresh authority?

    tokens
  • 74

    After a 4-minute network loss, 300,000 WebSocket clients reconnect within 2 seconds, each receives 1,200 missed events, and 7% of balances appear twice. How do you recover safely?

    websockets
  • 75

    A GraphQL home query grows from 180 KB to 4.8 MB, p95 parsing reaches 1.6 seconds, and 9% of 2 GB devices terminate under memory pressure. How do you reduce impact without hiding schema drift?

    queriesschemagraphql
  • 76

    Two offline devices edit the same 35-field inspection, and last-write-wins deletes 12 photos plus 4 hours of notes when both reconnect. How do you contain the data-loss incident and change conflict handling?

    incidents
  • 77

    A power loss during a cache write leaves a 26 MB JSON file truncated, and 14% of next launches crash while decoding it. What is your repair and corruption policy?

    caching
  • 78

    A 2.4 GB video upload fails at 93% on mobile handoff and restarts from byte 0, costing users 4.8 GB of data. How do you add safe resume under a 50 MB memory limit?

    memory
  • 79

    After enabling Firebase messaging in both native and Dart layers, 18% of users receive each order notification twice and 2% open two checkout routes. How do you contain and deduplicate it?

    queriesdart
  • 80

    A telemetry release at 40% sends 3,200 full search queries and 74 access tokens to analytics before detection, violating a zero-token and 24-hour deletion constraint. What do you do first and what changes?

    queriestokens
  • 81

    Tapping biometric login freezes iOS for 4.7 seconds in 6% of sessions; the MethodChannel handler runs on main and calls DispatchQueue.main.sync before replying. How do you unwind the deadlock risk?

    lockingsessionsplatform-channels
  • 82

    At a 15% rollout, crash-free users fall from 99.86% to 98.94%; Swift crashes on force-casting a null channel argument and Kotlin logs 420 NumberFormatExceptions for the same payload. What do you fix first?

    fundamentals
  • 83

    A Flutter SDK upgrade makes a payment plugin compile on Android but fail on 32% of iOS archives with an undefined symbol, while the plugin has had no release for 18 months. Do you fork, replace, or roll back?

    flutterfundamentalsrollback
  • 84

    On the next Android OS beta, 28% of screens render under system bars, back gestures exit checkout in 4% of tests, and release is 21 days away. How do you triage the OS upgrade?

    interactionsystem-designtesting
  • 85

    After a permission-flow change reaches 50%, photo-import completion falls from 72% to 39%, and 61% of failures occur with limited-library access on iOS. What do you diagnose and change?

  • 86

    A malicious app claims a custom scheme and captures 240 password-reset links before the 10% Android rollout is stopped. How do you contain the deep-link hijack and restore safely?

    passwords
  • 87

    The iOS distribution certificate expires in 36 hours, 6 release branches are active, and CI can no longer sign the emergency build because the provisioning profile references the old certificate. What is your recovery plan?

    distributionsrecovery
  • 88

    At 8% phased rollout, crash-free sessions drop from 99.91% to 99.28% only on Android 12 devices, while conversion improves 3%. Do you advance, hold, or roll back?

    sessionsrollback
  • 89

    Apple rejects version 7.2 twelve hours before launch because 2 SDKs use required-reason APIs without complete privacy manifests, and removing them breaks attribution. What do you ship?

    api
  • 90

    A transitive Dart package downloaded 4.2 million times is reported compromised, your lockfile includes the affected 3.1.4 version, and 65% of production devices run it. What is your first 6-hour response?

    packagingdart
  • 91

    A migration from one Flutter app to 14 feature packages doubles clean build time from 11 to 23 minutes, creates 37 dependency cycles, and blocks 4 teams. Do you continue or roll back?

    dependenciesrollbackmigrations
  • 92

    An add-to-app checkout at 10% increases native app cold start by 1.1 seconds, adds 96 MB RSS, and fails first navigation in 7% of sessions. How do you contain and decide whether Flutter stays?

    flutternavigationsessions
  • 93

    CI is unavailable for 5 hours, and after recovery 18% of 1,400 Flutter tests fail randomly, mostly goldens differing by 1 to 3 pixels. A release is due in 9 hours. What do you do?

    fluttertesting
  • 94

    Design-system package 6.0 reaches 5 product teams and makes 14% of buttons truncate in German, while tap targets shrink from 48 to 36 logical pixels on 22 screens. How do you coordinate recovery?

    system-designdesign
  • 95

    A checkout release at 25% traps screen-reader focus in a modal, blocks 100% of blind-user payments, and leaves 6 unlabeled controls. What do you roll back and how do you verify recovery?

    rollback
  • 96

    Security finds that version 12.1 logs refresh tokens on 9% of failed requests, affecting about 18,000 users over 3 days. What is your first response and release gate?

    tokens
  • 97

    An RFC proposes a custom Flutter module federation layer in 6 weeks for 4 teams, but the prototype adds 38 MB, breaks hot reload, and has no rollback after module activation. Do you approve it?

    rollbacktoolingfederation
  • 98

    A developer fixes a 6% double-submit bug by adding a 2-second delay and a global Boolean, but 30% of payments normally take 3 to 8 seconds. How do you mentor them and replace the fix?

    mentoring
  • 99

    Two engineers have 4 days before a contractual launch, but crash-free sessions are 98.8% against a 99.7% target and the planned offline mode needs 8 engineer-days. What do you release?

    sessions
  • 100

    A 23-minute mobile outage affected 480,000 sessions because remote config returned an empty endpoint, tests used a default, and rollback took 17 minutes. Which postmortem action do you prioritize?

    prioritizationincidentsconfig