Testimonials
Services
Ask Me Anything
Interview Preparation
Discovery Call
Resume Review
Problem Solving Preps & Tips
Career Advice
1:1 Mentorship
System Design Preps & Tips
Take-home Task Preps & Tips
About me
- Ahmed has worked in several technical initiatives where he demonstrated strong technical skills and collaborated in architectural discussions and writing onboarding documentation for legacy systems.Recommended by Raúl Hernández 🇪🇸 on
- Committing 5% of my income to 🇵🇸
Frequently asked questions
What is Jetpack Compose in Android?
Jetpack Compose is Android's modern, fully declarative UI toolkit for building native interfaces in Kotlin. Instead of writing XML layouts and manually updating views, you describe your UI as composable functions and let the framework redraw only what changes when state changes. It cuts boilerplate, makes UI code easier to test and reuse, and is now the approach Google recommends for new Android apps.
How to use Jetpack Compose in Android Studio?
The simplest way is to create a new project with the "Empty Activity" template, which comes with Jetpack Compose enabled, or add the Compose build features and the Compose BOM to an existing app's Gradle files. You then build screens with @Composable functions, preview them instantly using @Preview, and speed up iteration with Live Edit. For older codebases, you can adopt Compose incrementally by embedding ComposeView inside your existing XML screens.
How to learn Jetpack Compose?
The most effective path to learn Jetpack Compose is to get comfortable with Kotlin first, then work through the official codelabs before rebuilding a small real app — a notes, weather, or shopping screen — entirely in Compose. Focus early on state management, recomposition, layouts, and navigation, since these cause the most confusion for beginners. Getting regular feedback from an experienced Compose mentor can significantly shorten the trial-and-error phase.
Jetpack Compose vs XML: which should you use for your Android UI?
In the Jetpack Compose vs XML decision, Compose is the better choice for new apps and modern architecture because it is Kotlin-first, declarative, and far less boilerplate-heavy, while XML still makes sense for large legacy codebases that are not ready for a migration. Many teams take a middle path: maintaining existing XML screens and building all new features in Compose until a full migration is justified.
How does Jetpack Compose navigation work?
Jetpack Compose navigation is handled through the Navigation Compose library: you define a NavHost, register destinations as composables, and move between them using a NavController. Newer versions support type-safe navigation, where each destination receives a serializable route object instead of a string path, which reduces runtime crashes. For larger apps, nested navigation graphs help keep the back stack and deep links organized.
What Jetpack Compose interview questions are asked most often?
The most common Jetpack Compose interview questions revolve around state management and recomposition, state hoisting, remember vs rememberSaveable, side effects like LaunchedEffect and DisposableEffect, and performance tuning with LazyColumn keys. Interviewers also like practical exercises, such as building a small screen or explaining how you would debug excessive recompositions. Rehearsing these out loud, ideally in a mock interview with a senior Android engineer, makes a noticeable difference.
What is Kotlin Multiplatform (KMP)?
Kotlin Multiplatform (KMP) is a technology from JetBrains that lets you share business logic — networking, data layers, validation, and algorithms — across Android, iOS, desktop, and web from a single Kotlin codebase, while each platform keeps a fully native UI. Its main advantage is flexibility: you can share as little or as much as you want and still drop down to Swift or platform-specific APIs whenever needed.
How to create a Kotlin Multiplatform project in Android Studio?
Start by installing the Kotlin Multiplatform plugin from Android Studio's plugin marketplace, then pick the Kotlin Multiplatform App template from the new-project gallery, or use the web-based Kotlin Multiplatform wizard, and select the platforms you want to target. The generated project gives you a shared module for common logic plus separate Android and iOS entry points — the Android app runs directly from Android Studio, while the iOS app is built through Xcode or Fleet.
Kotlin Multiplatform vs Flutter: which should you choose?
The key difference in Kotlin Multiplatform vs Flutter is how the UI is handled: Flutter renders its own UI with Dart on every platform, while KMP keeps native UIs like Jetpack Compose and SwiftUI and shares only the underlying logic in Kotlin. KMP is usually the stronger option for teams with existing Kotlin or iOS codebases and apps that need to feel fully native, while Flutter can be faster for small teams that want a single UI codebase and are starting from scratch.
Kotlin Multiplatform vs React Native: how do they compare?
When weighing Kotlin Multiplatform vs React Native, the main trade-off is language and architecture: React Native builds UIs in JavaScript or TypeScript using the React model, whereas KMP compiles Kotlin to native code and lets you keep SwiftUI or Compose screens. KMP typically delivers closer-to-native behaviour and suits Android-first teams, while React Native can be more productive for teams already invested in JavaScript and web talent.
Can you use Kotlin Multiplatform for iOS?
Yes — Kotlin Multiplatform for iOS works by compiling your shared Kotlin code into a framework that Swift can call directly, so the iOS app keeps its native SwiftUI or UIKit interface while networking, caching, and business logic live in the shared module. Tools like SKIE make the Swift APIs feel more idiomatic, and if you later want to share screens too, you can move the UI layer to Compose Multiplatform.
Compose Multiplatform vs Kotlin Multiplatform: what's the difference?
Kotlin Multiplatform is the umbrella technology for sharing logic across platforms, while Compose Multiplatform extends Kotlin's Compose UI toolkit so you can share the entire UI layer as well — one composable codebase rendering on Android, iOS, desktop, and web. In practice, most teams start with KMP for shared logic and native screens, then adopt CMP wherever sharing the UI saves real time.
What is the best Kotlin Multiplatform tutorial for beginners?
The best starting point is the official Kotlin Multiplatform tutorial, where you build your first shared iOS and Android app, followed by codelabs covering networking, data persistence, and platform-specific APIs. After one guided project, progress accelerates fastest when you migrate a small feature of your own app into a shared module, or join a structured KMP cohort where a mentor reviews your architecture as you build.
How to stand out as a mobile engineer in 2025?
The mobile engineers who stand out in 2025 combine depth with breadth: strong Kotlin and Jetpack Compose skills, working knowledge of Kotlin Multiplatform, solid mobile system design, and proof that you have shipped and maintained real apps. Public work also matters — open-source contributions, technical talks, and clear write-ups of your architecture decisions let hiring managers see your level quickly. Regular feedback from a senior mentor is one of the fastest ways to close the gaps you cannot see yourself.
How do I prepare for a mobile system design interview?
A mobile system design interview typically asks you to design something like an offline-first messaging app, an image feed, or a media player, so build a repeatable framework: clarify requirements, map the data flow and caching strategy, plan for offline mode and sync, address pagination and performance, and explain how you would test the result. Study real app architectures and rehearse the design out loud, since communication weighs as much as the solution — a couple of dry runs with an experienced interviewer will expose blind spots well before the real interview.