API Developer / Software Engineer

Publicada 4 de Septiembre

Diseñar y programar APIs y microservicios en Go o Node.js/TypeScript, garantizando que sean rápidos, seguros y escalables.

Gestionar y optimizar bases de datos (SQL, MongoDB, Redis) asegurando la correcta consulta, almacenamiento y velocidad de la información.

Asegurar la calidad y el despliegue mediante pruebas automáticas, documentación y empaquetado del código en Docker y CI/CD.

Requisitos mínimos

Conocimientos Técnicos Requeridos API

1. Fundamentos de Desarrollo

• Dominio sólido en lenguajes de programación como Go o Node.js/TypeScript.

• Conocimiento de estructuras de datos, concurrencia y optimización de rendimiento.

• Experiencia en programación orientada a objetos y/o programación funcional.

• Comprensión de algoritmos y análisis de complejidad (Big O).

2. Diseño y Arquitectura de APIs

• Experiencia en diseño e implementación de APIs RESTful.

• Manejo adecuado de métodos HTTP, códigos de respuesta y modelamiento de recursos.

• Implementación de estrategias de versionamiento de APIs.

• Documentación mediante OpenAPI / Swagger.

• Diseño de servicios idempotentes y tolerantes a reintentos.

• Implementación de paginación, filtrado, ordenamiento y control de consumo (rate limiting).

• Conocimiento de patrones arquitectónicos

o Arquitectura por capas.

o Clean Architecture.

o Arquitectura Hexagonal.

o Microservicios y arquitecturas distribuidas.

3. Bases de Datos

• Manejo avanzado de bases de datos relacionales:

o SQL.

o Joins, índices, transacciones y optimización de consultas.

• Experiencia con bases de datos NoSQL como:

MongoDB.

o Redis.

• Capacidad para definir la mejor tecnología según el caso de uso.

4. Seguridad

• Implementación de mecanismos de autenticación y autorización: JWT, OAuth 2.0, API Keys.

• Conocimiento de HTTPS, CORS y validación/sanitización de entradas.

• Aplicación de buenas prácticas de seguridad para APIs.

5. Calidad y Testing

• Desarrollo de pruebas unitarias, integración y pruebas de contrato.

• Uso de herramientas de mocking para dependencias externas.

• Integración de pruebas automatizadas dentro de pipelines CI/CD.

• Experiencia en aseguramiento de calidad de software.

6. Herramientas y Tecnologías Deseables

• Git (branching, code review, resolución de conflictos).

• Docker y containerización de aplicaciones.

• Conocimientos de Kubernetes (Pods, Deployments, Secrets y ConfigMaps).

• Implementación de pipelines CI/CD mediante GitHub Actions u herramientas equivalentes.

• Experiencia en mensajería asíncrona y procesamiento de eventos mediante RabbitMQ o tecnologías similares