Skip to main content

Mobile engineer behavioral interview questions

20 questions on behavioral for mobile engineer candidates. Expect prompts such as “Tell me about a crash you shipped to production” and “Getting up to speed on a large legacy mobile codebase”, each with a worked answer outline and the follow-ups interviewers push on.

Questions

Showing 1 to 20 of 20 behavioral questions.

As asked

Tell me about a time you shipped a crash to production. How did you discover it, how did you diagnose it, and what did you change in your process afterward to prevent similar issues?

Sample answer outline

Strong answer names the specific crash type (force-unwrap nil, index out of bounds, ANR, OOM), describes how it surfaced (Crashlytics/Firebase spike, user report, monitoring alert), walks through the debugging process (symbolicated stack trace, reproducing locally), explains the fix, and covers process changes (added nil checks, enabled StrictMode, added a UI test for the path, or added a smoke test in CI).

Expect these follow-ups

  • How do you prioritize which crashes to fix first when you have 30 different crash types in the dashboard?
  • What crash reporting tool do you use and what do you look at beyond the stack trace?
behavioraldebuggingcrashlyticsiosandroid

As asked

Describe how you got up to speed on a large, unfamiliar iOS or Android codebase quickly. What was your approach, which platform-specific tools did you use to understand it, and how long before you were contributing effectively?

Sample answer outline

Candidate should describe a systematic approach: run the app on a real device and trace a user flow through the code using Xcode debugger breakpoints or Android Studio's debugger, read recent PRs to understand conventions, use Instruments or Android Profiler early to understand the performance baseline, and check the CI setup to see what test coverage exists. They should mention looking at the module structure, the data layer (Room schemas, Core Data models), and the dependency injection setup. Strong answer includes a concrete first contribution and notes what mobile-specific gotchas (memory leaks, background task misuse) they discovered early.

Expect these follow-ups

  • What documentation did you wish existed, and did you create it?
  • How did you identify the most critical parts of the codebase to learn first?
behavioralonboardingcodebasemobileleadership

As asked

Tell me about a bug that landed on launch day in a mobile app. How did you find and fix it given the slow release cycle?

Sample answer outline

Pick a real case. The interesting part is the constraint: a mobile bug fix takes a store review (hours to days) and only fixes new installs. So mitigation matters more than fix. Walk through how you used remote config or feature flags to disable the broken path, how you communicated to users (in-app notice, App Store description), how you submitted an expedited review. Postmortem actions usually centre on: better release canary (staged rollout), more remote-killable flags around new features, an integration test that would have caught it.

Expect these follow-ups

  • What is your staged rollout policy now?
  • When is forcing a minimum app version the right call?
  • How do you handle Apple's expedited review process?
releasesincidentsmobile-specific

As asked

Describe a situation where you identified a performance regression during development or code review. How did you find it, what was the root cause, and how did you fix it?

Sample answer outline

Candidate should describe using profiling tools (Instruments, Android Profiler, Perfetto), what metric was regressed (frame rate, startup time, memory), and the root cause (a new library pulling in a large dependency, an O(n^2) sort on the main thread, a view added in a tight loop). Fix and the PR review comment that should have caught it. Bonus: adding a performance regression test to CI.

Expect these follow-ups

  • How do you track app startup time in production across releases?
  • What is your threshold for flagging a frame-rate regression as a blocker?
behavioralperformanceprofilingiosandroid

As asked

Tell me about a time when you had to push back on the scope or timeline for a feature because implementing it correctly offline-first was significantly more complex than the team expected. How did you handle the conversation?

Sample answer outline

Candidate should show they quantified the complexity (conflict resolution, testing matrix), proposed a phased approach (online-only first, then offline), involved the product owner early, and framed the tradeoff in user-impact terms. A strong answer avoids just saying no and instead negotiates a path forward with clear milestones.

Expect these follow-ups

  • What happened in the end, and what would you do differently?
  • How do you estimate the time to add offline support to an existing feature?
behavioralleadershipoffline-firstproduct-sensescoping

As asked

Tell me about a time you had to recommend or decide between native iOS/Android development and a cross-platform solution like React Native or Flutter. What factors drove the decision and how did it turn out?

Sample answer outline

Strong answer lists factors: team skill set, need for platform-specific APIs (ARKit, NFC, deep Health integration), performance requirements, time to market, long-term maintenance. Candidate should show they evaluated the options empirically (prototype, benchmark) rather than just advocating for their preferred stack. Outcome should include lessons learned.

Expect these follow-ups

  • What are the performance scenarios where React Native or Flutter still fall short of native?
  • How do you share business logic between iOS and Android without going full cross-platform?
behavioralarchitecturecross-platformnativeflutter

As asked

Tell me about a time a major iOS or Android OS update broke or significantly changed behavior in your app. How did you handle the migration, and how did you communicate the impact to the team?

Sample answer outline

Candidate should name a specific API change (iOS background location permission, Android scoped storage, notification permission on Android 13, Privacy Manifests in iOS 17). They should describe how they discovered it (beta release notes, Xcode warnings, App Store review rejection), the migration plan, testing against multiple OS versions, and how they communicated the release risk to product and QA.

Expect these follow-ups

  • How do you stay informed about upcoming breaking changes before they hit the stable OS release?
  • What is your strategy for supporting N-1 OS versions?
behavioraliosandroidmigrationplatform-changes

As asked

Describe a time when you mentored a junior engineer who was stuck on a difficult mobile bug. How did you guide them without just solving it for them?

Sample answer outline

Candidate should describe asking questions to reveal their debugging approach, pointing toward tools they were not using (Instruments, layout debugger, logging breakpoints), and explaining the underlying concept (e.g. retain cycles) so they can recognize it in the future. A strong answer notes the balance between spending time on coaching versus the velocity cost to the team.

Expect these follow-ups

  • How did you track that the junior's skills were improving over time?
  • What is the most common conceptual gap you see in junior mobile developers?
behavioralleadershipmentoringdebuggingmobile

As asked

You ship a release and within 48 hours user reviews are full of complaints about excessive battery drain. Walk me through how you would triage and respond to this.

Sample answer outline

Immediately check release notes for changes to location, background, or network code. Correlate the reports with Crashlytics/Sentry for any errors. Download the release and profile with Battery Gauge / Android Energy Profiler. If the issue is confirmed, the decision tree: hotfix if the cause is known and simple, feature-flag rollback if possible, or pull the release. Communicate to users via App Store response and in-app notice. Post-mortem to add a battery drain test to the release checklist.

Expect these follow-ups

  • How would you detect battery drain regressions automatically before they reach users?
  • How do you respond to App Store reviews about battery drain without making promises you can't keep?
behavioralbatterydebuggingiosandroid

As asked

Tell me about a time you evaluated a third-party SDK for inclusion in a mobile app. What criteria did you use, what risks did you identify, and did you ultimately use it?

Sample answer outline

Criteria: binary size impact (use the Android Size Analyzer or Instruments link map), privacy policy and data collection, SDK initialization time on the main thread, license compatibility, frequency of updates and GitHub activity. Risks: SDK calling deprecated APIs that will break on next OS, SDK holding a wakelock in background, SDK initializing a separate background thread on every app launch. Candidate should show they ran a prototype before committing.

Expect these follow-ups

  • How do you keep track of SDK updates and evaluate if upgrading is safe?
  • What would make you remove an existing SDK mid-release cycle?
behavioralthird-partysdkrisk-evaluationmobile

As asked

You deploy a new mobile app version with a risky feature behind a remote feature flag. The flag service goes down the moment users update and launch. What behavior should the app show, how should you have built this defensively, and how does the mobile deployment model make this harder to recover from than a web app?

Sample answer outline

App should fall back to the last cached flag value persisted in local storage, or to a safe default (feature off for risky features). This requires the flag client to write the last known state to UserDefaults or SharedPreferences on every successful fetch, so a cold launch with no network still gets a sensible value. Do not block app launch waiting for flags; use a timeout and proceed with cached values. The mobile constraint: unlike a web app where you can push a server-side fix immediately, a bad default baked into the binary requires a new app release and App Store review. This makes the choice of safe default and the quality of the fallback cache critical decisions at design time. Candidate should mention alerting when the flag service is degraded and a kill switch that defaults to off.

Expect these follow-ups

  • How do you decide what the default value should be for a flag controlling a new payment flow?
  • Would you ever hard-code a fallback value directly in the binary?
situationalfeature-flagsofflineresiliencemobile

As asked

The OS kills your app in the background while the user is deep in a navigation stack. When the user returns to the app, what should happen, and how do you implement state restoration so the user does not lose their place?

Sample answer outline

iOS: NSCoder-based state restoration (encodeRestorableState/decodeRestorableState) or UIScene state restoration via NSUserActivity. Android: ViewModel with SavedStateHandle persists UI state across process death. Navigation back stack is saved automatically by Jetpack Navigation with rememberSaveable or by encoding the stack as a URI. Both platforms: don't rely on in-memory state for anything the user should not have to re-enter.

Expect these follow-ups

  • What kinds of state should you never restore (e.g. sensitive data)?
  • How do you test state restoration locally on iOS without waiting for the OS to kill the process?
situationalstate-restorationnavigationiosandroid

As asked

You have a Espresso or XCUITest that catches a real regression about once a month but fails spuriously three times a week in CI, blocking the team. What do you do?

Sample answer outline

Do not simply disable it. First, diagnose the flakiness: is it timing (add idling resources / XCTWaiter), a race condition in test setup, or a non-deterministic animation? Fix the root cause if possible. If genuinely environment-flaky (CI machine performance), move the test to a nightly suite rather than the PR gate. Add a retry policy (3 attempts) with clear logging so flaky runs are distinguishable from real failures. Track the flakiness rate in a dashboard.

Expect these follow-ups

  • How do you use XCTest idling resources or Espresso IdlingResource to eliminate timing flakiness?
  • What is your overall philosophy on test flakiness tolerance in a mobile team?
situationaltestingci-cdespressoxcuitest

As asked

The day before a release, a designer says the new onboarding animation looks wrong on iPhone SE and wants to change it. The release is already in regression testing. What do you do?

Sample answer outline

Assess the actual scope of the change: is it a single constant in a UIViewPropertyAnimator duration, or a rework of the layout? For trivial fixes, add it with a targeted test and a fast regression sign-off. For risky changes, defer to the next release and document the issue in a known-issues list. The candidate should show they can make a risk/benefit call clearly without being dismissive of the design concern.

Expect these follow-ups

  • How do you prevent this kind of last-minute situation from recurring?
  • Who else do you involve in the decision to include or defer the change?
situationalrelease-processdesignproduct-sensemobile

As asked

Your backend team wants to remove a JSON field that 15% of your users still read in an older app version. They plan to remove it in one week. What do you do?

Sample answer outline

Push back on the timeline: mobile users cannot be force-updated like web users. Negotiate a minimum deprecation window based on the adoption curve of the current version (typically 3 to 6 months). Ask the backend to version the API or to keep the field null rather than removing it, so existing clients do not crash. Ship an update that removes the client dependency first, then greenlight the backend removal once that version has sufficient adoption.

Expect these follow-ups

  • How do you decide when enough users have updated that it is safe to remove a deprecated API?
  • What monitoring would you put in place to detect clients still calling a deprecated endpoint?
situationalapi-versioningmobileproduct-senserelease-process

As asked

A user has permanently denied the camera permission your feature needs. Your PM wants you to show the native permission dialog again. What do you tell them, and what should the UX actually do?

Sample answer outline

On both iOS and Android, once a permission is permanently denied, the system permission dialog cannot be shown again by the app. The correct UX is to detect the denied state, show an in-app explanation of why the permission is needed, and deep-link the user to the app's system settings page (UIApplication.open(settingsURL) / Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)). Candidate should explain this to the PM clearly and propose the settings-redirect flow.

Expect these follow-ups

  • How does iOS's 'Ask App Not to Track' interact with permission prompts?
  • What is the difference between shouldShowRequestPermissionRationale on Android returning false for denied vs never-asked?
situationalpermissionsiosandroidux

As asked

Have you ever been asked to build a mobile feature that felt like a dark pattern or that you had ethical concerns about, such as misleading notifications or deceptive UI? What did you do?

Sample answer outline

Candidate should describe the specific concern (e.g. a confirm-shaming button, a notification that was technically compliant but misleading), how they raised the concern (directly, with data on user trust impact), and the outcome. A strong answer shows they were not passive and could articulate the concern in business terms, not just ethical terms.

Expect these follow-ups

  • How do you balance product pressure to improve a metric with concerns about user trust?
  • What would you do if you raised the concern and were overruled?
behavioralethicsproduct-senseleadershipmobile

As asked

Tell me about a time your app was rejected by the App Store or Google Play under a tight launch deadline. How did you resolve it and what did you learn?

Sample answer outline

Candidate should name the rejection reason (e.g. 2.1 App Completeness, 5.1.1 privacy, metadata misleading). They should describe reading the review notes carefully, reproducing the reviewer's steps, fixing or appealing the decision, and communicating the delay to stakeholders. Strong answer includes a process change: adding a pre-submission checklist or a test user account specifically for reviewers.

Expect these follow-ups

  • What is the fastest path to escalating an App Store rejection you believe is wrong?
  • How do you avoid metadata rejections on repeat submissions?
behavioralapp-storeiosandroidrelease-process

As asked

A backend team sends you a response payload that is 50 MB of JSON. Parsing it in memory with Codable or Gson crashes the app with an out-of-memory error on low-end devices. What are your options?

Sample answer outline

Options in order of preference: first, push back on the backend to paginate or filter the response. If that is not possible, stream-parse the JSON incrementally (JSONSerialization read streaming / Gson JsonReader token streaming) so you never hold the full object graph in memory. Third option: download to a temp file and parse from disk. Fourth option: binary format like Protobuf. Candidate should also mention device memory constraints and testing on low-RAM devices.

Expect these follow-ups

  • How would you detect this problem in staging before it reaches users?
  • What is the heap size limit on a typical Android device and how does it vary by device class?
situationalperformancememorynetworkingandroid

As asked

Crashlytics shows a crash that affects only Samsung Galaxy S21 users on Android 12. You do not have that device in your lab. How do you debug and fix it?

Sample answer outline

Start with the symbolicated stack trace and look for Samsung-specific APIs or OEM customization touches (Samsung's custom camera API, their Bixby routines interfering with accessibility). Rent the device via Firebase Test Lab or BrowserStack for remote debugging. Add breadcrumb logging around the crash site in a hotfix build deployed to a small group of affected users. Check Samsung developer forum for known issues on that Android 12 ROM. Consider wrapping the call site in a try-catch as a last resort while the real fix is investigated.

Expect these follow-ups

  • How do you test across the Android device fragmentation landscape in CI?
  • When would you accept a workaround over a proper fix?
situationaldebuggingandroiddevice-fragmentationcrashlytics