iOS and Android Engineer Interview Prep: Mobile-Specific Rounds, System Design, and Visa Context
Mobile interviews have a distinct set of traps that generic LeetCode prep won't cover — here's the full playbook for international candidates targeting iOS and Android roles.

You've spent months building iOS and Android apps. You can wire up a UICollectionView in your sleep, you know the Activity lifecycle well enough to recite it on the bus, and you've debugged memory leaks in instruments more times than you care to remember. Then you walk into a FAANG-style interview loop and get a graph traversal problem followed by a question about designing Instagram's feed — neither of which maps neatly to anything you built in your mobile course.
This is the gap most mobile candidates — and especially international candidates, who are often self-taught on the platform but light on structured interview preparation — fall into. Mobile engineering interviews are not simply "regular software interviews plus some Swift/Kotlin questions." They have their own rhythm, their own system design vocabulary, and their own failure modes. And on top of the technical prep, you need a clear, practiced answer for the visa question that will come up in almost every recruiter screen. This guide covers all of it.
How mobile interview loops are structured
At large tech companies and well-funded startups, a mobile engineering interview loop typically contains five to six rounds. Understanding the composition helps you allocate prep time correctly.
| Round | What they're testing | Typical duration |
|---|---|---|
| Recruiter screen | Sponsorship fit, level calibration, general background | 30 min |
| Coding 1 (algorithms) | Data structures, standard LeetCode-medium problems | 45–60 min |
| Coding 2 (platform-specific) | Swift/Kotlin language mechanics, debugging, memory | 45–60 min |
| Mobile system design | Client architecture, offline sync, API contract design | 45–60 min |
| Behavioral | Leadership, conflict, cross-functional collaboration | 45 min |
| Hiring manager screen | Role fit, roadmap, team context | 30 min |
Some companies run a combined "coding + mobile concepts" round instead of separating them. Google and Meta are known for strict algorithmic rounds even for mobile roles. Apple's loops tend to be heavier on platform depth. Smaller companies may skip a round but add a take-home project.
The algorithms round: what actually shows up
The biggest mistake mobile candidates make is assuming the coding round will test mobile topics. It usually will not. You will get graph traversal, dynamic programming, and tree problems written in whatever language you prefer — Swift, Kotlin, Java, or Python.
Language choice: Write in Swift or Kotlin if you're most fluent in it, but confirm the interviewer is comfortable reading it. Both are accepted at essentially every large tech company as of 2026. If you're stronger in Python for algorithms, use Python — then demonstrate platform fluency in the platform-specific round. Don't split your mental bandwidth by using an unfamiliar language during the algorithms portion. See coding interview prep tips for international students for a structured approach to this decision.
Swift-specific pitfalls to know:
Arrayin Swift is a value type — mutations inside a function won't propagate unless you useinout. This trips up candidates who try to pass arrays by reference the way Java does.- Optionals add a layer of safety that can complicate simple traversal code if you're unwrapping carelessly.
guard letvsif let— know when each reads cleaner; interviewers do notice code quality.
Kotlin-specific pitfalls to know:
- Null safety is a feature, not an obstacle. Use
?.and?:correctly rather than!!everywhere. - Know the difference between
valandvarand usevalby default. - Kotlin extension functions make code clean; use them judiciously to demonstrate familiarity without over-engineering.
Focus your algorithms prep on: arrays and strings (sliding window, two-pointer), trees and graphs (BFS/DFS, connected components), dynamic programming (knapsack variants, longest subsequence), and hash maps (frequency counting, grouping). These patterns cover roughly 80 percent of what mobile candidates actually see in this round.
The platform-specific coding round
This is where your real mobile engineering knowledge matters. Expect questions on:
iOS (Swift)
- UIKit vs SwiftUI — Understand both. Know that SwiftUI is preferred for new code at many companies but UIKit still dominates legacy screens. Be comfortable explaining tradeoffs.
- Memory management — ARC (Automatic Reference Counting), strong vs weak vs unowned references, and classic retain-cycle scenarios (delegate patterns, closure captures). Being asked to spot a retain cycle in 10 lines of code is a common interview exercise.
- Concurrency — Swift Concurrency (async/await, actors, Task groups) introduced in Swift 5.5 is now expected at senior levels. Also know DispatchQueue and the risks of shared mutable state. Interviewers at Apple specifically probe this area deeply.
- App lifecycle —
UIApplicationDelegate, scene-based lifecycle (iOS 13+), state transitions (foreground, background, suspended), background fetch. - Networking —
URLSession, Codable, handling network errors gracefully, retry logic.
Android (Kotlin)
- Jetpack Compose vs XML layouts — Compose is the forward direction; know its composition model, recomposition triggers, and state hoisting pattern.
- Activity and Fragment lifecycle —
onCreate,onStart,onResume, configuration changes,ViewModelsurviving rotation. Candidates who conflate Fragment and Activity lifecycle events get filtered quickly. - Coroutines and Flow —
suspendfunctions,viewModelScope, cold vs hot flows,StateFlowvsSharedFlow. Know how to cancel coroutines correctly and why structured concurrency matters. - Dependency injection — Hilt (most common in new Android code) or Dagger. At minimum understand the module/component/inject pattern.
- Architecture — MVVM with clean layers (data/domain/presentation) is the expected answer. Be able to sketch a dependency diagram.
Mobile system design interviews
This is the round that surprises candidates most, especially those who prepared only for backend system design. Mobile system design is a different discipline entirely.
Common prompts:
- Design Instagram's feed (infinite scroll, image caching, offline support)
- Design a real-time chat client (WebSocket vs polling, message ordering, delivery receipts)
- Design a ride-sharing client (location updates, map rendering, state machine for trip lifecycle)
- Design a news aggregator with offline reading mode
- Design a video player with adaptive bitrate streaming
The framework that works:
- Clarify requirements — Is offline support required? What's the target latency? iOS only or cross-platform? Expected data volume?
- Define the API contract — What endpoints exist or should exist? REST vs GraphQL vs WebSocket for each data type?
- Data model and local storage — Core Data vs Realm vs SQLite on iOS; Room on Android. When to cache, when to invalidate, how to handle stale data.
- Network layer — Request deduplication, exponential backoff, offline queue (store-and-forward pattern), certificate pinning if security-sensitive.
- State management — Single source of truth, unidirectional data flow (Redux pattern on Android; similar in SwiftUI with
@StateObject). - Performance constraints — Memory footprint, battery impact (batching network calls, background task limits on iOS), rendering performance (60fps baseline).
- Error handling and observability — Crash reporting integration, analytics events, graceful degradation.
You will not be expected to cover all of these for every prompt. The goal is to demonstrate that you think in layers — from API contract to local persistence to UI rendering — and that you understand the mobile-specific constraints that don't exist in pure backend design.
For more on general system design interview preparation for new grads, especially the fundamentals of distributed systems that inform the server side of mobile architecture.
12-week prep timeline for mobile engineering interviews
This schedule assumes you have foundational mobile development experience (coursework, internship, or personal projects) and are targeting roles at mid-to-large tech companies.
- Weeks 1–2: Audit your algorithms gaps. Take a diagnostic LeetCode session (20 problems, mixed difficulty). Identify your weakest pattern areas and build a targeted list.
- Weeks 3–5: Core algorithms prep. Two problems per day minimum. Focus on graph, tree, DP, and sliding window patterns. Review in your primary language.
- Weeks 6–7: Platform fundamentals deep-dive. Read the Apple Human Interface Guidelines and WWDC session transcripts (iOS) or the Android Developer documentation on architecture (Android). Build one small feature from scratch that exercises the concurrency model.
- Week 8: Mobile system design. Walk through three design prompts end-to-end. Use a whiteboard or paper. Time yourself at 45 minutes per prompt.
- Week 9: Mock interviews. Do at least two mock sessions with a peer or paid service. Record yourself. Review the recordings — candidates routinely underestimate how much they mumble during whiteboard problems.
- Week 10: Behavioral prep. Write STAR-format stories for your top five experiences. Rehearse out loud, not just in your head. International candidates who've spoken English primarily in academic settings often need more practice than they expect for the conversational pace of US interviews.
- Weeks 11–12: Consolidation, targeted company research, and interview logistics. Research each company's mobile stack (check tech blogs, engineering talks). Prepare questions for the hiring manager round.
Visa context: what you need to know going into mobile engineering interviews
Mobile engineering is unambiguously a specialty occupation under USCIS's H-1B specialty-occupation standard. Both iOS and Android engineering roles require at minimum a bachelor's degree in computer science or a related field, which satisfies the theoretical and practical application requirement.
On OPT or STEM OPT: Your initial OPT period gives you 12 months of work authorization after graduation. If your degree is in a STEM-designated field (CS, CE, EE, and most related programs qualify — verify your CIP code against the official STEM OPT qualifying majors list), you can apply for a 24-month STEM OPT extension, giving you up to 36 months total. The 90-day unemployment limit applies throughout — if you finish an interview loop and are between jobs, that clock is running.
H-1B path for mobile engineers: Large tech companies (Apple, Google, Meta, Microsoft, Amazon) have consistently been among the top H-1B sponsors and routinely file on behalf of mobile engineers. The mobile developer H-1B sponsorship landscape is broadly favorable for iOS and Android engineers relative to many other fields. Startups vary significantly — use the H-1B sponsor verification checklist before accepting an offer from a smaller company.
The DOL prevailing wage requirement: Your H-1B salary must meet the Department of Labor's prevailing wage for the role and location. Mobile engineers at large companies typically earn well above wage levels 1 and 2, but a below-market startup offer could complicate the LCA filing.
Green card planning: Most large tech companies that sponsor H-1B will also sponsor PERM for EB-2 or EB-3. If you're from India or China, the EB-2 India backlog is substantial; some candidates pursue an EB-2 NIW self-petition in parallel or use the EB-3 downgrade strategy to move faster.
Common mistakes
Preparing only with LeetCode and skipping platform knowledge. At companies like Apple and Airbnb, platform depth is weighted as heavily as algorithms. Candidates who can reverse a linked list but can't explain ARC or Activity backstack behavior often don't pass the platform round.
Over-relying on Kotlin or Swift for algorithms. Both languages are fine, but if you're slower at problem-solving in them than in Python, the time pressure in the algorithms round will hurt you. Know your tradeoffs.
Treating mobile system design like backend system design. Naming technologies like Kafka, Cassandra, and Kubernetes in a mobile design interview signals that you've prepared for the wrong type of interview. Ground your answer in local storage, rendering, and client-server contract design.
Not practicing spoken explanation. Mobile interviews at FAANG companies involve constant narration — you must talk through your reasoning while coding. For non-native English speakers, this dual-tasking requires deliberate practice, not just solving more problems silently.
Underselling the visa answer or avoiding it. Recruiter screens almost always include a sponsorship question. Fumbling it — being evasive or apologizing — sets a negative tone for the entire loop. Prepare a single confident sentence.
Not researching the company's mobile stack. Apple interviews differently from Meta, which interviews differently from a Series B startup. Meta emphasizes scale; Apple emphasizes platform correctness and polish. Knowing this changes which tradeoffs you highlight.
Frequently asked questions
What programming language should international candidates prioritize for iOS interviews — Swift or Objective-C?
Swift is the clear priority for virtually every iOS role posted today. Objective-C knowledge is a nice bonus at companies with large legacy codebases (enterprise apps, older FAANG teams), but interviewers will not penalize you for being Swift-only. Focus on Swift — its protocols, value types, and concurrency model — before spending any time on Objective-C.
How do mobile system design interviews differ from backend system design interviews?
Mobile system design interviews focus on client-side architecture rather than distributed server infrastructure. You'll be asked to design a feed, offline sync layer, image caching system, or a real-time chat client — not a distributed database. Key areas are local storage strategy, network layer design (retry/backoff/caching), state management, and battery/bandwidth constraints. Backend concepts like sharding and consensus algorithms rarely come up unless you're designing the client-server contract.
Do large companies like Meta, Google, and Apple sponsor H-1B visas for mobile engineers?
Yes — large tech companies including Apple, Google, Meta, and Microsoft have consistently been among the largest H-1B sponsors in the US. Mobile engineering (iOS and Android) is treated the same as any other software engineering role for sponsorship purposes. OPT and STEM OPT are both accepted during the job-search and early employment phases, giving you up to 36 months of authorized work authorization before you need an H-1B.
How much time should an international student realistically spend preparing for mobile engineering interviews?
A focused candidate with solid mobile development experience (coursework or internships) can be interview-ready in 8 to 12 weeks. Allocate roughly 40 percent of your time to data structures and algorithms, 30 percent to platform-specific topics (Swift/Kotlin, lifecycle, concurrency), 20 percent to system design, and 10 percent to behavioral and visa-question preparation. Candidates switching from another platform should add 2 to 4 weeks for the platform fundamentals.
What should I say when an interviewer asks whether I need visa sponsorship for a mobile engineering role?
Be direct and confident. Say something like "I'm currently on OPT and authorized to work without any employer action for the next X months. I will need H-1B sponsorship before my OPT expires, and I'd like to confirm early that [Company] has a sponsorship program." Frame it as a logistical step you're managing proactively — not as a liability. Practicing this answer out loud before the interview removes the hesitation that reads as nervousness.
If you're preparing for mobile engineering interviews and want a structured plan tailored to your timeline and visa situation, F1Jobs works with international candidates through every stage — from offer strategy to H-1B filing.
Frequently asked questions
What programming language should international candidates prioritize for iOS interviews — Swift or Objective-C?
Swift is the clear priority for virtually every iOS role posted today. Objective-C knowledge is a nice bonus at companies with large legacy codebases (enterprise apps, older FAANG teams), but interviewers will not penalize you for being Swift-only. Focus on Swift — its protocols, value types, and concurrency model — before spending any time on Objective-C.
How do mobile system design interviews differ from backend system design interviews?
Mobile system design interviews focus on client-side architecture rather than distributed server infrastructure. You'll be asked to design a feed, offline sync layer, image caching system, or a real-time chat client — not a distributed database. Key areas are local storage strategy, network layer design (retry/backoff/caching), state management, and battery/bandwidth constraints. Backend concepts like sharding and consensus algorithms rarely come up unless you're designing the client-server contract.
Do large companies like Meta, Google, and Apple sponsor H-1B visas for mobile engineers?
Yes — large tech companies including Apple, Google, Meta, and Microsoft have consistently been among the largest H-1B sponsors in the US. Mobile engineering (iOS and Android) is treated the same as any other software engineering role for sponsorship purposes. OPT and STEM OPT are both accepted during the job-search and early employment phases, giving you up to 36 months of authorized work authorization before you need an H-1B.
How much time should an international student realistically spend preparing for mobile engineering interviews?
A focused candidate with solid mobile development experience (coursework or internships) can be interview-ready in 8 to 12 weeks. Allocate roughly 40 percent of your time to data structures and algorithms, 30 percent to platform-specific topics (Swift/Kotlin, lifecycle, concurrency), 20 percent to system design, and 10 percent to behavioral and visa-question preparation. Candidates switching from another platform should add 2 to 4 weeks for the platform fundamentals.
What should I say when an interviewer asks whether I need visa sponsorship for a mobile engineering role?
Be direct and confident. Say something like "I'm currently on OPT and authorized to work without any employer action for the next X months. I will need H-1B sponsorship before my OPT expires, and I'd like to confirm early that [Company] has a sponsorship program." Frame it as a logistical step you're managing proactively — not as a liability. Practicing this answer out loud before the interview removes the hesitation that reads as nervousness.