Experiencia laboral

Mi experiencia laboral abarca roles como desarrollador fullstack, desarrollador backend, líder de equipos, y programador analista.
He contribuido a la creación de soluciones integrales, gestionado y optimizado la lógica del lado del servidor, y liderado proyectos hacia el éxito, siempre con un enfoque analítico y estratégico.

  1. Programador analista senior (backend) - INDRA

    1. Dockerizacion de aplicaciones para optimizar los tiempos del onboarding de las aplicaciones y evitar conflictos de versiones.
    2. Resolución de incidencias para garantizar el correcto funcionamiento del software.
    3. Creación de documentación técnica.
    4. Análisis y evaluación de requerimientos para asegurar un desarrollo de software óptimo y a medida de las necesidades del cliente.
    5. Trabajo en equipo.
  2. Programador analista (fullstack) - ARANOVA

    1. Diseño y elección adecuada según las necesidades del cliente final de bases de bases de datos (relacionales y no relacionales).
    2. Aplicación de patrones de diseño para alargar la vida útil del software.
    3. Implementación de un flujo de trabajo organizado mediante issues, protección de la rama principal, revisión de pull requests y testing (coverage mínimo aceptable - 80%).
    4. Propuesta y puesta en marcha de un sistema CI/CD mediante github actions.
    5. Implementación del protocolo gRPC para optimizar la comunicación entre microservicios y propiciar el abaratamiento de costes.
    6. Migración de ciertas partes de código a TypeScript para beneficiarse del procesamiento asíncrono proporcionado por la librería de BullMQ. Promover la utilización de NestJS como framework ya que el equipo estaba familiarizado con Spring ayudándoles a reducir la curva de aprendizaje.
    7. Creación de varias librerías para frontend, empezar a utilizar NuxtJS por la familiaridad del equipo con el mismo y por la forma opinionada de desarrollo que tiene este metaframework para mantener una homogeneidad en el código.
  3. Programador fullstack - ARANOVA

    1. Proponer, diseñar y empezar a implementar una arquitectura de microservicios por problemas de escalabilidad y repetición de código, minimizando así la duplicación de código y costes.
    2. Ayudar en la compilación de código legacy hecho en Spring Boot.