Daniel Martín · AI Engineer · SevillaDaniel Martín · AI Engineer · Seville

Aplicaciones de IA que se pueden auditarAI applications you can audit

Diseño y construyo aplicaciones de IA para entornos donde la normativa manda. El modelo interpreta; el código verifica cada respuesta y deja registro de quién hizo qué. Todo con código público y cifras medidas. Busco incorporarme a un equipo que lleve IA a producción. I design and build AI applications for settings where regulation rules. The model interprets; code verifies every answer and keeps a record of who did what. All with public code and measured numbers. I am looking to join a team that takes AI into production.

La IA tiene riesgos.El código los acota.La norma responde de lo que queda. AI carries risk.Code bounds it.The standard answers for what remains.

Disponibilidad inmediata · Sevilla o remotoAvailable now · Seville or remote

CV en PDFCV as PDF Ver las pruebasSee the proof
Daniel Martín

Las pruebas, en el códigoThe proof, in code Lo que he construidoWhat I have built

Todo público: el código, los datos, las cifras medidas y, en cada app de IA, lo que no hace. Donde se puede probar sin instalar nada, el enlace está en la tarjeta.All public: the code, the data, the measured numbers and, in every AI app, what it does not do. Where you can try it without installing anything, the link is on the card.

IA · los cinco pasosAI · the five steps

IA · demo en un comandoAI · one-command demo

CTSM

Audita requisitos de cliente contra el manual del proveedor y devuelve el mismo ReqIF con el veredicto y la cita en su página. El modelo nunca escribe una ubicación, y el código comprueba cada cita contra el manual: en su propia medición, el modelo citó «4 to 16 MHz» y el manual dice «3 to 25». Local, sin red; una interfaz con demo que se abre sin instalar ningún modelo.Audits customer requirements against the supplier's manual and returns the same ReqIF with the verdict and the quote on its page. The model never writes a location, and code checks every quote against the manual: in its own measured run, the model quoted "4 to 16 MHz" and the manual says "3 to 25". Local, offline; an interface with a demo that opens without installing any model.

github.com/epifaneia/ctsm →

Código · en uso realCode · in real use

Extractor ReqIFReqIF extractor

De un PDF de especificación a un fichero de requisitos importable, con jerarquía, identificadores verbatim y auditoría de posición. Unas quince veces más barato que mirar el PDF entero, conservando el 98,4 % de los ítems. En uso de junio a septiembre de 2026: encargos recurrentes de un ingeniero senior de un proveedor de automoción Tier 1, con su autorización para procesar las especificaciones en la nube, cada entrega revisada por él.From a specification PDF to an importable requirements file, with hierarchy, verbatim identifiers and positional audit. About fifteen times cheaper than looking at the whole PDF, keeping 98.4% of the items. In use from June to September 2026: recurring engagements for a senior engineer at a Tier 1 automotive supplier, with the client's authorisation to process the specifications in the cloud, every delivery reviewed by him.

github.com/epifaneia/reqif-extractor →

IA · el kitAI · the kit

El kitThe kit

Las piezas de los cinco pasos, sacadas de los pipelines de arriba: limpieza, contexto, citas verificables, política de identificadores, comparación de ida y vuelta y los tres cables de custodia. Un pipeline nuevo empieza con ellas.The parts of the five steps, taken from the pipelines above: cleaning, context, verifiable quotes, identifier policy, round-trip comparison and the three custody wires. A new pipeline starts with them.

github.com/epifaneia/toolkit →

Código · integrado con lo que ya usa una empresaCode · wired into what a company already uses

Código · prueba de concepto con un ERPCode · ERP proof of concept

Ordena

Un correo a medias o una nota de voz de WhatsApp entra en Business Central como pedido sin registrar: cliente, artículos y fecha resueltos por código contra los maestros del ERP, lo dudoso marcado y una persona que valida. Modelo y transcripción en local, autenticación con Entra ID y siete decisiones de diseño documentadas, de «Business Central o ERP a medida» a «hacer o comprar». Sobre los datos de demostración de Microsoft.A half-written email or a WhatsApp voice note lands in Business Central as an unposted sales order: customer, items and date resolved in code against the ERP's master data, anything doubtful flagged, and a person who validates. Local model and transcription, Entra ID authentication and seven documented design decisions, from "Business Central or a custom ERP" to "build or buy". On Microsoft's demo data.

github.com/epifaneia/ordena →

Código · full stackCode · full stack

Estudio de viabilidad de IAAI feasibility study

De un formulario a un estudio en PDF: una investigación autónoma por cientos de páginas, convertida por código en un informe con estructura fija, que responde a preguntas fijas y cita sus fuentes. Formulario, servidor FastAPI, panel y revisión humana antes de enviar.From a form to a PDF study: an autonomous research run across hundreds of pages, turned by code into a report with a fixed structure that answers fixed questions and cites its sources. Form, FastAPI server, panel and human review before sending.

github.com/epifaneia/feasibility-study →

Código · productoCode · product

askhub

Pregunta en lenguaje natural a todo tu espacio de trabajo: Discord y Trello por API, índice local en un solo fichero, actas transcritas en local y un bot que responde al momento el estado de cada proyecto. Cero euros.Ask your whole workspace in plain language: Discord and Trello over their APIs, a single-file local index, minutes transcribed locally and a bot that answers the state of every project on the spot. Zero euros.

github.com/epifaneia/askhub →

Rescatados del bootcamp, medidos de nuevoRescued from the bootcamp, measured again

Código · Django y un bibliotecario con IACode · Django and an AI librarian

Neuralib

Mi biblioteca en Django del bootcamp de 2023, reescrita: 300 libros de dominio público y un bibliotecario que lee el catálogo entero en una llamada, solo recomienda de él y cita la línea del resumen que lo respalda; el código comprueba que la cita existe. Django 5.2, PostgreSQL y 72 tests en CI. Medido con 54 preguntas escritas a mano: recomienda el libro esperado en 48 de 50.My 2023 bootcamp Django library, rewritten: 300 public-domain books and a librarian that reads the whole catalog in one call, only recommends from it and quotes the line of the summary that backs it; code checks the quote exists. Django 5.2, PostgreSQL and 72 tests in CI. Measured with 54 hand-written questions: it recommends the expected book in 48 of 50.

Probar la biblioteca →Try the library → · github.com/epifaneia/neuralib →

ML · se prueba en el navegadorML · try it in the browser

Mildew

Mi clasificador de hojas de cerezo de 2024, una CNN en Keras, rescatado con una partición limpia: quité las 1.393 imágenes duplicadas del dataset y el aumento de datos va después de partir, así que el test solo tiene imágenes que el modelo nunca vio. Acierta 879 de 879, y el propio notebook comprueba que no queden casi duplicados. Tres notebooks guardados con sus salidas y una app en Streamlit.My 2024 cherry leaf classifier, a CNN in Keras, rescued with a clean split: I removed the dataset's 1,393 duplicate images and moved augmentation after the split, so the test set only holds images the model never saw. It gets 879 of 879, and the notebook itself checks that no near duplicates remain. Three notebooks saved with their outputs and a Streamlit app.

Probar la app →Try the app → · github.com/epifaneia/mildew →

Producto · la voz, sin pantallaProduct · voice, no screen

App Android · se instala en cinco minutosAndroid app · installs in five minutes

Asimétrica

La voz se está optimizando para la velocidad, y la velocidad está reñida con el trabajo intelectual riguroso. Asimétrica va al revés: hablas paseando por unos auriculares de cable, un modelo fuerte piensa con calma y te contesta al oído, y el móvil no sale del bolsillo. Un modelo por etapa, una biblioteca con tu propia obra como canon y una bandeja que no pierde ni un turno de voz si falla la red. Antes de quedarme con llamadas propias medí CrewAI en la misma tarea: 6 de 10 con 96 llamadas al modelo, frente a 9 de 10 con 10.Voice is being optimised for speed, and speed is at odds with rigorous intellectual work. Asimétrica goes the other way: you talk on a walk through a wired headset, a strong model thinks it over and answers in your ear, and the phone never leaves your pocket. One model per stage, a library of your own work as canon, and a tray that loses no voice turn when the network fails. Before settling on my own calls I measured CrewAI on the same task: 6 of 10 with 96 model calls, against 9 of 10 with 10.

Instalarla en el móvil →Install it on your phone → · github.com/epifaneia/asimetrica →

El método, aguantando el cambioThe method, under change

Juego de rol · años de proyecto personalTabletop RPG · years of personal work

NOGUM

Mi juego de rol de mesa, y los mismos pilares en un corpus que no para quieto: más de 200 páginas en dos idiomas, cuatro productos derivados de una sola fuente y una aplicación que consume datos extraídos del propio libro. El modelo interpreta, el código determinista verifica: puertas que paran la compilación cuando el documento y los datos dejan de decir lo mismo, y 189 decisiones de diseño trazadas con su porqué. Meses cambiando a diario, y las puertas siguen cazando desincronizaciones que ninguna lectura humana había visto. La prueba de que el método aguanta el cambio, no solo la demo.My tabletop role-playing game, and the same pillars on a corpus that never sits still: more than 200 pages in two languages, four products from a single source and an app that consumes data extracted from the book itself. The model interprets, deterministic code verifies: gates that stop the build when the document and the data stop saying the same thing, and 189 design decisions traced with their rationale. Months of daily change, and the gates still catch drift no human reading had spotted. Proof that the method survives change, not just the demo.

La idea en cinco minutos →The idea in five minutes → · el libro →the book → · la app →the app → · github.com/epifaneia/nogum →

Mido primero. Decido sobre evidencia.I measure first. I decide on evidence.

El métodoThe method Cualquier app con IA tiene cinco pasosEvery AI app has five steps

A veces uno está vacío, a veces dos van pegados, pero están. Antes de construir, la pregunta es siempre la misma: ¿en cuál de los cinco hay una mejora enorme esperando? Casi nunca es en el cuarto. Sometimes one is empty, sometimes two are glued together, but they are always there. Before building, the question is always the same: which of the five holds the big improvement? Almost never the fourth.

1 · LimpiezaCleaningLo que llega (PDF, audio, correo, Excel) se convierte en texto íntegro con metadatos: página, minuto, hablante, fecha.Whatever arrives (PDF, audio, email, spreadsheets) becomes complete text with metadata: page, minute, speaker, date.
2 · ContextoContextEl modelo recibe lo justo, identificado, y no se paga dos veces por lo mismo.The model gets exactly what it needs, addressable by id, and nothing is paid for twice.
3 · Guardarraíl de entradaInput guardrailLo que el modelo puede decir se acota antes de que hable: esquema, enumeraciones cerradas sacadas de la fuente, presupuesto.What the model may say is bounded before it speaks: schema, closed enums taken from the source, budget.
4 · ProcesoProcessLa llamada. Una, acotada. Cadenas, bucles o agentes solo cuando lo anterior no llega, y diciendo por qué.The call. One, bounded. Chains, loops or agents only when that does not suffice, and saying why.
5 · Guardarraíl de salidaOutput guardrailLo que dijo el modelo se verifica por código contra la fuente. Ante la duda, se degrada y se marca. Nunca se corrige.What the model said is verified in code against the source. When in doubt, degrade and flag. Never patch.
determinista · el código garantizadeterministic · code guarantees el modelo interpretathe model interprets

Lo medido. Con los pasos 1, 2, 3 y 5 bien hechos, lo que queda en medio cabe en una llamada simple. En CTSM, un modelo local de 14B, en una GPU de 6 GB apoyada en la CPU y a unos dos minutos por requisito, acierta los 9 requisitos de la prueba contra un ground truth hecho a mano, sin un solo falso «cumple». El paso 5 caza lo que un umbral de parecido deja pasar: el modelo citó «4 to 16 MHz» y el manual dice «3 to 25». En reqif-extractor, sin el paso 5, el modelo inventaba 167 de 170 identificadores. Measured. With steps 1, 2, 3 and 5 done properly, what is left in the middle fits in one simple call. In CTSM, a local 14B model, on a 6 GB GPU helped by the CPU at about two minutes per requirement, gets all 9 test requirements right against a hand-built ground truth, with not a single false "compliant". Step 5 catches what a similarity threshold lets through: the model quoted "4 to 16 MHz" and the manual says "3 to 25". In reqif-extractor, without step 5, the model invented 167 of 170 identifiers.

RegulaciónRegulation Diseñado para auditarseBuilt to be audited

Lo que la norma pide de un sistema con IA es lo que siempre pidió de un sistema crítico: saber quién hizo qué, que el dato no se escape y que el error tenga límite. Esto es lo que ya hace el código en los pipelines de IA (CTSM, reqif-extractor, el estudio de viabilidad, askhub y el kit). Lo que no es código, contratos, procesos y formación, está aquí. What regulation asks of a system with AI is what it always asked of a critical system: know who did what, keep the data from escaping and put a limit on error. This is what the code already does in the AI pipelines (CTSM, reqif-extractor, the feasibility study, askhub and the kit). The part that is not code, contracts, processes and training, is here.

1 · Trazabilidad1 · Traceability

Quién hizo quéWho did what

Cada llamada al modelo deja una línea en un registro de custodia: quién la lanzó, con qué motor, si el dato salió de la máquina, su tamaño y su hash. Nunca el texto. Y una firma que se verifica antes de entregar.Every model call leaves a line in a custody ledger: who ran it, on which engine, whether the data left the machine, its size and its hash. Never the text. And a signature that is verified before delivery.

ISO/IEC 42001
2 · Custodia del dato2 · Data custody

Dónde vive y quién lo veWhere it lives and who sees it

Modelo en local por defecto en CTSM y Ordena. Cuando algo va a la nube, el README lo dice y el registro lo apunta. Ninguna clave en el código ni en git.Local model by default in CTSM and Ordena. When something goes to the cloud, the README says so and the ledger records it. No keys in the code or in git.

ISO/IEC 27001 · TISAX · RGPDGDPR · EU AI Act
3 · Verificación y riesgo3 · Verification and risk

El error tiene límiteError has a limit

Cada cita se comprueba por código contra la fuente; lo que no se sostiene se degrada y se marca, nunca se corrige. Cada herramienta lleva su medición contra un ground truth y sus limitaciones por escrito.Every quote is checked in code against the source; whatever does not hold is downgraded and flagged, never patched. Every tool carries its measurement against a ground truth and its limitations in writing.

ISO/IEC 23894

El capítulo de seguridad de cada README, herramienta por herramienta → The security chapter of every README, tool by tool →

El viajeThe journey Quién soyAbout me

Epifaneia. Del griego ἐπιφάνεια: la manifestación de los dioses. El susurro divino. Las palabras que ya no puedes olvidar. La idea feliz que rompe un paradigma. Epifaneia. From the Greek ἐπιφάνεια: the manifestation of the gods. The divine whisper. The words you can no longer forget. The sudden idea that breaks a paradigm.

He perseguido siempre esa sensación. La física me enamoró cuando entendí que el mundo de lo absurdamente pequeño y el mundo de lo incomprensiblemente grande rompen todos nuestros conceptos previos. La filosofía hizo lo propio con el alma humana y con la política, y me dio unas lecciones de humildad epistemológica que rompieron por completo la belleza matemática del laboratorio. Ahora, la IA. Todo lo que creía posible se rompe cada año. Qué digo. Cada mes. I have always chased that feeling. Physics made me fall in love when I understood that the world of the absurdly small and the world of the incomprehensibly large break every concept we came with. Philosophy did the same with the human soul and with politics, and taught me lessons in epistemic humility that shattered the mathematical beauty of the laboratory. Now, AI. Everything I believed possible breaks every year. Make that every month.

De cada viaje extraje lecciones que caben en una hoja de papel y que cambiaron mi visión del mundo para siempre. Aquí comparto las que cambiaron mi forma de trabajar. Si el proyecto rueda, comparto el resto. From each journey I took lessons that fit on a sheet of paper and changed how I see the world for good. Here I share the ones that changed how I work. If the project rolls, I will share the rest.

De dónde vengoWhere I come from

Mi viaje no se entiende sin ninguno de sus pasos. La física me dio la base. La filosofía me enseñó a no confiar en ella. El código, a convertir la lógica en máquinas vivas. Y estudiar la IA no fue estudiarla en el vacío: fue hacer que todas las piezas encajaran. De ese viaje nacen los cinco pasos de diseño y los pilares de seguridad. My journey makes no sense without any one of its steps. Physics gave me the base. Philosophy taught me not to trust it. Code, to turn logic into living machines. And studying AI was not studying it in a vacuum: it was making all the pieces fit. From that journey come the five design steps and the security pillars.

Parecen una idea feliz, pero fueron el fruto de un estudio apasionado sobre una base amplia. Además, tuve la suerte de poner mis ideas en práctica en los entornos más sujetos a normativa: la automoción. They look like a flash of insight, but they were the fruit of passionate study on a broad base. And I was lucky enough to put my ideas into practice in the environments most bound by regulation: automotive.

Y funcionaba. La idea terminó. Comienza el trabajo. He semiautomatizado la creación de herramientas de automatización. And it worked. The idea is finished. The work begins. I have semi-automated the making of automation tools.

TrayectoriaCareer

2026 · jun – sepJun – Sep
Encargos recurrentes de conversión a ReqIF para un ingeniero senior de un proveedor de automoción Tier 1, con reqif-extractor.Recurring ReqIF conversion engagements for a senior engineer at a Tier 1 automotive supplier, with reqif-extractor.
2024 – hoynow
Gestor bilingüe en Foundever (campaña de Airbnb), en paralelo a Epifaneia.Bilingual account specialist at Foundever (Airbnb programme), in parallel with Epifaneia.
2024 · mar – dicMar – Dec
Konecta: empecé como teleoperador de ventas y entré en el proyecto de automatización del sistema de KPIs, en Python.Konecta: started as a telesales agent and joined the project automating the KPI system, in Python.
2023 – 2024
Diploma en desarrollo full stack, Code Institute, con crédito universitario.Full stack development diploma, Code Institute, university credit-rated.
2017 – 2023
Análisis de riesgo, calidad y formación en Irlanda y España; QA de software y líder de equipo en Media Interactiva.Risk analysis, quality and training in Ireland and Spain; software QA and team lead at Media Interactiva.
AntesBefore
Física y Filosofía en la Universidad de Sevilla.Physics and Philosophy at the University of Seville.

Con qué trabajo:What I work with: Python · pandas · SQL · PostgreSQL · FastAPI · Django · Streamlit · Keras · Ollama · Gemini · ReqIF/XML (lxml) · Docling · PyMuPDF · Git

CV en PDF → · in English → · el código que lo genera →CV as PDF → · en español → · the code that builds it →

Cada vuelta entrega algo usable. Cada día mejora. Hoy ya se puede usar. Every iteration ships something usable. Every day it gets better. Today it can already be used.

ContactoContact EscríbemeGet in touch

Disponibilidad inmediata · Sevilla o remoto · español e inglés (C1)Available now · Seville or remote · Spanish and English (C1)

danielmartin@epifaneia.dev LinkedIn GitHub CVCV YouTube