[Freelance] Full Stack Engineer


Sobre el proyecto

Estamos construyendo una plataforma que unifique y orqueste varios servicios ya existentes relacionados con procesamiento de vídeo y audio.

Hoy muchos de estos servicios se ejecutan como scripts dentro de contenedores; el objetivo es:

  • Apificarlos (exponerlos como servicios web bien diseñados).
  • Unificarlos en una plataforma que permita crear y gestionar tareas (jobs) que lancen los servicios necesarios en cada flujo.
  • Facilitar que, a futuro, podamos ir integrando más servicios de forma incremental.

Responsabilidades

  • Diseñar y desarrollar la plataforma de orquestación de tareas:
  • Creación, seguimiento y gestión de tareas que encadenen los servicios disponibles.
  • Manejo de estados, colas, reintentos, logging y trazabilidad.
  • Apificar servicios existentes actualmente desplegados como scripts en Docker:
  • Diseño de endpoints.
  • Adaptación de scripts para funcionar como workers/servicios robustos.
  • Diseño e implementación del frontend funcional:
    • UI para crear y lanzar jobs.
    • Visualización de estado, resultados y logs.
    • Interfaces básicas para ingesta de vídeo/audio y revisión/corrección humana.
    • Definir y concretar junto al equipo arquitectura (autenticación, gestión de usuarios/roles, permisos) y estimar impacto en costes.
    • Proponer mejoras técnicas y de producto para acelerar el desarrollo y facilitar futuras integraciones.
    • Documentar APIs, flujos y decisiones técnicas para que el sistema sea mantenible.

    Requisitos indispensables

  • Full-stack con experiencia demostrable en proyectos reales:
    • Backend: Preferible Python (FastAPI, Django o similar). Valorable Node.js/TypeScript.
    • Frontend: Preferible React/Next.js.
  • Experiencia creando APIs productivas:
    • Autenticación/autorización (JWT, OAuth2, etc.).
    • Diseño de modelos de datos y contratos de API.
    • Experiencia sólida con bases de datos relacionales (PostgreSQL o similar). Valorable experiencia con Redis u otro almacén para colas/cache.
  • Experiencia previa con herramientas de contenerización (preferible Docker)
  • Habituado a trabajar con servicios asíncronos / colas de trabajo (ej. Celery, RabbitMQ o equivalente).
  • Experiencia básica en observabilidad: Integración de logs estructurados y, preferiblemente, métricas y/o alertas en producción.
  • Capacidad para trabajar prácticamente en autonomía, interactuando con un equipo técnico para aclarar requerimientos y tomar decisiones.
  • Uso avanzado y habitual de herramientas de IA para programación (condición imprescindible):
    • Asistentes de código (p.ej. Claude Code, OpenAI Codex, etc.).
    • Capacidad real para estructurar prompts, generar scaffolding de código, tests, documentación y refactors apoyándote en IA.
    • Buenas prácticas:
      • Control de versiones.
      • Tests básicos (unitarios/integración y funcionales donde tenga sentido).
      • Sensibilidad por la calidad y la simplicidad del código.
    Valorará positivamente

    No son obligatorios, pero ayudan:

    • Experiencia con procesamiento de medios (audio/vídeo) y pipelines de ML/IA.
    • Experiencia previa en integración de scripts o servicios batch detrás de una API.
    • Experiencia en diseño de gestión de usuarios/roles y permisos granulares.
    • Conocimientos de alguna nube (AWS, GCP, Azure) y despliegue de servicios (CI/CD).
    • Experiencia previa como freelance/consultor técnico (gestión del tiempo, reporting, estimaciones).

    Condiciones del freelance

    • Tipo de colaboración: freelance.
    • Dedicación: a definir (idealmente 20 horas/semana de forma sostenida; podemos ajustar según disponibilidad).
    • Trabajo 100% remoto, con reuniones de alineación (horario europeo). Preferible con disponibilidad para asistir a reuniones presencialmente.
    • Duración: inicialmente proyecto de varias semanas/meses, con posibilidad de extender según resultados y roadmap.