
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.
Experiencia
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
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.
–
Formación y proyectos propios · Autodidacta
- Python, DevOps, machine learning y React, con desarrollo asistido por IA (Claude Code).
–
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.
–
Programador web · canana.studio
–
Frontend Web Developer · Goxo
–
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
Ver másBackend 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
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
Ver másLa 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
stellifyit.com
Ver másEsta 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
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.
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.ioLaboratorio
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 laboratorioArtículos
Notas técnicas de backend y de seguridad de servidores, escritas después de resolver el problema.
Leer los artículosEquipos 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.