Descripción del Rol
Buscamos un/a Backend Architect / Senior Backend Engineer para liderar el diseño e implementación de una plataforma backend segura, escalable y mantenible.
Este rol será responsable de las decisiones técnicas clave en arquitectura backend, diseño de APIs, seguridad, autenticación y autorización, persistencia de datos, escalabilidad, resiliencia, observabilidad y patrones de integración. El candidato ideal combina fuertes habilidades hands-on en desarrollo con Node.js/TypeScript con la capacidad de definir estándares de arquitectura y guiar decisiones técnicas dentro del equipo de ingeniería.
Responsabilidades Principales
- Liderar la arquitectura backend y establecer estándares técnicos, patrones y mejores prácticas de ingeniería.
- Diseñar servicios escalables y mantenibles usando TypeScript, Node.js y frameworks backend estructurados como NestJS.
- Definir los límites de servicios, módulos, patrones de integración y arquitectura del sistema.
- Evaluar enfoques arquitectónicos, incluyendo monolitos modulares y microservicios, en función de los requerimientos de negocio y técnicos.
- Diseñar y mantener APIs REST seguras, consistentes y versionadas.
- Definir y mantener contratos de API usando OpenAPI / Swagger.
- Establecer estándares para el manejo de errores de API, correlation IDs, retries, timeouts e idempotency.
- Diseñar la arquitectura de autenticación y autorización usando OAuth 2.0, OpenID Connect, JWT, PKCE, MFA, RBAC, claims y permisos.
- Integrar proveedores de identidad como Microsoft Entra ID / Entra External ID o plataformas equivalentes.
- Aplicar mejores prácticas de seguridad, incluyendo encryption, hashing, signing, key management, OWASP Top 10 y OWASP API Security.
- Definir requerimientos de auditoría y trazabilidad para operaciones sensibles y transacciones críticas.
- Ser responsable de la arquitectura de persistencia usando Azure SQL / SQL Server.
- Diseñar modelos de datos relacionales, transacciones, estrategias de schema y patrones de acceso a datos.
- Trabajar con ORMs/tecnologías de acceso a datos como Prisma, TypeORM o Drizzle.
- Diseñar servicios backend para escalabilidad horizontal, concurrencia y alta disponibilidad.
- Abordar race conditions, optimistic concurrency, coordinación distribuida y desafíos de shared-state.
- Definir estrategias de resiliencia, incluyendo retries, timeouts y mecanismos apropiados de manejo de fallas.
- Diseñar y operar cargas de trabajo backend containerizadas usando Docker.
- Colaborar con equipos de DevOps/plataforma en infraestructura cloud, CI/CD, deployment y requerimientos operacionales.
- Establecer estándares de structured logging y observabilidad de aplicaciones.
- Definir estrategias de testing y calidad backend, cubriendo unit, integration y API testing.
- Liderar discusiones de arquitectura y contribuir en code reviews de backend.
- Producir y mantener diagramas de arquitectura, documentación de APIs, decisiones técnicas y estándares de implementación.
- Colaborar estrechamente con equipos de frontend, mobile, QA, DevOps, seguridad y producto.
Requisitos Excluyentes (Must Have)
- Experiencia avanzada en desarrollo con TypeScript.
- Fuerte experiencia hands-on con Node.js y frameworks backend estructurados como NestJS.
- Sólido entendimiento del event loop de Node.js, Promises, async/await, manejo de errores asincrónicos, concurrency y non-blocking I/O.
- Sólido conocimiento de arquitectura de software, modularidad, escalabilidad, mantenibilidad y design patterns.
- Experiencia diseñando APIs REST de nivel producción.
- Experiencia definiendo contratos de API con OpenAPI / Swagger.
- Sólido conocimiento de tecnologías de autenticación y autorización, incluyendo:
- OAuth 2.0
- OpenID Connect
- JWT
- PKCE
- MFA
- RBAC y autorización basada en claims
- Experiencia práctica integrando proveedores de identidad enterprise.
- Sólido conocimiento de seguridad de aplicaciones, incluyendo cryptography, encryption at rest y in transit, uso seguro de keys y prácticas OWASP.
- Experiencia avanzada en SQL Server / Azure SQL.
- Sólido conocimiento de SQL, modelado de datos relacional, transacciones e integridad de datos.
- Experiencia con ORMs modernos de Node.js o frameworks de acceso a datos.
- Experiencia diseñando servicios stateless y horizontalmente escalables.
- Sólido entendimiento de concurrency, race conditions y consideraciones de sistemas distribuidos.
- Experiencia implementando sistemas resilientes con estrategias apropiadas de retry y timeout.
- Experiencia construyendo aplicaciones containerizadas usando Docker.
- Conocimiento avanzado de Git y experiencia trabajando con branching estructurado, pull requests y release workflows.
- Fuerte experiencia con testing automatizado unitario, de integración y de APIs.
- Experiencia implementando structured logging y observabilidad de aplicaciones.
- Capacidad de liderar decisiones técnicas y comunicar arquitectura de forma efectiva.
- Sólidas habilidades de documentación técnica.
Deseables (Nice to Have)
- Experiencia con Domain-Driven Design, bounded contexts, aggregates y domain services.
- Experiencia evaluando e implementando arquitecturas de microservicios o monolito modular.
- Experiencia con tecnologías de mensajería asincrónica como Azure Service Bus, Kafka o RabbitMQ.
- Experiencia con Redis o distributed caching.
- Experiencia identificando y resolviendo cuellos de botella de performance backend relacionados con latencia de APIs, interacciones de base de datos, CPU y uso de memoria.
- Experiencia en optimización de queries de base de datos y análisis de execution plans.
- Experiencia en migración de bases de datos y estrategias de rollback.
- Experiencia con patrones de circuit-breaker y graceful degradation.
- Experiencia con Kubernetes / Azure Kubernetes Service (AKS).
- Experiencia con Infrastructure-as-Code usando Terraform o Bicep.
- Experiencia definiendo estrategias de monitoring y alerting para APIs, infraestructura, bases de datos y sistemas de mensajería.
- Experiencia dando soporte a testing end-to-end de sistemas.
Job Type: Remote
Allowed Country: Argentina
