AI Engineer (Python) · Seville or remote · available now · CV (PDF) · epifaneia.dev
AI carries risk. Code bounds it. The standard answers for what remains. La IA tiene riesgos. El código los acota. La norma responde de lo que queda.
I design AI solutions for regulated processes: documents that arrive dirty, requirements that must be checked against thousand-page manuals, files that a third-party system has to accept on the first attempt. Local models by default, measured numbers, written limitations.
The design formula. Before writing any code, I lay out a process in five steps. Only step 4 is a place for a model; the other four are code.
1 CLEANING 2 CONTEXT 3 INPUT GUARDRAIL 4 PROCESS 5 OUTPUT GUARDRAIL
■ code ■ code ■ code ▲ model ■ code
Its main use is deciding whether an AI app is needed at all. If step 4 can be done by a rule, a query or a twenty-question tree, there is no model, and the result is cheaper, faster and auditable. If it cannot, because someone has to read a half-written email or a thousand-page manual, the model gets that one narrow job and code checks what it returns.
| Repository | What it does | Measured |
|---|---|---|
| ctsm | Audits customer requirements (a Polarion ReqIF) against supplier manuals and returns the same file with the evidence and its exact page. The model never writes a location. Runs offline. | 9/9 vs ground truth with a local 14B model, zero false "compliant" · every quote checked literally against the manual |
| reqif-extractor | From a specification PDF to a ReqIF that Polarion imports on the first attempt: verbatim identifiers, document hierarchy, page order. | without the identifier policy the model invented 167 of 170 ids; with it, verbatim · ~1/15 of the vision cost |
| ordena | Messy orders (a half-written email, a WhatsApp voice note) into Business Central as unposted sales orders: customer, items and dates resolved by code against the ERP's master data, doubts flagged, a person validates. Local transcription and model. | end to end against Business Central (CRONUS demo data) · no duplicate on reprocessing |
| toolkit | The reusable part of every pipeline: one tool per design step, generic guardrails, and the three integration wires a company connects to its own systems: identity, event ledger, sign-off. | 105 offline checks, no network |
| feasibility-study | Full stack: from a meeting form to an AI feasibility study in PDF. An autonomous research run across hundreds of pages, turned by code into a report with our narrative and our order, with cited sources. Human review before anything is sent. | QA warnings per lead · report reproducible from extraccion.json |
| askhub | 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. | 0 € to run · tests without network |
| asimetrica | A voice-first Android app for thinking out loud on a walk: you talk through a wired headset, a strong model takes its time and answers in your ear, the phone stays in your pocket. One model per stage, a library of your own work as canon, nothing lost when the network fails. Install the APK. | vs CrewAI on the same task: 9/10 with 10 model calls against 6/10 with 96 |
| neuralib | My 2023 bootcamp Django library, rewritten: 300 public-domain books with search by meaning (pgvector) and a librarian that only recommends from the catalog, quoting the line that backs it; code checks the quote exists. Try it (the first visit may take a minute to wake up). | expected book in the top 5 for 34/34 hand-written questions · 81 tests in CI |
| mildew | My 2024 cherry leaf classifier (CNN in Keras), rescued: I found and closed two train/test leaks (1,393 duplicated images, augmentation before the split). Three notebooks saved with their outputs and a Streamlit app you can try in the browser. | 879/879 on a leak-free test set · near duplicates checked in the notebook |
| cv | The CV as a pipeline: data, template, one-page PDF in Spanish and English. | one page, checked on every build |
| nogum | My tabletop role-playing game, years in the making: a compiler for a bilingual manual of more than 200 pages and the web app that configures a game from it. Deterministic gates stop the build when the book and the data stop saying the same thing. Read it. | 189 design decisions traced · Appendix B: 56 rows, 0 discrepancies |
The AI pipelines (ctsm, reqif-extractor, ordena, feasibility-study, askhub, toolkit and neuralib) each have a Security & regulation section, and five of them (ctsm, reqif-extractor, feasibility-study, askhub and toolkit) ship an integration contract, docs/INTEGRATION.md: who runs it, what gets recorded, who signs.