Estamos buscando un Staff Software Engineer para establecer la dirección técnica en nuestra plataforma central. Es un rol práctico y de alto impacto para alguien que prospera en la ambigüedad y el alcance: operarás a través de las fronteras de los equipos, elevarás el nivel de ingeniería para todos a tu alrededor y estarás lo suficientemente cerca del código como para construir las partes más difíciles tú mismo.
Lo que impulsarás
- Este es un trabajo fundamental que escalará R2 al siguiente nivel y alcanzará a millones de usuarios en todo el mundo.
- Transformarás grandes problemas críticos para el negocio en arquitecturas que toda la organización pueda ejecutar, trabajos como:
- Descomposición a gran escala: romper sistemas fuertemente acoplados en dominios claramente delimitados a lo largo de las fronteras de servicio/aplicación y propiedad de datos, definiendo las costuras y secuenciando migraciones para que podamos enviar incrementos sin congelar la entrega del producto.
- Sistemas impulsados por eventos y ciclo de vida de datos: diseñar arquitecturas impulsadas por eventos para cosas como mover datos obsoletos de bases de datos operativas a almacenamiento en frío, manteniendo los sistemas transaccionales ágiles mientras se preservan las garantías de retención, auditabilidad y recuperabilidad que un fintech exige.
- Infraestructura de agentes a gran escala: ayudar a construir el ecosistema donde los agentes autónomos se despliegan, descubren e interactúan con nuestros sistemas y entre sí a gran escala, con observabilidad, políticas y seguridad como propiedades de primera clase, no negociables.
Requisitos
- Más de 8 años de experiencia en ingeniería construyendo servicios impulsados por API, con el apetito y la capacidad de programar a diario.
- Profunda experiencia en el diseño y construcción de servicios web en REST y/o gRPC, desde el diseño de interfaces hasta la operación en producción.
- Sólido historial con patrones de arquitectura distribuida, en particular microservicios y descomposición de monolitos: has hecho esto a gran escala real, no solo en una pizarra.
- Experiencia práctica en el diseño e implementación de arquitecturas impulsadas por eventos.
- Experiencia con captura de datos de cambios (CDC): transmisión de cambios desde bases de datos operativas (por ejemplo, Postgres WAL / replicación lógica, Debezium o equivalente) para alimentar replicación, pipelines de eventos y análisis posteriores.
- Alta competencia en observabilidad en los tres pilares: trazas, métricas y registros.
- Profunda experiencia práctica con OpenTelemetry para instrumentación, y con sistemas de métricas (Prometheus y PromQL, o equivalente) para definir SLIs, paneles de control y alertas, y usar esa telemetría para realmente impulsar decisiones.
- Sólida y demostrable capacidad de refactorización: puedes reestructurar grandes bases de código que soportan carga de manera segura e incremental.
- Fluidez con desarrollo basado en trunk, banderas de características y entrega continua de bajo riesgo.
- Fuerte competencia en Go (requerido). Experiencia adicional con Java, Python o Rust es un plus.
- Experiencia en el diseño e implementación de modelos de datos de producción robustos utilizando bases de datos como PostgreSQL, DynamoDB y/o Snowflake, incluyendo ciclo de vida de datos, retención y preocupaciones de archivo.
- Sólido entendimiento de la división OLTP–OLAP: diseñar sistemas transaccionales para cargas de trabajo operativas de baja latencia mientras se alimentan almacenes analíticos (por ejemplo, Snowflake) para informes y análisis, y saber dónde pertenece cada uno.
- Experiencia con contenedores (Docker, Docker Compose, Kubernetes).
- Experiencia práctica en el diseño y operación de búsqueda de texto completo (por ejemplo, Elasticsearch/OpenSearch o búsqueda de texto completo de PostgreSQL) en producción: indexación, relevancia y rendimiento de consultas a gran escala.
- Dominio profesional de inglés y español (requerido): colaborarás a través de equipos y mercados en ambos idiomas a diario.
- Juicio y habilidades de comunicación para influir en la dirección técnica a través de equipos y alinear a ingenieros y partes interesadas en un plan compartido.