Salar Rastari
Senior Android Developer | Kotlin, Jetpack Compose, Kotlin Multiplatform
Hire this person
Send a job offer directly to this candidate
About
Senior Android Developer with 8+ years of production experience in Kotlin, Jetpack Compose, and Kotlin Multiplatform. Led a full XML-to-Compose migration and a Clean Architecture/MVVM refactor, and built complex multi-service REST integrations, real-time data systems, and offline-capable apps with Room. Recently published The Road – BC Instructor Tools, a KMP app shipped to Google Play and the App Store from a shared Kotlin core; also experienced with Spring Boot services, GitHub Actions CI/CD, and mentoring junior developers.
Experience
Senior Android Developer at ISSI-Tec (2019-07 – 2026-05)
- Led the end-to-end migration from XML/View layouts to Jetpack Compose over 4 months, having originally authored the XML UI layer, reducing UI rendering time by ~40% and cutting new-screen development effort roughly in half.
- Drove adoption of Clean Architecture with MVVM/MVI across the mobile codebase, replacing a monolithic structure and improving delivery speed by ~35%, measured by reduced PR cycle times and fewer regression bugs per sprint.
- Built multi-service REST integrations across distributed IoT backends, using parallel Coroutines async/await to aggregate data into unified UI state, a custom response wrapper for centralised error handling and auth token refresh, and retry logic for unstable networks.
- Used Kotlin Multiplatform daily to share networking (Ktor), persistence (Room), and business logic across Android and iOS, significantly reducing duplicated platform code.
- Integrated Firebase Realtime Database and Socket.IO for live device status and event streams, replacing polling and cutting latency for time-sensitive telemetry.
- Architected offline caching with Room and Jetpack Paging 3 for large device and telemetry datasets, enabling smooth infinite scroll and read-only access in the field when connectivity was unavailable.
- Implemented classic Bluetooth connectivity for pairing and audio streaming to headsets, handling connection state, reconnection, and audio routing.
- Replaced legacy RxJava async handling with Coroutines and Flow, eliminating a class of threading crashes, and resolved memory leaks and load-time bottlenecks using Android Profiler and LeakCanary.
- Designed automated CI/CD pipelines in GitHub Actions covering unit tests, lint, and build verification across development, staging, and production, and built Spring Boot services supporting mobile-to-backend communication.
- Mentored 2 junior Android developers through code reviews and pair programming on Coroutines, Flow, and Clean Architecture; both became independent contributors within 6 months.
Independent Contractor / Relocation to Canada at Independent (2018-01 – 2019-12)
Freelance Android development and relocation from Tehran to Vancouver, BC.
Android Developer at Iran Nara (2015-04 – 2018-07)
- Developed and shipped production Android applications in Java and Kotlin, focusing on performance optimisation and application stability for high-traffic user bases.
- Integrated secure RESTful APIs and backend communication systems for sensitive financial data workflows.
- Analysed user behaviour metrics to guide feature improvements and increase application usability; findings directly informed two peer-reviewed publications on mobile banking UX (2015).
- Contributed to Spring Boot backend services and engineering tooling shared across the mobile and web product.
Education
Master of Science in Computer Software Engineering – Azad University (2015)
Bachelor of Science in Computer Software Engineering – Azad University (2013)