Para garantizar que un desarrollador o programador pueda mantener y evolucionar el software AccouRate, se deben definir requisitos claros a nivel de conocimientos técnicos, habilidades y experiencia. Aquí te detallo los puntos clave:
Conocimientos Técnicos Específicos
Back-End
1.
Node.js y TypeScript
• Experiencia en desarrollo con
Node.js y TypeScript.
• Conocimiento de Express para la implementación de APIs REST.
• Familiaridad con las mejores prácticas en el desarrollo backend (código modular, manejo de errores, validación de datos).
2. Bases de Datos Relacionales
• Dominio en la administración y optimización de MySQL.
• Conocimiento sobre diseño de esquemas relacionales y consultas SQL eficientes.
• Familiaridad con operaciones CRUD y la integración de bases de datos con APIs.
3. Python
• Experiencia en desarrollo con Python 3.8+ para el manejo de datos y creación de conectores.
• Manejo de librerías populares para transformación de datos (pandas, numpy).
• Capacidad para diseñar conectores específicos adaptados a bases de datos externas.
4. Seguridad
• Conocimiento de protocolos HTTPS y cifrado de datos.
• Implementación de medidas de seguridad en Apis y bases de datos (hashing de contraseñas, validación de entradas, protección contra ataques comunes como xss y sql injection).
5. Arquitectura
• Comprensión de arquitecturas monolíticas y microservicios.
• Conocimiento básico de estrategias de escalabilidad y gestión de carga.
Front-End
1.
React.js
• Experiencia en desarrollo con React 18.2 y TypeScript.
• Manejo avanzado de componentes, estados y hooks.
• Familiaridad con optimización de rendimiento en React (e.g., Lazy loading, memoization).
2. Librerías HTTP
• Experiencia con Axios para la gestión de llamadas asíncronas a Apis.
3. ui/ux
• capacidad para trabajar con diseños preexistentes y adaptarse a principios de ui/ux.
• Familiaridad con herramientas de diseño y documentación de componentes.
Infraestructura y DevOps
1. Sistemas Operativos
• Conocimiento avanzado en administración de servidores con Ubuntu 22.04.
• Familiaridad con VPS (e.g., Ovh) y su configuración.
2. ci/cd
• experiencia configurando y utilizando pipelines de ci/cd (preferiblemente con gitlab).
• Conocimiento de herramientas de automatización de despliegue.
3. Gestión de Servidores
• Habilidades en despliegues manuales y automatizados.
• Manejo de scripts de despliegue.
4. Contenedores y Virtualización (Opcional, pero deseable)
• Familiaridad con Docker para contenerización de servicios.
Habilidades Clave
1. Resolución de problemas
• Capacidad para diagnosticar y solucionar problemas técnicos complejos, tanto en el front-end como en el back-end.
2. Adaptabilidad
• Disposición para trabajar con tecnologías existentes y adaptarse a futuros cambios, como una posible transición a microservicios.
3. Colaboración
• Experiencia trabajando en equipos multidisciplinarios y siguiendo metodologías ágiles (e.g., Scrum, Kanban).
4. Documentación
• Habilidad para leer, interpretar y mantener documentación técnica, así como generar nueva documentación según sea necesario.
Experiencia Recomendada
• Años de experiencia:
• Back-End: 3+ años.
• Front-End: 2+ años.
• DevOps: 1+ año (o experiencia relevante en despliegues).
• Proyectos similares:
• Experiencia previa en desarrollo de plataformas monolíticas con api rest y react.
• Trabajo con integración de bases de datos externas.
Plazo de Entrega: 31 Diciembre, 2024