Kotlin avanzado: coroutines, Flow, generics, DSLs, null-safety y rendimiento.
Android Jetpack y Compose: ViewModel, Navigation, Room, WorkManager, DataStore, Jetpack Compose y Material 3.
Arquitecturas escalables: Clean Architecture, MVVM/MVI, SOLID, modularización y capas bien definidas.
Concurrencia y reactividad: dominio de Coroutines/Flow y/o RxJava, cancelación, backpressure y threading.
Networking y offline-first: Retrofit/OkHttp, WebSockets, manejo de errores, caching, sincronización y persistencia con Room.
Testing integral: unitario, de integración y UI (JUnit/MockK o Mockito, Robolectric, Espresso), coverage y testability.
Inyección de dependencias: Hilt/Dagger (o Koin), scopes, grafos y testing de módulos.
Rendimiento y perfilado: Android Profiler, Systrace/Perfetto, LeakCanary, optimización de arranque, render y uso de memoria.
Build system y CI/CD: Gradle/AGP, flavors, AAB, R8/ProGuard, firmas, Play Console, pipelines (GitHub Actions/Bintrise/CircleCI).
Seguridad y cumplimiento: Keystore, cifrado, almacenamiento seguro, permisos, Play Integrity/SafetyNet, OWASP MASVS y ofuscación.
Preferencia con experiencia en Java para Android.
Más de 1 año de experiencia desarrollando aplicaciones para Android.
Manejo intermedio de Java para Android.
Manejo de al menos un año en Kotlin.
Conocimientos de Git para colaboración Push, Pull, Checkout, entre otros.
Conocimientos de git flow.
Manejo de arquitecturas de aplicaciones.