ESPECIFICACIÓN DEL SISTEMA · REV. 2026-11

Víctor Manuel Sanoja Valles

2013 — trayectoria — 2026

Construyo software completo dirigiendo IA con criterio. Conecto normativa, procesos de empresa y código.

UBICACIÓN
Ávila, España
MODALIDAD
Remoto · Ávila · Madrid híbrido
IDIOMAS
Español nativo · Inglés B1
ESTADO
● Abierto a ofertas
HABILIDADESPROYECTOSPython · FastAPIbackend y APIsPostgreSQL · Supabasedatos, RLS, migracionesJavaScript · TypeScriptfrontend sin frameworksn8nautomatización de procesosClaude Codeharness engineeringNormativa fiscalVeriFACTU · AEAT · RGPDgestorFacturasApp fiscal · 323 commitsPlanificador de cursosTypeScript · 147 testsPrácticas Yemasn8n · Python · ShopifyBuscador de ofertasPython · 102 testsvalltech.esweb · efectos interactivosDevengagenerador estático · blogpasa el ratón por una habilidad o un proyectoPROYECTOS · HABILIDADESgestorFacturasApp fiscal · 323 commitsPython · FastAPIPostgreSQL · SupabaseJavaScript · TypeScriptClaude CodeNormativa fiscalPlanificador de cursosTypeScript · 147 testsJavaScript · TypeScriptClaude CodePrácticas Yemasn8n · Python · ShopifyPython · FastAPIn8nClaude CodeBuscador de ofertasPython · 102 testsPython · FastAPIClaude Codevalltech.esweb · efectos interactivosJavaScript · TypeScriptClaude CodeDevengagenerador estático · blogPython · FastAPIClaude CodeNormativa fiscal
PLANO N.º 01PERFIL
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 1/6
DIBUJÓV. Sanoja

PLANO N.º 02 · CASO DE ESTUDIO · PROYECTO PROPIO

gestorFacturas

may 2026 — en desarrollo

Aplicación web de facturación para gestorías que llevan a autónomos y pymes. Prepara facturas, modelos y VeriFACTU, y solo avisa cuando hace falta decidir.

EN CIFRAS

COMMITS323may → oct 2026
TESTS153ficheros + CI
MIGRACIONES107SQL · RLS
MODELOS AEAT8303 · 390 · 347 …
ESTADO
En desarrollo · sin usuarios aún
PAPEL
Diseño, código y normativa, en solitario
STACK
Python · FastAPI · Supabase · JS vanilla
IA
Gemini lee las facturas recibidas
CÓDIGO
Privado · lo enseño en una entrevista

FLUJO · DE LA FACTURA A LA AEAT

FACTURAS RECIBIDASCorreo o PDFfacturas recibidasExtracción con IAGemini lee la facturaCuadres y NIFreglas, sin IAModelos fiscales303 · 390 · 347 …FACTURAS EMITIDASFactura emitidaserie y numeraciónHuella encadenadaregistro VeriFACTUXML firmadocertificado FNMTAEATAgencia Tributariala IA propone, las reglas compruebanFACTURAS RECIBIDASla IA propone,las reglas compruebanCorreo o PDFfacturas recibidasExtracción con IAGemini lee la facturaCuadres y NIFreglas, sin IAModelos fiscales303 · 390 · 347 …AEATAgencia TributariaXML firmadocertificado FNMTHuella encadenadaregistro VeriFACTUFactura emitidaserie y numeraciónFACTURAS EMITIDAS

EL RETO MÁS DIFÍCIL

No fue el código. Fue la ley.

EL PROBLEMA
Un programa de facturación en España tiene que cumplir VeriFACTU, el reglamento de facturación y el RGPD. Había que saber qué exige cada norma antes de escribir código.
QUÉ HICE
Estudié la normativa de la AEAT y la convertí en reglas comprobables con tests. Preparé los textos legales, y los de protección de datos siguen el criterio de una abogada especializada.
RESULTADO
Registro VeriFACTU con huella encadenada y XML firmado, y 8 modelos fiscales con el formato oficial de la AEAT.

CAPTURA 01 · RECIBIDAS CON IA

La IA lee la factura y rellena los datos. Después, las reglas comprueban los cuadres: aquí el total impreso no cuadra con base + IVA, así que la factura se queda pendiente de revisión. Datos de prueba.

CAPTURA 02 · CALENDARIO FISCAL

Del perfil fiscal de cada cliente salen sus obligaciones y sus plazos. El estado se deriva de los modelos que ha preparado la gestoría: nada figura como presentado sin una presentación oficial real. Datos de prueba.

OTROS PROBLEMAS RESUELTOS

TEXTO OCULTO
Una factura escaneada puede llevar texto escondido que dé órdenes a la IA. La IA la trata siempre como datos, y un test lo vigila.
INMUTABLE
Una factura emitida no se puede modificar. Además del código, la base de datos rechaza borrarla o cambiar sus importes, su número o su huella.
AISLAMIENTO
Varias gestorías comparten el programa. Cada consulta filtra por gestoría, y hay tests que simulan a una intentando ver los datos de otra.
PLANO N.º 02GESTORFACTURAS
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 2/6
DIBUJÓV. Sanoja

PLANO N.º 03 · OTROS PROYECTOS

Otros proyectos

2026 · cinco proyectos

TRABAJO · ATU FORMACIÓN Y DIGITALIZACIÓN · OCTUBRE 2026

Lo que antes se planificaba a mano

En ATU, los cursos del ECYL se planificaban a mano: cientos de horas que repartir saltando festivos, Semana Santa, agosto y días con otro horario. Propuse esta app, que ya usan en la empresa: eliges el curso y la fecha de inicio, y reparte las horas y saca en PDF los documentos oficiales. Con mi curso, IFCD0210, da las mismas fechas que el calendario real del aula.

ESTADO
En uso en ATU desde noviembre de 2026
STACK
TypeScript · Vite · Vitest
TESTS
147, uno con el calendario real de mi curso
CÓDIGO
Privado · lo enseño en una entrevista

CAPTURA · PLANIFICACIÓN DE UN CURSO

El curso IFCD0210 de 2026, con su horario y los días sin clase del calendario del aula. Las fechas que calcula coinciden con las reales, prácticas del 14 de julio al 4 de agosto incluidas, y un test lo comprueba.

PRÁCTICAS · YEMAS SANTA TERESA · JULIO – AGOSTO 2026

Cuatro tareas reales en una empresa

Prácticas del certificado, en el departamento de informática: cuatro problemas reales, cada uno entregado como pull request con su README. Cuando la IA quiso dar por buenos emails como lopd@ o seleccion@, lo paré: esa columna promete emails a los que se puede escribir sin revisar.

HERRAMIENTAS
n8n · Python · Shopify · Claude Code
MÉTODO
Un harness con reglas nacidas de errores reales
TAREA 1 · CAPTACIÓN CON N8N1.452restaurantes del centro de Madrid. Google Places da como mucho 60 por búsqueda, así que el flujo parte la zona en 30 celdas y une los resultados sin repetir.
TAREA 2 · EMAIL DE CONTACTO730emails para esos 1.452 restaurantes (el 50 %). Escribir a uno personal choca con la protección de datos: solo busca el genérico del negocio.
TAREA 3 · VALIDADOR DEL CATÁLOGO386tests. Un CSV del catálogo con precios a 0, duplicados o filas incompletas puede romper la tienda: el validador sale con error y frena el cambio.
TAREA 4 · ALÉRGENOS EN SHOPIFY3documentos: dónde guardar los 14 alérgenos en Shopify, cómo leerlos desde un programa y la guía para montarlo, probado en tiendas de pruebas.

PROYECTO PROPIO · BÚSQUEDA DE EMPLEO · OCTUBRE 2026

Cada mañana, las ofertas ya preparadas

Revisar a diario las ofertas de varios portales lleva horas. Cada mañana, un programa lee las alertas de mi correo, puntúa cada oferta con IA y prepara el CV, la carta y el mensaje, con una revisión que busca frases inventadas. Nunca envía nada solo: leo todo y el último clic es mío.

ESTADO
En uso cada día desde octubre de 2026
STACK
Python · IMAP · Claude · Chrome sin interfaz
TESTS
102
CÓDIGO
Privado · lo enseño en una entrevista
OFERTAS PUNTUADAS1.940de InfoJobs, LinkedIn, Indeed y Randstad desde el 17 de octubre; 24 salieron preparadas para enviar.
ENLACES DE INFOJOBS9 de 9abren su oferta. Antes, 8 de cada 9 abrían la anterior: un salto de línea del HTML descolocaba los números.
SESIÓN CADUCADA3 díasen vacío sin decir por qué. Ahora, si caduca la sesión de Claude, el asunto del email lo avisa y dice cómo arreglarlo.
ENVÍOS AUTOMÁTICOS0candidaturas enviadas solas. El programa prepara; yo leo, corrijo y envío.

DEVENGA · PROYECTO PROPIO

Las fechas de VeriFACTU se han aplazado dos veces y mucha web repite las derogadas. Aquí cada dato lleva su enlace al BOE o a la AEAT, y un agente vigila esas fuentes y publica las novedades: ya van 2. Generador estático propio en Python.

devenga.es

VALLTECH.ES · MI WEB

Efectos en canvas que siguen al ratón y se paran solos cuando nada cambia: en reposo, la web no gasta procesador. El formulario solo confirma el envío si el mensaje llega.

valltech.es
PLANO N.º 03OTROS PROYECTOS
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 3/6
DIBUJÓV. Sanoja

PLANO N.º 04 · MÉTODO

Cómo trabajo con IA

la IA ejecuta — yo decido

Uso la IA para estudiar, aterrizar ideas y construir. Lo que no delego: decidir qué se hace, revisar lo que sale y convertir cada error en una regla para que no se repita.

HERRAMIENTAS
Claude Code · OpenCode · servidores MCP
AL DÍA
Sigo la evolución de los modelos para trabajar mejor con ellos
ESTA WEB
Hecha así: diseño escrito, plan por fases y revisión

MI MÉTODO · CADA PROYECTO PASA POR AQUÍ

01 · ESTUDIARLa IA me explicala norma; la contrastocon la fuente oficial02 · DISEÑAREscribo qué se hacey qué no, antes detocar código03 · PLANIFICARFases pequeñas, cadauna con sus pruebasde terminado04 · CONSTRUIRLa IA implementa;yo supervisoy decido05 · REVISARTests y revisores:código, fiscal,seguridad, frontend06 · APRENDERCada error seconvierte en unaregla del harnessy vuelta a empezar, con una regla más01 · ESTUDIARLa IA me explicala norma; la contrastocon la fuente oficial02 · DISEÑAREscribo qué se hacey qué no, antes detocar código03 · PLANIFICARFases pequeñas, cadauna con sus pruebasde terminado04 · CONSTRUIRLa IA implementa;yo supervisoy decido05 · REVISARTests y revisores:código, fiscal,seguridad, frontend06 · APRENDERCada error seconvierte en unaregla del harnessy vuelta a empezar,con una regla más

EL HARNESS

Lo que guía a la IA en cada proyecto

Un harness son las instrucciones, los revisores y las pruebas que dirigen a la IA dentro de un proyecto. Lo escribo y lo mantengo yo, y crece con cada error.

GESTORFACTURAS
Instrucciones, 4 revisores, 13 comandos, 3 skills
PRÁCTICAS
8 reglas de criterio y 38 trampas ya pisadas
CONTROL
Tests que comprueban el propio harness

REGLAS REALES · COPIADAS TAL CUAL DE MIS HARNESS

PRÁCTICAS YEMAS«Un cero no es una prueba.»En la tarea 2, «esta web no publica email» resultó falso 7 de 7 veces: estaba troceado, en un widget o tras un muro.
PRÁCTICAS YEMAS«Una mejora sin medir es una hipótesis, no un resultado.»La IA prometió que leer las páginas de privacidad recuperaría emails. La única muestra real salió vacía.
PRÁCTICAS YEMAS«Si Víctor me contradice, él es la evidencia y yo el sospechoso.»Las dos veces que discutí una conclusión de la IA, tenía razón yo. Ahora lo vuelve a comprobar con otro método.
GESTORFACTURAS«Cada afirmación verificable debe ser cierta hoy.»Un test lo vigila: si una instrucción cita un fichero o una migración que ya no existe, el build falla.
PLANO N.º 04MÉTODO
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 4/6
DIBUJÓV. Sanoja

PLANO N.º 05 · TRAYECTORIA

Trayectoria

2013 — 2026

Antes de programar trabajé más de diez años en logística, atención al cliente y almacén, en tres países. Sé cómo funciona un negocio por dentro, y eso es lo que ahora automatizo.

CRONOGRAMA · 2013 – 2026

20132014201520162017201820192020202120222023202420252026TRABAJOFORMACIÓNPROYECTOSDomesapaquetes y clientesMaracaibo, VenezuelaAgua Vitalplanta y tiendaAcaponeta, MéxicoCronobleproducción y almacénÁvila, EspañaCertificado IFCD0210 · 510 horasfeb – ago 2026 · con prácticas en Yemas Santa TeresagestorFacturas · Devenga · valltech.esdesde mayo de 2026HOY20132014201520162017201820192020202120222023202420252026Domesapaquetes y clientesMaracaibo, VenezuelaAgua Vitalplanta y tiendaAcaponeta, MéxicoCronobleproducción y almacénÁvila, EspañaCertificado IFCD0210510 horasfeb – ago 2026con prácticas en Yemas SantaTeresagestorFacturasDevenga · valltech.esdesde mayo de 2026HOY

EXPERIENCIA

oct – dic 2026
ATU Formación y Digitalización S.L. · Ávila, EspañaTécnico de IT · temporal, media jornadaPropuse y desarrollo el planificador de cursos (en Proyectos).
2020 – 2025
Cronoble · Ávila, EspañaOperador de producciónPedidos, recepción de mercancía, formación de compañeros y manipulación de alimentos.
2016 – 2018
Agua Vital · Acaponeta, MéxicoEncargado de una planta y tienda de agua potableCaja, inventario, atención a los clientes y producción.
2013 – 2016
Domesa · Maracaibo, VenezuelaRecepción de paquetes y atención al clienteRegistro de envíos y orden por ruta de reparto.

FORMACIÓN

Certificado de profesionalidad, nivel 3Desarrollo de aplicaciones con tecnologías web (IFCD0210) · 510 horasATU Ávila, a través del SEPE · febrero – agosto 2026. Incluye las prácticas en Yemas Santa Teresa. Título pendiente de expedición.
Bachiller en Ciencias · Venezuela, 2012El título está en Venezuela y todavía no está homologado en España.
AUTODIDACTA
Lo que no da el curso lo aprendo construyendo
IDIOMAS
Español nativo · Inglés B1
PLANO N.º 05TRAYECTORIA
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 5/6
DIBUJÓV. Sanoja

PLANO N.º 06 · CONTACTO

Hablemos

abierto a ofertas
EMAIL
TELÉFONO
GITHUB
github.com/victorsanoja
CV EN PDF
Descargar CV · PDF
MODALIDAD
Remoto · Ávila · Madrid híbrido
DESPLAZAMIENTO
Carnet B · coche propio
REFERENCIAS
Bajo petición: último trabajo y profesor del curso
Foto de Víctor Manuel Sanoja Valles

FIG. 1 · EL AUTOR · ESCALA 1:1

PLANO N.º 06CONTACTO
AUTORV. M. SANOJA VALLES
ESCALA 1:1REV. 2026-11 · HOJA 6/6
DIBUJÓV. Sanoja