Retrato de Josep Castells

Josep Castells

Backend engineer · PHP/Laravel, Python y PostgreSQL

Construyo backends: APIs, integraciones entre sistemas y procesos en segundo plano que hacen llegar los datos bien y a tiempo, y que avisan cuando no llegan.

Empecé con PHP y Laravel en un CRM. Hoy trabajo sobre todo con Python (FastAPI y Django) y PostgreSQL, con tests, documentación en el repositorio y despliegue continuo. Programo con IA cada día y reviso todo lo que propone antes de aplicarlo.

Trabajo desde les Terres de l'Ebre, en catalán o en castellano.

Más sobre mí

Experiencia

  1. Full-stack developer · Freelance (Stellifyit)

    • APIs con FastAPI y Django sobre PostgreSQL, migraciones con Alembic y colas con Celery y Redis.
    • CI/CD con GitHub Actions: los tests bloquean el merge, preview por PR y despliegue automático.
    • Infraestructura en GCP con Terraform (Cloud Run, Workload Identity Federation) y en AWS Lightsail.

    – actualidad

  2. Desarrollador full stack · MESAI

    • Predicción del OEE en tiempo real por orden de fabricación con un modelo de regresión random forest, en demos en directo con clientes.
    • Buscador multifiltro de la producción de piezas agrupada por intervalos de tiempo: una consulta de 3 meses sobre 22 millones de piezas pasó de 14,7 s a 6,3 s (−57 %) con índices en PostgreSQL y querysets reescritos.

    –

  3. Formación y proyectos propios · Autodidacta

    • Python, DevOps, machine learning y React, con desarrollo asistido por IA (Claude Code).

    –

  4. Developer · eCityclic

    • Portales de contenido autogestionable con Plone y Volto (Python y React) para administraciones públicas.
    • Accesibilidad según WCAG 2 como requisito de entrega.

    –

  5. Programador web · canana.studio

    –

  6. Frontend Web Developer · Goxo

    –

  7. Desarrollador en prácticas · Disi Servicios Informáticos

    • Desarrollo de un CRM en PHP con Laravel.

    –

Formación

  • CFGS en Sistemas Informáticos · IES Montsià · 2019–2021. Proyecto final: «Proyectus», en Laravel y MariaDB.

Integraciones

Datos que salen de un sistema y tienen que llegar bien a otro, y lo que hice para que no fallen en silencio.

  • Producción en tiempo real → predicción de OEE

    En MESAI, los datos de producción alimentaban un random forest que predecía el OEE de cada orden mientras aún estaba en marcha, en demos en directo con clientes.

  • Cloud Run → PostgreSQL sin puertos públicos

    La API de togent.io corre en Cloud Run y su base de datos vive en una VM sin puertos abiertos. Al arrancar, el contenedor entra en la red privada con una clave efímera y se conecta por ella. Todo en Terraform y desplegado desde CI.

  • Extractos bancarios → gastos

    Un extracto pegado como texto se interpreta en el servidor y vuelve como borrador editable con la categoría ya sugerida. No se guarda nada hasta que una persona lo confirma.

  • Asistente → API del usuario

    El modelo no escribe SQL: rellena parámetros tipados y llama a la API autenticada, que solo ve los datos de ese usuario. Las acciones destructivas piden confirmación.

Cómo trabajo con IA

Programo con IA cada día. Estas son las reglas que sigo para que eso no rebaje la calidad.

  • Nada se aplica sin revisión

    Los planes que propone la IA pasan por una bandeja de aprobación. Solo se implementan cuando los apruebo, y el código se revisa antes de fusionarlo.

  • Permisos mínimos

    Cuando un proceso lanza Claude Code sin supervisión, solo tiene las herramientas que la tarea necesita, declaradas una a una, y lo que produce llega como un PR en borrador que reviso.

  • Tests y documentación en el mismo cambio

    El CI no deja fusionar lo que rompe los tests, y cada repositorio explica sus decisiones en su carpeta de documentación.

  • Solo lo que el código respalda

    Lo que publico sale del código, no de lo que la IA redacta. Las licencias de modelos y datos se revisan antes de usarlos.

Proyectos

  • El3ktron

    Backend de código abierto para un almacén de implantaciones: sincronización con el ERP por RabbitMQ que avisa si falla o se para, comprobación de stock con sustitutas, picking con un 30 % menos de metros y pedidos leídos por IA que aprueba una persona. Datos sintéticos, resultados medidos.

    • Laravel 13
    • MariaDB
    • RabbitMQ
    • Pest
    Ver más
  • Recetia

    SaaS B2B de I+D culinaria. Cruza FooDB, USDA y Recipe1M+, y doce modelos de regresión entrenados en un entorno aparte se sirven desde el backend.

    • Django
    • Celery
    • PostgreSQL
    • PyCaret
  • togent.io

    La web de Togent y su API: FastAPI en Cloud Run, infraestructura en Terraform y despliegue desde GitHub Actions con Workload Identity Federation.

    • FastAPI
    • Cloud Run
    • Terraform
    • Tailscale
    Ver más
  • stellifyit.com

    Esta web y su API: auth con JWT y 2FA, migraciones con Alembic, nginx con CSP y despliegue en AWS Lightsail desde GitHub Actions.

    • FastAPI
    • Alembic
    • React
    • AWS Lightsail
    Ver más
  • Inmoka

    Aplicación para una agencia inmobiliaria, en producción en servidor propio detrás de Cloudflare Tunnel y Access, sin puertos abiertos.

    • Django
    • Celery
    • pgvector
    • Cloudflare

Stack

Cada herramienta con cómo la he usado: en algo que está en producción hoy, en un trabajo anterior o solo como conocimiento.

  • En producción
  • En un trabajo anterior
  • Conocimiento

Backend

  • Python · FastAPI(En producción)
  • Django · DRF(En producción)
  • APIs REST · OpenAPI(En producción)
  • Celery · Redis(En producción)
  • PHP · Laravel(En un trabajo anterior)
  • Plone · Volto(En un trabajo anterior)

Datos

  • PostgreSQL(En producción)
  • pgvector(En producción)
  • Alembic(En producción)
  • MariaDB(En un trabajo anterior)
  • RabbitMQ(Conocimiento)

Infraestructura

  • Linux · Ubuntu(En producción)
  • Docker(En producción)
  • nginx(En producción)
  • GitHub Actions(En producción)
  • GCP · Cloud Run(En producción)
  • Terraform(En producción)
  • AWS · Lightsail(En producción)
  • Cloudflare · Tailscale(En producción)

IA y ML

  • Claude Code(En producción)
  • LLM · tool-calling · RAG(En producción)
  • scikit-learn · PyCaret(En producción)
  • PyTorch · ONNX(En producción)

Frontend

  • React · TypeScript(En producción)

Machine learning aplicado

No es mi foco en un puesto de backend, pero sé llevar un modelo hasta producción y medir si funciona.

  • Predicción del OEE en tiempo real con un random forest de regresión, integrada en la aplicación de MESAI.
  • Doce modelos de regresión con PyCaret, entrenados en un entorno aparte y cargados por el backend de Recetia.
  • Modelos de visión y de voz entrenados con PyTorch, exportados a ONNX y ejecutados en el navegador.
  • Datos y modelos elegidos por su licencia: nada no comercial ni AGPL en un producto comercial.

Abrir el laboratorio

Dónde está cada cosa

  • Togent

    Mi laboratorio de agentes de IA. Allí están los servicios para negocios y empresas, los proyectos, el blog y el contacto.

    Ir a togent.io
  • Laboratorio

    Modelos de visión y de voz que se ejecutan en tu navegador, sin enviar nada fuera, cada uno con su ficha de modelo.

    Abrir el laboratorio
  • Artículos

    Notas técnicas de backend y de seguridad de servidores, escritas después de resolver el problema.

    Leer los artículos
  • Equipos técnicos

    Motores de cálculo y capas de datos para equipos que ya tienen su producto.

    Ver qué construyo

Últimos artículos

Contacto

Busco un puesto de backend. Escríbeme por email o por LinkedIn; respondo en catalán o en castellano.