Lo que harás
- Construir y evolucionar el core transaccional y los componentes de protocolo en Rust.
- Implementar tipos de dominio fuertes para operaciones, identificadores, estados, cantidades y errores, evitando ambigüedades en datos críticos.
- Implementar serialización binaria determinista y validación estricta de contratos versionados.
- Desarrollar lógica de hashing, firmas, verificación de evidencia y protección contra replay siguiendo las decisiones de seguridad del proyecto.
- Implementar máquinas de estado y reglas de idempotencia para que reintentos, duplicados o mensajes repetidos no generen efectos adicionales.
- Diseñar componentes tolerantes a desconexiones, reinicios y reanudaciones sin perder una operación ya persistida.
- Trabajar con persistencia local y transacciones atómicas cuando el core necesite journal, outbox, secuencias o evidencia durable.
- Definir límites de tamaño, memoria y concurrencia para procesar mensajes no confiables de forma segura.
- Construir pruebas unitarias, vectores binarios y pruebas de compatibilidad byte a byte.
- Participar en revisiones de arquitectura y mantener los contratos técnicos alineados con backend, mobile y QA.
- Investigar defectos de protocolo utilizando logs, vectores de prueba y reproducciones deterministas.
- Mantener calidad de código con revisión, linting, CI y documentación técnica suficiente para que otros equipos integren el core.
Lo que buscamos
- Experiencia sólida desarrollando software en Rust y capacidad para escribir código de producción mantenible.
- Dominio de ownership, lifetimes, traits, manejo explícito de errores y diseño de APIs internas seguras.
- Experiencia con programación asíncrona en Rust y Tokio cuando el componente lo requiera.
- Experiencia con Serde y serialización/deserialización de datos.
- Conocimiento de protocolos binarios, contratos versionados o formatos compactos como CBOR, Protobuf o equivalentes.
- Comprensión sólida de idempotencia, reintentos, estados y manejo de duplicados.
- Experiencia escribiendo pruebas unitarias e integración sobre componentes de infraestructura o dominio.
- Conocimiento práctico de criptografía aplicada: hashes, firmas digitales, nonces, gestión segura de secretos y validación de entradas.
- Capacidad para analizar fallos a bajo nivel y documentar contratos técnicos con precisión.
Puntos extra
- Experiencia con CBOR determinista y CDDL.
- Property-based testing o fuzz testing.
- Experiencia con SQLite y patrones de journal / transactional outbox.
- Conocimiento de COSE, PKI, KMS/HSM o protocolos criptográficos modernos.
- Experiencia construyendo SDKs, librerías multiplataforma o bindings mediante FFI/JNI.
- Conocimiento de BLE/GATT suficiente para comprender restricciones de transporte, MTU y fragmentación.
- Experiencia en sistemas transaccionales, fintech, IoT o software de misión crítica.
Sueldo: A partir de $30,000.00 al mes
Pregunta(s) de postulación:
- ¿Cuántos años de experiencia profesional tienes desarrollando en Rust y cuánto de ese tiempo has trabajado con código de producción?
- ¿Has desarrollado sistemas en Rust utilizando ownership, lifetimes, traits y manejo explícito de errores en código de producción?
- ¿Has trabajado con serialización binaria, protocolos o contratos de datos versionados (por ejemplo CBOR, Protobuf, CDDL o equivalentes)?
- ¿Has implementado lógica de idempotencia, reintentos, máquinas de estado o manejo de mensajes duplicados en sistemas transaccionales?
- Cuéntanos brevemente sobre el componente o sistema más complejo que hayas desarrollado en Rust. ¿Qué problema resolvía y qué parte diseñaste o implementaste tú?
- ¿Cuál es tu expectativa económica mensual libre?
Lugar de trabajo: Empleo presencial