PAUL GUERRERO software engineer

Selected work

Projects

01.

ai-news

Keeping up with AI had become a several-hours-a-day job. I built a pipeline that cuts that reading down to ten minutes: it filters a dozen sources with classic rules and brings in the language model only for the final stretch. People read it, and other agents query it.

  • fastapi
  • react
  • pgvector
  • mcp
ai-news interface
02.

a11y-crawler

Auditing a whole site's accessibility without checking it page by page. I group the pages that share a template, audit one, and propagate. The heavy lifting is deterministic; the model only steps in at the end to settle doubts. Later I found I'd reinvented a Princeton paper.

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

recon

Most «deep research» tools produce convincing prose without telling you what to trust. Recon splits researching from verifying: several agents search, a fact-checker tags every claim —verified, contradicted, unsourced— and only then writes the report.

  • python
  • crewai
  • sqlite
  • embeddings
04.

viz-components

A chart library that works the same in Next.js, Angular or plain HTML, with no adapters. The key was not marrying any framework: standard Web Components. Published on npm; the same <viz-chart> anywhere.

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

vlm-dni-ocr

Pulling the fields off an ID card when the photo comes in crooked or smudged, where classic OCR gives up. Here the vision model earns its place: it reads the image. But with a safety net: if a value fails validation, it goes null. A made-up field on an ID is worse than none.

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

workflow-lint

Claude Code's agent workflows orchestrate, but won't warn you if the script has a silly bug: one of mine died in 15 ms after startup. This catches it before launch —in milliseconds, spending no tokens— because it was detectable without AI. It needed a linter, not a model.

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

lighthouses-bot

A Rust bot for a contest, eight generations. I tried MCTS, reinforcement learning, Thompson Sampling… and the explicit heuristic won. The smarter version lost to the simpler one: complexity adds failure modes faster than value. Zero AI.

  • rust
  • heuristics
  • game-bot