Writing · English

Articles

Carousel articles I first published on LinkedIn — on architecture, the business cost of technical decisions, and how Android works under the hood.

Follow on LinkedIn

System Design: From Code to Business Value

Architecture decisions explained in terms of cost, risk and speed — for engineers and the people who fund them.

Inside AOSP

How Android works below the app layer: Zygote, HALs, the Binder driver, power management and memory pressure.

Android Architecture Essentials

Short comparisons of the structural choices every Android team faces: DI approach, presentation pattern, navigation model.

30-Day Android Challenge: From Basics to Advanced

My first 30-day series (April–June 2025): long-form deep dives from Activity and Context to Compose, coroutines, testing and CI/CD — often traced down to how AOSP implements them.

April 26, 2025 · 11 slidesDay 1: Activity and Its LifecycleApril 27, 2025 · 12 slidesDay 2: Navigation Architecture: Tasks, Back Stack and Launch ModesApril 28, 2025 · 17 slidesDay 3: ViewModels and Configuration ChangesApril 29, 2025 · 14 slidesDay 4: Context: The Vital Link Between App and Operating SystemApril 30, 2025 · 15 slidesDay 5: Resources and Qualifiers: Mastering Different ConfigurationsMay 1, 2025 · 24 slidesDay 6: Intents and Intent Filters: From Components to AOSP's Lower LayersMay 2, 2025 · 23 slidesDay 7: Broadcast Receivers MasterclassMay 4, 2025 · 17 slidesDay 8: Foreground Services and Their Place in AOSPMay 5, 2025 · 18 slidesDay 9: WorkManager: Taming Background ComplexityMay 7, 2025 · 17 slidesDay 10: Dissecting URIs in AndroidMay 9, 2025 · 17 slidesDay 11: Content Providers: Beyond a Database WrapperMay 10, 2025 · 16 slidesDay 12: Entering the World of Jetpack ComposeMay 11, 2025 · 18 slidesDay 13: State Management in Compose: From remember to ViewModel and UDFMay 12, 2025 · 18 slidesDay 14: Complex Layouts in Compose: ConstraintLayout and Custom LayoutsMay 13, 2025 · 16 slidesDay 15: Jetpack Navigation: Reliable, Scalable Navigation FlowsMay 14, 2025 · 17 slidesDay 16: Jetpack DataStore: Farewell to SharedPreferencesMay 18, 2025 · 22 slidesDay 17: Dependency Injection, Part 1: From Coupling to Manual DI, Hilt and DaggerMay 19, 2025 · 22 slidesDay 18: Dependency Injection, Part 2: Scopes, Bindings, Qualifiers and TestingMay 20, 2025 · 20 slidesDay 19: Runtime Permissions: Beyond the Basics, Towards TrustMay 22, 2025 · 20 slidesDay 20: Kotlin Coroutines and Flow: The End of Callback HellMay 23, 2025 · 24 slidesDay 21: Advanced Asynchronous Programming with Coroutines and FlowMay 26, 2025 · 17 slidesDay 22: A Deep Dive into MVVM and MVIMay 28, 2025 · 17 slidesDay 23: Visual Revolution with Jetpack Compose: AnimationsMay 29, 2025 · 23 slidesDay 24: Conquering Concurrency: Multi-threading in AndroidJune 2, 2025 · 22 slidesDay 25: Memory Management and Performance OptimizationJune 3, 2025 · 18 slidesDay 26: Security Best Practices for Android AppsJune 7, 2025 · 19 slidesDay 27: Testing Strategies, Part 1: Unit, Integration and UIJune 7, 2025 · 22 slidesDay 28: Testing Strategies, Part 2: Advanced TechniquesJune 8, 2025 · 20 slidesDay 29: Boosting Scalability with ModularizationJune 8, 2025 · 23 slidesDay 30: CI/CD: Continuous Integration and Deployment