PAUL GUERRERO software engineer

Selección

Proyectos

01.

ai-news

Estar al día de la IA se había vuelto un trabajo de varias horas diarias. Construí un pipeline que reduce esa lectura a diez minutos: filtra una decena de fuentes con reglas clásicas y deja al modelo solo para el tramo final. Lo leen personas, y lo consultan otros agentes.

  • fastapi
  • react
  • pgvector
  • mcp
Interfaz de ai-news
02.

bizkaia-now

¿Qué hay hoy o este finde en Bizkaia? Un mapa que lo responde. Iba a escribir scrapers para nueve salas y resultó que la agenda abierta del Gobierno Vasco ya las cubría. Lo difícil no era conseguir los eventos, sino saber cuándo dos son el mismo.

  • python
  • fastapi
  • postgis
  • maplibre
Interfaz de bizkaia-now
03.

a11y-crawler

Auditar la accesibilidad de un sitio entero sin revisar página por página. Agrupo las que comparten plantilla, audito una y propago. El trabajo pesado es determinista; el modelo solo entra al final para resolver dudas. Luego descubrí que había reinventado un paper de Princeton.

  • typescript
  • playwright
  • axe-core
  • postgres
04.

recon

La mayoría de los «deep research» generan prosa convincente sin decirte de qué te puedes fiar. Recon separa investigar de verificar: varios agentes buscan, un fact-checker etiqueta cada afirmación —verificada, contradicha, sin fuente— y solo entonces redacta el informe.

  • python
  • crewai
  • sqlite
  • embeddings
05.

viz-components

Una librería de gráficos que funciona igual en Next.js, Angular o HTML a pelo, sin adaptadores. La clave fue no casarse con ningún framework: Web Components estándar. Publicada en npm; el mismo <viz-chart> en cualquier sitio.

  • lit
  • web-components
  • highcharts
  • npm
06.

vlm-dni-ocr

Extraer los campos de un DNI cuando la foto viene torcida o con manchas, donde el OCR clásico se rinde. Aquí el modelo de visión sí gana: lee la imagen. Pero con red: si un dato no pasa la validación, va a nulo. Un dato inventado en un documento es peor que ninguno.

  • python
  • doctr
  • qwen-vl
  • fastapi
07.

workflow-lint

Los workflows de agentes de Claude Code orquestan, pero no avisan si el script tiene un fallo tonto: te enteras a mitad de ejecución, con el coste ya gastado. Esto lo caza antes de lanzar —en milisegundos y sin gastar un token—. Hacía falta un linter, no un modelo.

  • javascript
  • static-analysis
  • claude-code
08.

lighthouses-bot

Ocho generaciones de bot en Rust que ganaban casi siempre… contra sí mismas. Contra bots reales, cuarto de cinco. Lo tiré, lo reescribí en Python y llegué a primero midiendo un torneo que no era el de verdad. Medir mucho no es medir bien.

  • rust
  • python
  • heuristics
  • game-bot
09.

euskal34

Trece retos de hacking y criptografía de la Euskal Encounter 34: ganamos con doce de trece y publicamos los writeups uno a uno. Cómo se atacó cada nivel, qué se probó y no funcionó, y los scripts para reproducirlo.

  • ctf
  • reversing
  • criptografía
  • python