Oportunidad 100% remota.
Key Responsibilities
- Diseñar y desarrollar servicios backend aplicando Clean Architecture, Arquitectura Hexagonal y Domain Driven Design.
- Implementar patrones de diseño como Repository, Factory, Strategy y Observer.
- Aplicar principios SOLID en el desarrollo diario.
- Desarrollar e integrar APIs RESTful seguras, eficientes y escalables.
- Trabajar con bases de datos SQL (PostgreSQL/MySQL) y NoSQL (MongoDB/Redis).
- Implementar pruebas unitarias y TDD para asegurar alta cobertura y calidad de código.
- Integrar servicios de autenticación (JWT, OAuth 2.0, API Keys).
- Implementar mensajería asíncrona con Kafka o RabbitMQ y arquitecturas event-driven.
- Participar en code reviews, refactorización y mejoras continuas.
- Colaborar con el equipo en la definición de pipelines de CI/CD y despliegues en contenedores Docker.
- Aplicar logging estructurado y técnicas de debugging para resolución de problemas.
Skills, Knowledge and Expertise
* Arquitectura Hexagonal: Experiencia implementando el patrón de diseño (excluyente)
* Domain Driven Design: Modelado del negocio con Entidades, Value Objects y Agregados
* Patrones fundamentales: Repository, Factory, Strategy, Observer
* Principios SOLID: Aplicación práctica en el diseño diario
Desarrollo Backend
* Node.js y TypeScript: Dominio avanzado del type system, async/await, manejo de errores
* APIs RESTful: Diseño e implementación siguiendo principios REST
* Bases de datos: Experiencia sólida con al menos una NoSQL (MongoDB, Redis) y una SQL (PostgreSQL, MySQL)
* Testing: TDD como práctica fundamental, unit testing con alta cobertura
Integraciones
* Consumo de APIs: REST, manejo robusto de errores, retry policies
* Autenticación: JWT, OAuth 2.0, API Keys
* Mensajería asíncrona: Experiencia con al menos un message broker (Kafka, RabbitMQ)
* Event-driven architecture: Publicación y consumo de eventos
DevOps Básico
* Docker: Creación y optimización de imágenes
* Git: Flujo de trabajo profesional, commits atómicos, branching
* CI/CD: Experiencia con pipelines automáticos
* Logging estructurado: Implementación de logs útiles para debugging
Calidad de Código
* Code reviews: Capacidad de dar y recibir feedback constructivo
* Refactoring: Mejora continua sin romper funcionalidad
* Debugging: Técnicas sistemáticas de resolución de problemas
