Senior Kotlin Multiplatform (KMP) Developer

  • Buenos Aires, Argentina
  • Full-Time
  • Remote

Job Description:

Descripción del Proyecto

Buscamos desarrolladores/as Kotlin Multiplatform para sumarse a un proyecto de alto impacto. El objetivo principal será desarrollar funcionalidades multiplataforma escalables, optimizar la arquitectura del proyecto e integrar aplicaciones para Android e iOS trabajando en estrecha colaboración con equipos multidisciplinarios.

Locación: Ec/Ar/Cl/Co/Pe/Uy

Inglés: No requerido

Responsabilidades Principales

  • Desarrollar y mantener nuevas funcionalidades utilizando Kotlin Multiplatform (KMP).

  • Diseñar componentes reutilizables y definir la arquitectura modular del código compartible.

  • Colaborar e integrarse activamente con los equipos de Android, iOS y Backend.

  • Integrar y adaptar SDKs multiplataforma.

  • Optimizar la performance, legibilidad y mantenibilidad de la aplicación.

  • Participar en decisiones clave de arquitectura y realizar code reviews rigurosos.

Requisitos Técnicos Indispensables

1. Dominio de Kotlin

  • Uso fluido de: Coroutines, Flow / StateFlow / SharedFlow, Extension Functions, Sealed Classes, Data Classes, Delegation, Inline Functions, Result y Generics.

  • Criterio y dominio técnico claro sobre la diferencia y uso adecuado de: object, class, interface, abstract class y sealed interface.

2. Kotlin Multiplatform (KMP)

  • Experiencia sólida trabajando con el mecanismo expect / actual, manejo de Source Sets (commonMain, androidMain, iosMain) y Gradle Multiplatform.

  • Manejo de Dependency Injection y uso de librerías compatibles con KMP.

  • Comprensión profunda de las limitaciones de compatibilidad entre plataformas.

3. Compose Multiplatform

  • Desarrollo de interfaces dinámicas aplicando: State Hoisting, remember, rememberSaveable, CompositionLocal, Side Effects, Navigation, LazyColumn, LazyGrid y Animaciones.

  • Comprensión sobre el comportamiento de Recomposition, Stability y optimización de Performance.

4. Arquitectura y Diseño

  • Aplicación de Clean Architecture, patrón MVVM, Dependency Inversion, Repository Pattern y Use Cases.

  • Experiencia en Arquitectura Modular, idealmente estructurando módulos como :core, :platform, :features y :appShell.

  • Claridad para definir responsabilidades entre las distintas capas del sistema.

5. Inyección de Dependencias & Networking

  • Manejo preferente de Koin (scopes, single, factory, módulos).

  • Experiencia consumiendo servicios a través de Apollo GraphQL, Ktor Client y REST.

  • Conocimiento de serialización, modelado de DTOs, Mapping y Domain Models.

6. Persistencia, Testing & Calidad

  • Manejo de DataStore y deseable experiencia con Room KMP (migraciones, versionado y caché local).

  • Experiencia realizando Unit Testing con MockK, Coroutines Test y Flow Testing.

  • Uso de herramientas de análisis estático de código como Sonar.

  • Control de versiones avanzado con Git (Rebase, Cherry Pick, Squash, resolución de conflictos).

Requisitos Deseables / Valorados

  • Integración de SDKs: Firebase, Dynatrace, Appdome, Analytics y plataformas de Crash Reporting.

  • Seguridad: Biometría, Encriptación, Certificate Pinning y Secure Storage.

Habilidades Blandas (Soft Skills)

  • Excelentes habilidades de comunicación técnica y fundamentación de decisiones de arquitectura.

  • Proactividad, pensamiento crítico y alto sentido de Ownership.

  • Capacidad para documentar decisiones técnicas e integrarse efectivamente a un entorno de trabajo colaborativo.