Saltar al contenido

Side Project

De la decisión al producto funcional

Proyectos que empezaron como un problema de diseño y acabaron requiriendo construir, con decisiones de arquitectura y tecnología tomadas desde el pensamiento de producto.

Automatización + Desarrollo
n8nDirectusPythonStreamlitWhisper
IA / LLMs
Claude APIGPTsClaude CodeAntigravity
Frontend
Next.jsReactFigma

Un sistema de alertas que convierte 250.000 licitaciones en las relevantes para ti

250.000+ licitaciones públicas en la base de datos, y un motor que sabe cuáles le interesan a cada empresa. Diseñé y desarrollé el primer módulo de un SaaS de IA que procesa el feed oficial de contratación pública y combina semántica con heurísticas de negocio para filtrar lo que importa.

CuándoMarzo 2026
ContextoTUATEAM · Prácticas FP Dual
StackPython · PostgreSQL · Streamlit · Pydantic · sentence-transformers · Docker

250k+

licitaciones en base de datos

38

decisiones de arquitectura documentadas

6

fases en la hoja de ruta

1er

módulo en producción

El punto de partida

El briefing inicial era amplio, ambicioso y sin scope definido. Lo primero que hice no fue escribir código: fue entender qué había realmente ahí dentro. El documento mezclaba al menos cuatro productos distintos sin separación clara. Antes de tocar nada, lo reescribí separando el contenido en 4 módulos de negocio independientes y 1 módulo técnico transversal (el pipeline RAG). Definí qué podía construirse de forma autónoma, qué dependía de qué y qué no entraba en el MVP de 4 meses.

El resultado fue una hoja de ruta de 6 fases y un scope que, por primera vez, se podía estimar, priorizar y comunicar. A lo largo del proyecto documenté 38 decisiones de arquitectura y stack, especificando qué elegí, qué alternativas evalué, por qué descarté cada una. Más que simple burocracia, fue la metodología que me permitió avanzar sin perder coherencia técnica ni contexto.

Construir el pipeline

El enfoque original contemplaba scraping. Lo primero que hice fue validar si había algo mejor. Y lo había: el feed oficial de la PLACSP, con ficheros ZIP mensuales en formato Atom/XML. Diseñé el pipeline con dos scripts de responsabilidad única. El fichero JSONL que los conecta actúa como contrato: si falla la carga, no hay que re-descargar nada. Sobre eso, implementé sincronización incremental para que el motor de alertas siempre vea datos frescos.

Una decisión que marcó el proyecto: guardar todo en la ingesta, sin filtros. Aplicar la selección solo en la capa de consulta evitó tener que reprocesar el histórico cada vez que cambiase un criterio de negocio.

El recomendador

El problema de fondo era semántico. Los códigos CNAE y CPV clasifican sectores, pero no capturan bien qué hace realmente una empresa ni qué tipo de contratos le interesan.La solución combina dos señales: embeddings semánticos generados a partir de la descripción de actividad de la empresa, y heurísticas basadas en sus códigos CNAE y los de la licitación. Cuando ambas señales están disponibles, se combinan con una media ponderada. Cuando solo está una, aunque es menos preciso, el sistema funciona igual y no se rompe.

El resultado es un motor de matching que mejora con cada dato que el usuario aporta sobre su perfil, y que no depende de que todo esté perfectamente rellenado para dar resultados útiles.

La diferencia entre hablar de IA y construir con ella está en las decisiones que tomas cuando algo no funciona como esperabas.

Qué me llevé

Scope como herramienta de productoReestructurar un briefing confuso antes de escribir código no es perder el tiempo, es lo que hace posible construir algo que escale y que se pueda explicar.
Arquitectura que se puede cambiarSeparar responsabilidades, documentar decisiones y evitar filtros en la ingesta son decisiones que al principio parecen ralentizar, que parecen overhead, pero que evitan semanas de trabajo cuando algo cambia.
IA implementada, no solo usadaHasta este proyecto había trabajado con IA desde el plano de la comunicación. Aquí implementé embeddings con sentence-transformers. La diferencia entre hablar de IA y construir con ella es concreta, y se nota.

Hablemos

¿Tienes un proyecto?

Estoy abierta a proyectos de diseño de producto, branding y colaboraciones que tengan sentido humano. Cuéntame en qué estás pensando.