Lo que harás
- Desarrollar la integración Android del flujo de comunicación entre la aplicación, el dispositivo físico y el core del producto.
- Implementar y mantener comunicación Bluetooth Low Energy mediante GATT, incluyendo negociación de capacidades, MTU, fragmentación, timeouts y reconexión.
- Implementar los flujos de lectura y presentación de QR necesarios para iniciar sesiones de comunicación.
- Integrar el core en Rust mediante bindings delgados y contratos claros, evitando duplicar lógica crítica del protocolo en la capa mobile.
- Manejar correctamente el ciclo de vida de Android durante conexiones activas, cambios de foreground/background y reinicios.
- Construir recuperación ante desconexiones y reanudación de operaciones sin crear transacciones duplicadas.
- Implementar persistencia local segura para estado, evidencia pendiente y sincronización cuando corresponda.
- Integrar Android Keystore u otros mecanismos de plataforma para proteger material sensible sin almacenarlo directamente en la base local.
- Gestionar cambios entre Wi-Fi, red móvil y operación offline, coordinando la sincronización cuando la conectividad regresa.
- Construir instrumentación, logs y herramientas de diagnóstico que permitan reproducir fallas BLE sobre hardware real.
- Implementar pruebas unitarias, instrumentadas y de integración sobre distintos dispositivos Android.
- Trabajar con QA para medir latencia, tasa de éxito, retransmisiones y comportamiento con diferentes MTU y condiciones de conexión.
- Documentar la superficie pública del SDK y ejemplos de integración para otros desarrolladores.
Lo que buscamos
- Experiencia sólida desarrollando aplicaciones o SDKs Android en Kotlin.
- Experiencia práctica con Bluetooth Low Energy y GATT en Android.
- Comprensión de MTU, fragmentación, timeouts, reconexión y problemas comunes de BLE en hardware real.
- Experiencia trabajando con ciclo de vida Android, concurrencia y operaciones de larga duración.
- Conocimiento de almacenamiento local y estrategias offline-first.
- Experiencia integrando APIs backend y manejando cambios de conectividad.
- Manejo de Android Studio, ADB, Logcat, profiling y debugging sobre dispositivos físicos.
- Experiencia escribiendo pruebas unitarias e instrumentadas.
- Capacidad para trabajar con contratos técnicos precisos y colaborar con equipos de backend, Rust y QA.
Puntos extra
- Experiencia con Flutter e integración de plugins nativos.
- Bindings hacia librerías Rust mediante JNI, FFI, UniFFI o herramientas equivalentes.
- Experiencia construyendo SDKs reutilizables en lugar de únicamente aplicaciones finales.
- Android Keystore, TEE o manejo seguro de claves en dispositivos móviles.
- Experiencia con QR, cámaras y condiciones reales de captura.
- Wireshark, herramientas de inspección BLE o diagnóstico de radio.
- Experiencia con POS, IoT, kioscos, terminales o hardware conectado.
- Experiencia en aplicaciones transaccionales u offline donde duplicar o perder una operación sea crítico.
Sueldo: A partir de $30,000.00 al mes
Pregunta(s) de postulación:
- ¿Cuántos años de experiencia profesional tienes desarrollando en Android con Kotlin?
- ¿Has implementado Bluetooth Low Energy (BLE) mediante GATT en Android y trabajado directamente con dispositivos físicos?
- ¿Has trabajado directamente con problemas de BLE como MTU, fragmentación, timeouts, reconexiones o pérdida de conexión?
- ¿Has desarrollado aplicaciones Android que deban mantener o recuperar operaciones durante cambios de foreground/background, reinicios, pérdida de conectividad o funcionamiento offline?
- Cuéntanos brevemente sobre el proyecto Android más complejo en el que hayas trabajado con BLE o hardware conectado. ¿Qué problema resolvía y qué parte implementaste tú?
- ¿Cuál es tu expectativa económica mensual libre?
Lugar de trabajo: Empleo presencial