InterviewStack.io LogoInterviewStack.io
đź’»

Programming Languages & Core Development Topics

Programming languages, development fundamentals, coding concepts, and core data structures. Includes syntax, algorithms, memory management at a programming level, asynchronous patterns, and concurrency primitives. Also covers core data manipulation concepts like hashing, collections, error handling, and DOM manipulation for web development. Excludes tool-specific proficiency (see 'Tools, Frameworks & Implementation Proficiency').

Swift Language Fundamentals

Fundamental Swift language concepts and idioms that are commonly assessed in mobile interviews. Areas to master include core syntax and type system, optionals and optional handling, error handling patterns, closures and capturing semantics, value types versus reference types, protocol oriented programming, generics and type constraints, memory management with automatic reference counting, common standard library functions and higher order functions, concurrency primitives available in Swift, and best practices for writing idiomatic and testable iOS code.

0 questions

Advanced Concurrency and Complex Synchronization

Complex multi-threading scenarios: race conditions, deadlocks, priority inversion, live locks. Designing thread-safe code at scale with minimal locking overhead. Understanding synchronization primitives deeply: mutexes, semaphores, atomic operations. Solving real-world concurrency bugs in production. Advanced reactive programming patterns and their performance implications.

0 questions

Data Structures and Collections in Kotlin

Efficient use of Kotlin collections (List, Set, Map, Sequence), understanding immutability benefits, extension functions for collection operations, and choosing appropriate data structures for Android scenarios with memory constraints.

0 questions

Mobile Memory and Resource Management

Covers memory management principles and resource handling for mobile applications across platforms. Candidates should understand platform specific models such as automatic reference counting on iOS and garbage collection on Android, common causes of memory leaks and retain cycles, and how reference ownership and weak versus strong references affect lifetime. Include techniques for releasing resources correctly in lifecycle methods and avoiding long lived references that hold activity or context objects. Expect knowledge of memory profiling and diagnostics including tools and workflows for locating leaks and high memory usage, strategies to prevent out of memory conditions, and trade offs such as requesting a larger heap. Also cover cross platform considerations for frameworks like React Native and Flutter and practical practices for identifying and fixing real memory issues in production, such as analyzing heap dumps, using allocation instrumentation, and applying targeted fixes and regression tests.

0 questions

Asynchronous Programming and Concurrency

Core concepts and practical patterns for writing correct and efficient asynchronous code on mobile platforms. Topics include the distinction between the main user interface thread and background threads, scheduling and prioritizing background work, asynchronous I O patterns, callback versus promise versus async await styles, structured concurrency and cancellation, concurrency primitives and thread safety, race conditions and deadlocks, synchronization and immutability strategies, reactive and stream based approaches, platform specific implementations such as coroutines and dispatch queues, best practices for testing and debugging concurrent code, and the performance and battery trade offs of different concurrency choices.

0 questions

Hash Maps and Sets

Understanding how hash based key value stores and set data structures are used to implement fast membership tests, frequency counting, grouping, deduplication, caching, and memoization. Candidates should be able to explain average constant time insert and lookup behavior, discuss collision handling and memory overhead, and compare trade offs with alternative approaches such as sorting, balanced trees, arrays, or bit sets. Expect applied examples such as two sum, sliding window frequency maps, top K counting, union and intersection operations, and discussions of time versus space trade offs when selecting a structure.

0 questions

Android Concurrency and Coroutines

Concurrency and asynchronous programming patterns on Android, covering traditional thread and handler models, legacy constructs such as AsyncTask, reactive approaches such as RxJava, and modern Kotlin coroutine based techniques. Topics include suspend functions, CoroutineScope and Dispatchers, structured concurrency, cancellation, exception handling, flows for streams of asynchronous data, integration with Android lifecycle components, thread safety and synchronization on Android, and best practices for coordinating background work and updating the user interface on the main thread.

0 questions

Mobile Performance and Data Structures

Understanding how data structure and algorithm choices affect mobile applications and constrained environments. Candidates should discuss memory usage CPU and battery implications of different structures, garbage collection pressure and allocation patterns, and strategies to reduce memory and compute overhead on mobile devices. This includes preferring memory efficient structures avoiding unnecessary copies reducing allocation churn using pooling or compact representations and reasoning about algorithmic complexity in the context of limited RAM and CPU and thermal and battery constraints.

0 questions

Concurrency and Threading on Mobile Platforms

Comprehensive understanding of concurrent programming specific to mobile. iOS: Grand Central Dispatch (GCD), OperationQueue, NSOperationQueue, thread safety, synchronization primitives. Android: ThreadPoolExecutor, Handler, HandlerThread, Coroutines, thread safety. Cross-platform reactive patterns with RxSwift, RxKotlin. Understanding race conditions, deadlocks, priority inversion, and how to design thread-safe mobile code. Real experience debugging concurrency bugs.

0 questions
Page 1/4