/diego EscríbemeWrite to meEscriu-me

AI Engineer · sistemas agénticos que se auditan a sí mismos · remotoAI Engineer · agentic systems that audit themselves · remoteAI Engineer · sistemes agèntics que s'auditen a si mateixos · remot

Python · LLMs · agentes · 7 años en ecommercePython · LLMs · agents · 7 years in ecommercePython · LLMs · agents · 7 anys en ecommerce

Construyo sistemas que no pueden mentirme. I build systems that cannot lie to me.Construeixo sistemes que no em poden mentir.

El modo de fallo real no es que el código pete, es que el sistema afirme algo falso con total fluidez y nadie lo vea. Contra eso: evals que bloquean, grounding contra la fuente y una flota de agentes con el mandato de refutarme. The real failure mode isn't the code crashing, it's the system fluently asserting something false that nobody catches. Against that: evals that block, grounding against the source and a fleet of agents mandated to refute me.El mode de fallada real no és que el codi peti, és que el sistema afirmi una cosa falsa amb tota fluïdesa i ningú ho vegi. Contra això: evals que bloquegen, grounding contra la font i una flota d'agents amb el mandat de refutar-me.

¿Prefieres verlo funcionando? Rather see it running? Ho vols veure en marxa? Abre la demo viva de SEKURAOpen the live SEKURA demoObre la demo viva de SEKURA

sistemas en uso real · 5 dominios distintos, ninguno era el míosystems in real use · 5 different domains, none of them minesistemes en ús real · 5 dominis diferents, cap era el meu
commits en 5 repos a 03-09 · 14 meses con LLMs (desde jun-2025), sin formación previacommits across 5 repos as of 03-09 · 14 months with LLMs (since Jun 2025), no prior trainingcommits en 5 repos a 03-09 · 14 mesos amb LLMs (des del jun-2025), sense formació prèvia
skills propias · 26 instalaciones en los 5 reposskills of my own · 26 installs across the 5 reposskills pròpies · 26 instal·lacions als 5 repos
€
de infraestructura en 3 de los 5 · tier gratuito y localinfrastructure cost in 3 of the 5 · free tier and locald'infraestructura en 3 dels 5 · tier gratuït i local

Qué hagoWhat I doQuè faig

Cuatro capacidades.
Cinco sistemas donde probarlas.
Four capabilities.
Five systems to prove them in.
Quatre capacitats.
Cinc sistemes on provar-les.

Memecoins en Solana, dropshipping contra reembolso, pipeline de vídeo, reventa de segunda mano, seguridad privada regulada. Esto es lo que se repite en los cinco.Solana memecoins, cash-on-delivery dropshipping, video pipeline, second-hand reselling, regulated private security. This is what repeats across all five.Memecoins a Solana, dropshipping contra reemborsament, pipeline de vídeo, revenda de segona mà, seguretat privada regulada. Això és el que es repeteix als cinc.

eval harness · guardrails

Gates que bloquean cuando la salida empeora contra un baseline, en vez de avisar.Gates that block when output degrades against a baseline, instead of warning.Gates que bloquegen quan la sortida empitjora contra un baseline, en comptes d'avisar.

ver cómo funcionasee how it worksveure com funciona +
multi-agent verification · LLM-as-judge

Un panel de críticos con el mandato de refutar mi propio trabajo antes de que salga.A panel of critics mandated to refute my own work before it ships.Un panell de crítics amb el mandat de refutar la meva pròpia feina abans que surti.

ver cómo funcionasee how it worksveure com funciona +
grounding · anti-alucinación

El sistema cita la fuente o calla: la foto, el artículo del BOE, el pedido conciliado.The system cites its source or stays quiet: the photo, the statute, the reconciled order.El sistema cita la font o calla: la foto, l'article del BOE, la comanda conciliada.

ver cómo funcionasee how it worksveure com funciona +
out-of-sample validation

Split temporal, bootstrap y walk-forward con brazo de control, para matar mis propias hipótesis.Temporal split, bootstrap and walk-forward with a control arm, to kill my own hypotheses.Split temporal, bootstrap i walk-forward amb braç de control, per matar les meves pròpies hipòtesis.

ver cómo funcionasee how it worksveure com funciona +

El trabajoThe workLa feina

Cinco sistemas.
Cuatro dominios que no eran míos.
Five systems.
Four domains that weren't mine.
Cinc sistemes.
Quatre dominis que no eren meus.

Cada tarjeta abre su caso: cómo está construido, qué decidí y qué límites tiene.Each card opens its case: how it's built, what I decided and what its limits are.Cada targeta obre el seu cas: com està construït, què vaig decidir i quins límits té.

Desliza, o toca un número. Cada tarjeta abre su caso completo. Swipe, or tap a number. Each card opens its full case.Llisca, o toca un número. Cada targeta obre el seu cas complet.

01

El negocio · de donde salió el criterioThe business · where the judgment came fromEl negoci · d'on va sortir el criteri

ECXM OPS

operaciones · e-commerce CODoperations · COD e-commerceoperacions · e-commerce COD

El sistema operativo de un negocio entero: espiar la competencia, analizar el producto, clonar la landing, generar los creativos, controlar el día a día y cerrar el mes. Siete etapas encadenadas en un dashboard y una CLI de 35 comandos. En uso diario.The operating system of an entire business: spy on competitors, analyse the product, clone the landing, generate the creatives, run the daily control and close the month. Seven chained stages in one dashboard and a 35-command CLI. In daily use.El sistema operatiu d'un negoci sencer: espiar la competència, analitzar el producte, clonar la landing, generar els creatius, controlar el dia a dia i tancar el mes. Set etapes encadenades en un dashboard i una CLI de 35 comandes. En ús diari.

espiar→analizar→clonar→crear→vender→cerrar→decidir⊣gate golden · igualdad exacta
ver el corte · 90 swatch the cut · 90 sveure el tall · 90 s
modo de fallofailure modemode de fallada No es que Streamlit pete: es que afirme con total fluidez una utilidad neta falsa. Esa cifra decide si un producto es «winner», y eso cambia el reparto del contrato de 50/50 a 40/60. Un decimal mal atribuido es el sueldo de otra persona. Not Streamlit crashing: it's fluently asserting a false net profit. That figure decides whether a product is a "winner", which shifts the contract split from 50/50 to 40/60. One misattributed decimal is somebody else's pay.No és que Streamlit peti: és que afirmi amb tota fluïdesa una utilitat neta falsa. Aquesta xifra decideix si un producte és «winner», i això canvia el repartiment del contracte de 50/50 a 40/60. Un decimal mal atribuït és el sou d'una altra persona.
136 facturas OCR en 4 divisasOCR invoices in 4 currenciesfactures OCR en 4 divises 6.286 anuncios indexadosads indexedanuncis indexats 3/3 gates golden en verdegolden gates greengates golden en verd
GuardrailsGuardrailsGuardrails Gates de regresiónRegression gatesGates de regressió ReconciliaciónReconciliationReconciliació
Abrir el casoOpen the caseObrir el cas

El método salió de aquí: de un negocio donde cada número era mi dinero. Lo que viene ahora es la prueba de que funciona fuera de él: cuatro dominios que no eran míos, sin ser del sector en ninguno. The method came from here: a business where every number was my own money. What follows is the proof that it works outside it: four domains that weren't mine, without being from the industry in any of them.El mètode va sortir d'aquí: d'un negoci on cada número eren els meus diners. El que ve ara és la prova que funciona fora d'ell: quatre dominis que no eren meus, sense ser del sector en cap.

02

Lo que generalizó · 4 dominios ajenos · mismo métodoWhat generalized · 4 foreign domains · same methodEl que va generalitzar · 4 dominis aliens · mateix mètode

Quant Research LabQuant Research LabQuant Research Lab

research cuantitativo · Solanaquantitative research · Solanaresearch quantitatiu · Solana

Entré a un mercado adversarial y, en vez de buscar hacerme rico, construí la infraestructura para medirlo: telemetría on-chain, backtesting estadístico, validación adversarial multi-agente y un motor de scoring ML + LLM. Con datos y capital real demostré que a esta latencia no hay edge explotable.I walked into an adversarial market and, instead of chasing quick money, I built the infrastructure to measure it: on-chain telemetry, statistical backtesting, adversarial multi-agent validation and an ML + LLM scoring engine. With real data and real capital I proved there is no exploitable edge at this latency.Vaig entrar en un mercat adversarial i, en comptes de buscar fer-me ric, vaig construir la infraestructura per mesurar-lo: telemetria on-chain, backtesting estadístic, validació adversarial multiagent i un motor de scoring ML + LLM. Amb dades i capital real vaig demostrar que a aquesta latència no hi ha edge explotable.

telemetría on-chain→backtesting→scoring ML+LLM→panel adversarial⊣EV honesto · o REJECT
ver el corte · 90 swatch the cut · 90 sveure el tall · 90 s
modo de fallofailure modemode de fallada Es enamorarse de una hipótesis y encontrarle señal donde no la hay. Matar las propias ideas con rigor, y reportar el resultado negativo, es el producto. Falling in love with a hypothesis and finding signal where there is none. Killing your own ideas with rigor, and reporting the negative result, is the product.És enamorar-se d'una hipòtesi i trobar-li senyal on no n'hi ha. Matar les pròpies idees amb rigor, i reportar el resultat negatiu, és el producte.
27K líneas de sistemalines of systemlínies de sistema 256K líneas de researchlines of researchlínies de research 0,745 AUC · split temporalAUC · temporal splitAUC · split temporal
Validación out-of-sampleOut-of-sample validationValidació out-of-sample LLM como juezLLM-as-judgeLLM com a jutge
Abrir el casoOpen the caseObrir el cas
03

Lo que generalizó · 4 dominios ajenos · mismo métodoWhat generalized · 4 foreign domains · same methodEl que va generalitzar · 4 dominis aliens · mateix mètode

YouTube Pipeline

media pipeline · Python + FFmpeg + LLMmedia pipeline · Python + FFmpeg + LLMmedia pipeline · Python + FFmpeg + LLM ver códigoview codeveure codi

Coge una grabación de 13 GB y devuelve un vídeo de 30 minutos listo para subir: historia escrita por un LLM, narrada con voz elegida según el protagonista, subtítulos clavados palabra por palabra, intro animada, miniatura y decenas de shorts verticales. Sin que nadie toque nada.It takes a 13 GB recording and returns a 30-minute video ready to upload: an LLM-written story, narrated with the voice picked from the protagonist, subtitles locked word by word, animated intro, thumbnail and dozens of vertical shorts. With nobody touching anything.Agafa una gravació de 13 GB i torna un vídeo de 30 minuts a punt per pujar: història escrita per un LLM, narrada amb veu triada segons el protagonista, subtítols clavats paraula per paraula, intro animada, miniatura i desenes de shorts verticals. Sense que ningú toqui res.

gameplay 13 GB→guion LLM→voz TTS→forced alignment→FFmpeg→miniatura→shorts⊣/eval vs baseline
ver el corte · 90 swatch the cut · 90 sveure el tall · 90 s
modo de fallofailure modemode de fallada No es que pete: es que entregue un MP4 que parece terminado y esté roto de una forma que nadie ve. Nadie mira 30 minutos de salida. Por eso todo se mide. Not crashing: it's shipping an MP4 that looks finished and is broken in a way nobody sees. Nobody watches 30 minutes of output. That's why everything is measured.No és que peti: és que lliuri un MP4 que sembla acabat i estigui trencat d'una manera que ningú veu. Ningú mira 30 minuts de sortida. Per això tot es mesura.
0,072 s error medio en fixture · 0,153 en producción realmean error on fixture · 0.153 in real productionerror mitjà en fixture · 0,153 en producció real 4 bugs invisibles cazadosinvisible bugs caughtbugs invisibles caçats 0 € de infraestructurainfrastructured'infraestructura
Eval harnessEval harnessEval harness Orquestación multi-etapaMulti-stage orchestrationOrquestració multietapa
Abrir el casoOpen the caseObrir el cas
04

Lo que generalizó · 4 dominios ajenos · mismo métodoWhat generalized · 4 foreign domains · same methodEl que va generalitzar · 4 dominis aliens · mateix mètode

RESELLERMASTER

visión + LLM · reventa C2Cvision + LLM · C2C resellingvisió + LLM · revenda C2C ver códigoview codeveure codi

Coge un lote de fotos mezcladas de segunda mano, las agrupa por producto y produce la ficha lista para copiar-pegar en Wallapop y Vinted (título, marca, talla, estado, precio) sin afirmar ni un atributo que no sea legible en una foto.It takes a batch of mixed second-hand photos, groups them by product and produces the listing ready to copy-paste into Wallapop and Vinted, title, brand, size, condition, price, without asserting a single attribute that isn't legible in a photo.Agafa un lot de fotos barrejades de segona mà, les agrupa per producte i produeix la fitxa a punt per copiar i enganxar a Wallapop i Vinted (títol, marca, talla, estat, preu) sense afirmar ni un atribut que no sigui llegible en una foto.

agrupar→extraer→export→precio→finanzas⊣listing-audit vs foto
ver el corte · 90 swatch the cut · 90 sveure el tall · 90 s
modo de fallofailure modemode de fallada No es que el código pete: es que el pipeline invente «Nike, talla M, algodón, 25 €» con total fluidez y yo lo publique. Una ficha mala no es un bug: es una venta perdida y reputación quemada. Not the code crashing: it's the pipeline fluently inventing "Nike, size M, cotton, €25" and me publishing it. A bad listing isn't a bug: it's a lost sale and burned reputation.No és que el codi peti: és que el pipeline s'inventi «Nike, talla M, cotó, 25 €» amb tota fluïdesa i jo ho publiqui. Una fitxa dolenta no és un bug: és una venda perduda i reputació cremada.
0 afirmaciones sin píxel / 33 fotosunbacked claims / 33 photosafirmacions sense píxel / 33 fotos 3,4 cts por productoper productper producte 210 s por producto (a mano ~285)per product (~285 by hand)per producte (a mà ~285)
Grounding con la fotoGrounded in the photoGrounding amb la foto Visión + LLMVision + LLMVisió + LLM
Abrir el casoOpen the caseObrir el cas
05

Lo que generalizó · 4 dominios ajenos · mismo métodoWhat generalized · 4 foreign domains · same methodEl que va generalitzar · 4 dominis aliens · mateix mètode

SEKURA

startup en desarrollo · código privadostartup in progress · private codestartup en desenvolupament · codi privat

Un dominio regulado y complejo (seguridad privada en España) sin ser del sector: 4 sectores de reserva operativos con 3 regímenes legales, un Centro de Mando de 8 departamentos y defensa en profundidad. De cero a producto desplegado en ~6 semanas.A regulated, complex domain (private security in Spain) without being from the industry: 4 live booking sectors under 3 legal regimes, an 8-department Command Centre and defense in depth. From zero to deployed product in ~6 weeks.Un domini regulat i complex (seguretat privada a Espanya) sense ser del sector: 4 sectors de reserva operatius amb 3 règims legals, un Centre de Comandament de 8 departaments i defensa en profunditat. De zero a producte desplegat en ~6 setmanes.

solicitud→designar→autorizar→contrato→señal⊣cita el BOE o calla
ver el corte · 90 swatch the cut · 90 sveure el tall · 90 s
modo de fallofailure modemode de fallada Es llamar «seguridad» a lo que la ley no llama seguridad. El motor legal se prohíbe dictaminar cumplimiento: cita el BOE o calla. Es un MVP (Stripe en test, licencia en trámite) y lo dice antes de que lo preguntes. Calling "security" what the law doesn't. The legal engine forbids itself from ruling on compliance: it cites the BOE or stays silent. It's an MVP (Stripe in test, license pending) and it says so up front.És dir «seguretat» al que la llei no en diu seguretat. El motor legal es prohibeix dictaminar compliment: cita el BOE o calla. És un MVP (Stripe en test, llicència en tràmit) i ho diu abans que ho preguntis.
Código privado. SEKURA se lanza como startup con socio, con vistas a ronda. El pipeline de vídeo y RESELLERMASTER están abiertos; ECXM OPS y el laboratorio quant siguen privados, y su código está disponible bajo petición. Private code. SEKURA is launching as a startup with a partner, aiming for a round. The video pipeline and RESELLERMASTER are open; ECXM OPS and the quant lab stay private, and their code is available on request.Codi privat. SEKURA es llança com a startup amb soci, amb vistes a ronda. El pipeline de vídeo i RESELLERMASTER estan oberts; ECXM OPS i el laboratori quant segueixen privats, i el seu codi està disponible sota petició.
334 tests en verde + 159 RLS realestests green + 159 real RLStests en verd + 159 RLS reals 8 departamentosdepartmentsdepartaments 28/32 bugs → reglasbugs → rulesbugs → regles
Grounding con citasCitation groundingGrounding amb cites Límites declaradosDeclared limitsLímits declarats
Abrir el casoOpen the caseObrir el cas

Capacidad × evidenciaCapability × evidenceCapacitat × evidència

Qué prueba cada proyecto,
y qué no.
What each project proves,
and what it doesn't.
Què prova cada projecte,
i què no.

Cada punto se derivó abriendo el repo, no de memoria. Cinco de las veinticinco celdas están vacías: si no encontré el mecanismo en el código, no lleva punto.Every dot was derived by opening the repo, not from memory. Five of the twenty-five cells are empty: if I couldn't find the mechanism in the code, it gets no dot.Cada punt es va derivar obrint el repo, no de memòria. Cinc de les vint-i-cinc cel·les estan buides: si no vaig trobar el mecanisme al codi, no porta punt.

capacidadcapabilitycapacitat
ECXM
OPS
QUANT
LAB
YT
PIPELINE
RESELLER
MASTER
SEKURA
Evals y gates que bloqueanEvals and gates that blockEvals i gates que bloquegen
Verificación multi-agenteMulti-agent verificationVerificació multiagent
Grounding contra la fuenteGrounding against the sourceGrounding contra la font
Validación fuera de muestraOut-of-sample validationValidació fora de mostra
Orquestación multi-etapa con estadoMulti-stage orchestration with stateOrquestració multietapa amb estat

Pasa el ratón o toca una fila para ver dónde vive en el código. Hover or tap a row to see where it lives in the code.Passa el ratolí o toca una fila per veure on viu al codi.

Los huecos son la parte honesta de la tabla. Haz clic en una columna para abrir ese caso. The gaps are the honest part of this table. Click a column to open that case.Els buits són la part honesta de la taula. Fes clic en una columna per obrir aquell cas.

Cómo trabajoHow I workCom treballo

De cero a producción,
con una flota que intenta tumbarme.
From zero to production,
with a fleet trying to take me down.
De zero a producció,
amb una flota que intenta tombar-me.

No le pido a la IA una respuesta. Verifico ejecutando, nunca por informe. El mismo ciclo en los cinco.I don't ask AI for an answer. I verify by executing, never by report. The same cycle across all five.No li demano a la IA una resposta. Verifico executant, mai per informe. El mateix cicle als cinc.

harness sale mejor
de lo que entró
comes out better
than it went in
surt millor
del que va entrar

Siete estaciones que giran y vuelven al encargo. Toca una para ver qué pasa dentro. Seven stations that turn and come back to the brief. Tap one to see what happens inside.Set estacions que giren i tornen a l'encàrrec. Toca'n una per veure què passa a dins.

Una sesión real: el panel tumbando mi propio planA real session: the panel knocking down my own planUna sessió real: el panell tombant el meu propi pla
# esta misma semana: el /method de MI PROPIO plan de cierre $ /method cierre-ultra-review.md agente CIEGO // no ve el plan → deriva el objetivo desde la fuente 2 críticos // en paralelo · mandato: REFUTAR crítico #1 ✗ una cifra no está respaldada por el repo crítico #2 ✗ el plan describe un estado desactualizado ciego el plan audita CÓDIGO con 900 tests verdes… pero la métrica-norte «segundos-hasta-publicar» NUNCA se midió en 5 fases → es un PROXY [INC-016] # arbitraje → EJECUTAR CON EDICIONES // se corrige antes de tocar nada # reordené: MEDIR primero → ~210 s con la app vs ~285 a mano # y al medirlo de verdad apareció un bug que 904 tests verdes no veían: [INC-031] 400 de esquema en TODA re-extracción // mockean el motor y nunca mandan el json_schema a la API real

El panel cazó que mi propio plan probaba un proxy: auditar código verde en vez de medir la métrica primaria del proyecto. Reordené, y el número que corona ese proyecto apareció ahí, junto a un bug que 904 tests en verde no veían. El rigor es cuestionar tu propio plan, no defenderlo. The panel caught that my own plan was testing a proxy: auditing green code instead of measuring the project's primary metric. I reordered, and the number that crowns that project showed up there, next to a bug 904 green tests couldn't see. Rigor is questioning your own plan, not defending it.El panell va caçar que el meu propi pla provava un proxy: auditar codi verd en comptes de mesurar la mètrica primària del projecte. Vaig reordenar, i el número que corona aquell projecte va aparèixer allà, al costat d'un bug que 904 tests en verd no veien. El rigor és qüestionar el teu propi pla, no defensar-lo.

Cómo se llama esto fuera, y dónde vive en mi códigoWhat this is called out there, and where it lives in my codeCom se'n diu d'això fora, i on viu al meu codi
cómo se llama esto fuerawhat this is called out therecom se'n diu d'això fora dónde vive en mi códigowhere it lives in my codeon viu al meu codi
multi-agent verificationpanel de 2-4 críticos con mandato de refutarpanel of 2-4 critics mandated to refutepanell de 2-4 crítics amb mandat de refutar
LLM-as-judgearbitraje que re-deriva el veredicto del códigoarbitration that re-derives the verdict from codearbitratge que re-deriva el veredicte del codi
eval harnessgoldens por igualdad exacta · /eval contra baselineexact-equality goldens · /eval against baselinegoldens per igualtat exacta · /eval contra baseline
test-time compute scalingflota en paralelo por cada decisión sensiblea parallel fleet on every sensitive decisionflota en paral·lel per cada decisió sensible
guardrailsgates que bloquean, no avisangates that block, not warngates que bloquegen, no avisen
process supervisionverificación por ejecución en cada paso, no por informeverification by execution at each step, not by reportverificació per execució a cada pas, no per informe
human-in-the-loopgate humano · la capa que ninguna flota cubrehuman gate · the layer no fleet coversgate humà · la capa que cap flota cobreix
agentic orchestrationun orquestador reparte, agentes en paralelo ejecutanone orchestrator delegates, parallel agents executeun orquestrador reparteix, agents en paral·lel executen

Los términos de la izquierda no están aquí para rellenar un filtro: cada uno señala un componente que existe y que se puede abrir. Si no tengo dónde señalar, no está en la lista. The terms on the left aren't here to game a filter: each one points at a component that exists and can be opened. If I have nowhere to point, it isn't on the list.Els termes de l'esquerra no són aquí per omplir un filtre: cadascun assenyala un component que existeix i que es pot obrir. Si no tinc on assenyalar, no és a la llista.

Una regla escrita no dispara.
Solo un mecanismo que falla previene.
A written rule doesn't fire.
Only a mechanism that fails prevents.
Una regla escrita no dispara.
Només un mecanisme que falla evita.

Lo probé dos veces sin querer, y salió de una auditoría que encargué sobre mis cinco repos. Escribí dos planes para cerrarlo y los tumbaron sus propias revisiones ciegas: el primero podía completarse al 100 % dejando el bug vivo. Está escrito aquí antes de estar arreglado.I proved it twice by accident, and it came out of an audit I commissioned on my own five repos. I wrote two plans to close it and its own blind reviews knocked both down: the first could be completed 100 % with the bug still alive. It's written here before it's fixed.Ho vaig provar dues vegades sense voler, i va sortir d'una auditoria que vaig encarregar sobre els meus cinc repos. Vaig escriure dos plans per tancar-ho i els van tombar les seves pròpies revisions cegues: el primer es podia completar al 100 % deixant el bug viu. Està escrit aquí abans d'estar arreglat.

El límite, dicho aquí: las lentes agénticas comparten los mismos priors. Cazan falsos positivos, pero no el falso negativo de una medición mal montada o un requisito omitido: eso ninguna cantidad de agentes lo ve. La primera vez que aparece un sesgo nuevo sigue haciendo falta un humano. The limit, stated here: agentic lenses share the same priors. They kill false positives, but not the false negative of a badly built measurement or a missing requirement: no number of agents sees that. The first time a new bias appears, it still takes a human.El límit, dit aquí: les lents agèntiques comparteixen els mateixos priors. Cacen falsos positius, però no el fals negatiu d'una mesura mal muntada o un requisit omès: això cap quantitat d'agents ho veu. La primera vegada que apareix un biaix nou encara cal un humà.

Por qué yoWhy mePer què jo

El rigor lo aprendí con IA.
El criterio, pagando facturas.
I learned the rigor with AI.
The judgment, paying invoices.
El rigor el vaig aprendre amb IA.
El criteri, pagant factures.

Desde 2019 montando ecommerce. En el último, dropshipping COD, cada número era mi dinero, y eso cambia lo que se considera «terminado».Building ecommerce since 2019. In the latest one, COD dropshipping, every number was my own money, and that changes what counts as "finished".Des del 2019 muntant ecommerce. A l'últim, dropshipping COD, cada número eren els meus diners, i això canvia el que es considera «acabat».

Toca cualquier punto: abre la captura de su cuenta en Business Manager. Tap any point: it opens that account’s Business Manager capture.Toca qualsevol punt: obre la captura del seu compte a Business Manager.

Esto es el negocio del que salió el criterio. No es un proyecto de software: es seis años comprando medios con mi propio dinero, y la razón de que sepa qué cifra decide y cuál solo luce. This is the business the judgment came from. It isn't a software project: it's six years buying media with my own money, and the reason I know which figure decides and which one merely looks good.Això és el negoci del qual va sortir el criteri. No és un projecte de programari: són sis anys comprant mitjans amb els meus propis diners, i la raó que sàpiga quina xifra decideix i quina només llueix.

META

Meta Ads · seis años comprando mediosMeta Ads · six years buying mediaMeta Ads · sis anys comprant mitjans

performance marketing · COD Colombiaperformance marketing · COD Colombiaperformance marketing · COD Colòmbia

Seis años comprando medios con mi propio dinero: cinco cuentas y 301 campañas, del pulpito de 2020 a la tienda COD que sigue en marcha. Lo de aquí abajo es la cuenta principal, 102 campañas de abril de 2025 a junio de 2026, con un pipeline explícito (product testing ABO → ad testing → adset testing → scaling ADV) y una cuenta secundaria donde empecé validando producto y acabé escalando. El ROAS se sostuvo en casi 7x mientras se escalaba, que es cuando cae.Six years buying media with my own money: five accounts and 301 campaigns, from the 2020 octopus to the COD store still running. What follows is the main account, 102 campaigns from April 2025 to June 2026, with an explicit pipeline (product testing ABO → ad testing → adset testing → scaling ADV) plus a secondary account where I started validating product and ended up scaling. ROAS held at nearly 7x while scaling, which is when it drops.Sis anys comprant mitjans amb els meus propis diners: cinc comptes i 301 campanyes, del pop del 2020 a la botiga COD que segueix en marxa. El d'aquí sota és el compte principal, 102 campanyes d'abril del 2025 a juny del 2026, amb un pipeline explícit (product testing ABO → ad testing → adset testing → scaling ADV) i un compte secundari on vaig començar validant producte i vaig acabar escalant. El ROAS es va sostenir en gairebé 7x mentre s'escalava, que és quan cau.

product testing ABO→ad testing→adset testing→scaling ADV⊣utilidad neta conciliada
modo de fallofailure modemode de fallada En COD el ROAS de plataforma no es el dinero que cobras: no descuenta la no-entrega ni la devolución. Por eso la cifra con la que decidía no era esta: era la utilidad neta conciliada que calcula ECXM sobre los pedidos cerrados de cada mes, con gate de igualdad exacta. El número bonito está aquí arriba; el número real pasa por un gate. In COD, platform ROAS isn't the money you collect: it doesn't net out failed deliveries or returns. So the figure I decided on wasn't this one: it was the reconciled net profit ECXM computes over each month's closed orders, behind an exact-equality gate. The pretty number is up here; the real one goes through a gate.En COD el ROAS de plataforma no són els diners que cobres: no descompta la no-entrega ni la devolució. Per això la xifra amb què decidia no era aquesta: era la utilitat neta conciliada que calcula ECXM sobre les comandes tancades de cada mes, amb gate d'igualtat exacta. El número bonic és aquí dalt; el número real passa per un gate.
~58.659 € gestionados en 6 añosmanaged over 6 yearsgestionats en 6 anys 301 campañas en 5 cuentascampaigns across 5 accountscampanyes en 5 comptes 6,13 ROAS combinadoblended ROASROAS combinat 6,97 ROAS de la cuenta principalmain account ROASROAS del compte principal
Fila de totales del Business Manager: 102 campañas, 10.975 compras, CTR único 6,81 %, ROAS 6,97 / Business Manager totals row

Business Manager, fila de totales de la cuenta principal, 102 campañas. De ahí salen una a una: 10.975 compras, ROAS 6,97, CTR único 6,81 % y un gasto de 168.841.118 COP, que a 4.500 COP/EUR son los ~37.520 €. Desliza para verla entera. Se retiró la marca de agua de Windows que cruzaba la fila; ninguna cifra tocada. La captura completa de esta cuenta, en la línea temporal, lleva la misma limpieza. Business Manager, totals row of the main account, 102 campaigns. Every one of these comes from here: 10,975 purchases, 6.97 ROAS, 6.81 % unique CTR and 168,841,118 COP of spend, which at 4,500 COP/EUR is the ~€37,520. Swipe to see it whole. The Windows watermark crossing the row was removed; no figure touched. This account’s full capture, on the timeline, carries the same cleanup.Business Manager, fila de totals del compte principal, 102 campanyes. D'aquí surten una a una: 10.975 compres, ROAS 6,97, CTR únic 6,81 % i una despesa de 168.841.118 COP, que a 4.500 COP/EUR són els ~37.520 €. Llisca per veure-la sencera. Es va retirar la marca d’aigua de Windows que creuava la fila; cap xifra tocada. La captura completa d’aquest compte, a la línia temporal, porta la mateixa neteja.

Las 5 cuentas publicitarias, una a una · 301 campañas entre 2020 y 2026 The 5 ad accounts, one by one · 301 campaigns between 2020 and 2026Els 5 comptes publicitaris, un a un · 301 campanyes entre 2020 i 2026
cuentaaccountcompte camp.camp.camp. inversiónspendinversió ROAS
Oktopet nov 2020 – mar 2021Nov 2020 – Mar 2021nov 2020 – març 2021915.201 €3,90
Tienda 20232023 storeBotiga 2023 otoño 2023autumn 2023tardor 2023692.290 €4,89
COD · EUR desde Q4 2024from Q4 2024des del Q4 20241133.173 €7,11
COD · COP 2025-262025-262025-26102~37.520 €6,97
COD · COP 2 2026202620268~475 €10,90
TOTALTOTALTOTAL301~58.659 €6,13

Cinco cuentas, seis años. El ROAS sube con los años (3,90 → 4,89 → 7,11) y el gasto por campaña dice en qué modo estaba cada una: 28 € por campaña en la cuenta de 2024 es testear barato; 368 € en la principal es escalar. La inversión suma; las «compras» que reporta Meta son atribuciones de plataforma y no pedidos, así que no las sumo aquí. Las cuentas en COP van convertidas a 4.500 COP/EUR, como el resto de la tarjeta, y por eso llevan tilde. Cada punto de la línea temporal de arriba abre la captura de su cuenta, a tamaño natural. Cuatro de los cinco puntos abren una: el de 2019 es anterior a cualquier cuenta. Y la de Oktopet no imprime fila de totales: sus dos cifras salen de sumar sus 9 campañas. Five accounts, six years. ROAS climbs over the years (3.90 → 4.89 → 7.11) and spend per campaign tells you the mode each one was in: €28 per campaign in the 2024 account is cheap testing; €368 in the main one is scaling. Spend adds up; the «purchases» Meta reports are platform attributions, not orders, so I don't total them here. The COP accounts are converted at 4,500 COP/EUR, like the rest of the card, which is why they carry a tilde. Each point on the timeline above opens its account’s capture, at natural size. Four of the five points open one: 2019 predates any account. And Oktopet’s prints no totals row: its two figures come from summing its 9 campaigns. Cinc comptes, sis anys. El ROAS puja amb els anys (3,90 → 4,89 → 7,11) i la despesa per campanya diu en quin mode estava cadascuna: 28 € per campanya al compte del 2024 és provar barat; 368 € al principal és escalar. La inversió suma; les «compres» que reporta Meta són atribucions de plataforma i no comandes, així que no les sumo aquí. Els comptes en COP van convertits a 4.500 COP/EUR, com la resta de la targeta, i per això porten titlla. Cada punt de la línia temporal de dalt obre la captura del seu compte, a mida natural. Quatre dels cinc punts n’obren una: el del 2019 és anterior a qualsevol compte. I la d’Oktopet no imprimeix fila de totals: les seves dues xifres surten de sumar les 9 campanyes.

Las 3 creatividades ganadoras · 752, 145 y 116 comentarios · una con el hook generado con IA The 3 winning creatives · 752, 145 and 116 comments · one with an AI-generated hookLes 3 creativitats guanyadores · 752, 145 i 116 comentaris · una amb el hook generat amb IA

El anuncio ganador de cada producto. Toca cualquiera para ver el creativo original: los dos con triángulo son vídeo y se reproducen. The winning ad for each product. Tap any of them to see the original creative: the two with a triangle are video and do play.L'anunci guanyador de cada producte. Toca'n qualsevol per veure el creatiu original: els dos amb triangle són vídeo i es reprodueixen.

Anuncio de Óxido Nítrico / Nitric Oxide ad
752 comentarios · 181 compartidos752 comments · 181 shares752 comentaris · 181 compartits
Anuncio en vídeo de Candida Cleanse / Candida Cleanse video ad
145 comentarios · 152 compartidos · vídeo145 comments · 152 shares · video145 comentaris · 152 compartits · vídeo
Anuncio en vídeo de caja fuerte portátil / Portable safe video ad
116 comentarios · 57 compartidos · vídeo · hook con IA116 comments · 57 shares · video · AI hook116 comentaris · 57 compartits · vídeo · hook amb IA

El de la caja fuerte es el mismo anuncio con otro hook: cuando el original se quedó sin rendimiento probé tres variaciones (dos hooks generados con IA y un corte más corto) y dejé que la métrica eligiera cuál vivía. Este es el que aguantó. Un modelo produce el creativo y una medición decide: el mismo bucle que los cinco sistemas. The safe’s is the same ad with a different hook: when the original ran out of performance I tested three variations (two AI-generated hooks and a shorter cut) and let the metric pick which one lived. This is the one that lasted. A model produces the creative, a measurement decides: the same loop as the five systems.El de la caixa forta és el mateix anunci amb un altre hook: quan l'original es va quedar sense rendiment vaig provar tres variacions (dos hooks generats amb IA i un tall més curt) i vaig deixar que la mètrica triés quina vivia. Aquest és el que va aguantar. Un model produeix el creatiu i una mesura decideix: el mateix bucle que els cinc sistemes.

variantevariantvariant gastospenddespesa compraspurchasescompres ROAS
AD1 HOOK2 hook con IAAI hookhook amb IA~1.853 €5037,93
AD1 el originalthe originall'original~432 €1197,88
AD1 V. CORTO corte cortoshorter cuttall curt~32 €43,52
AD1 HOOK1 hook con IAAI hookhook amb IA~4 €00
⤡ la captura de Business Managerthe Business Manager capturela captura de Business Manager

El hook de IA no salió más barato por compra (3,68 € contra 3,63): lo que hizo fue sostener el ROAS del original absorbiendo 4,3× el presupuesto, que es la parte difícil. Las otras dos murieron por la misma medición que dejó vivir a esta. Gasto convertido a 4.500 COP/EUR, como el resto de la tarjeta. Donde pone 0, Business Manager imprime un guión; la captura va en COP. The AI hook did not come out cheaper per purchase (€3.68 against €3.63): what it did was hold the original’s ROAS while absorbing 4.3× the budget, which is the hard part. The other two were killed by the same measurement that let this one live. Spend converted at 4,500 COP/EUR, like the rest of the card. Where it reads 0, Business Manager prints a dash; the capture is in COP.El hook d'IA no va sortir més barat per compra (3,68 € contra 3,63): el que va fer va ser sostenir el ROAS de l'original absorbint 4,3× el pressupost, que és la part difícil. Les altres dues van morir per la mateixa mesura que va deixar viure aquesta. Despesa convertida a 4.500 COP/EUR, com la resta de la targeta. On posa 0, Business Manager imprimeix un guió; la captura va en COP.

Media Buyer Marketing digital
cifras en COP convertidas a ~4.500 COP/EURCOP figures converted at ~4,500 COP/EURxifres en COP convertides a ~4.500 COP/EUR

Un ingeniero optimiza para que no falle.
Yo, además, para lo que cuesta que no falle.
An engineer optimizes so it doesn't fail.
I also optimize for what not failing costs.
Un enginyer optimitza perquè no falli.
Jo, a més, per el que costa que no falli.

No es una frase de portfolio: es la razón de que tres de los cinco sistemas cuesten 0 € de infraestructura y de que la promoción de reglas tenga freno.Not a portfolio line: it's why three of the five systems cost €0 in infrastructure and why rule promotion has a brake.No és una frase de portfolio: és la raó que tres dels cinc sistemes costin 0 € d'infraestructura i que la promoció de regles tingui fre.

01Sé lo que cuesta un decimalI know what a decimal costsSé el que costa un decimal

En ECXM la utilidad neta decide si un producto es «winner», y eso mueve el reparto del contrato de 50/50 a 40/60. Por eso esa cifra pasa por un gate de igualdad exacta. No es perfeccionismo: es el sueldo de otra persona.In ECXM net profit decides whether a product is a "winner", and that shifts the contract split from 50/50 to 40/60. That's why the figure goes through an exact-equality gate. It isn't perfectionism: it's somebody else's pay.A ECXM la utilitat neta decideix si un producte és «winner», i això mou el repartiment del contracte de 50/50 a 40/60. Per això aquella xifra passa per un gate d'igualtat exacta. No és perfeccionisme: és el sou d'una altra persona.

02Traduzco entre negocio y sistemaI translate between business and systemTradueixo entre negoci i sistema

He sido el que compra medios, el que mira el CPA a las 2 de la mañana y el que después construye la herramienta. No hay traducción intermedia: el requisito no se pierde entre quien lo sufre y quien lo implementa, porque son la misma persona.I've been the one buying media, watching CPA at 2 a.m., and then building the tool. There's no translation layer: the requirement doesn't get lost between whoever suffers it and whoever implements it, because they're the same person.He estat el que compra mitjans, el que mira el CPA a les 2 de la matinada i el que després construeix l'eina. No hi ha traducció intermèdia: el requisit no es perd entre qui el pateix i qui l'implementa, perquè són la mateixa persona.

03Construyo para borrar el proceso, no para asistirloI build to delete the process, not assist itConstrueixo per esborrar el procés, no per assistir-lo

Usar un modelo para hacer el trabajo de cada día es alquilar una solución. Usarlo para construir el sistema que elimina ese trabajo es quedártela. Siete etapas de un negocio entero encadenadas en una CLI es lo segundo.Using a model to do the daily work is renting a solution. Using it to build the system that removes that work is owning it. Seven stages of a whole business chained into one CLI is the second kind.Fer servir un model per fer la feina de cada dia és llogar una solució. Fer-lo servir per construir el sistema que elimina aquella feina és quedar-te-la. Set etapes d'un negoci sencer encadenades en una CLI és el segon.

04Digo lo que no está construidoI say what isn't builtDic el que no està construït

La subida automática a YouTube, el Stripe en modo test, la publicación que no se automatiza a propósito porque va contra los términos de la plataforma. Un límite escrito antes de que lo preguntes vale más que una demo sin costuras.The automatic YouTube upload, Stripe in test mode, the publishing step deliberately left manual because it breaks the platform's terms. A limit written down before you ask is worth more than a seamless demo.La pujada automàtica a YouTube, l'Stripe en mode test, la publicació que no s'automatitza a propòsit perquè va contra els termes de la plataforma. Un límit escrit abans que ho preguntis val més que una demo sense costures.

StackStackStack

Lo que uso, y con qué profundidad.What I use, and how deeply.El que faig servir, i amb quina profunditat.

Nada entra aquí si no aparece en uno de los proyectos de arriba.Nothing enters this list unless it appears in one of the projects above.Res no entra aquí si no apareix en un dels projectes de dalt.

en producción · el resto lo he usado en algún proyectoin production · the rest I've used in some projecten producció · la resta l'he fet servir en algun projecte

Construir con agentesBuilding with agentsConstruir amb agents

Claude CodeOpus · orquestadorSonnet · agentes paralelos subagentes con rolskills propias/method /optimize/evalMCP

Modelos por tareaModels per taskModels per tasca

ClaudeGemini · análisis de vídeoGPT OpenRouterVisionOCR structured outputs · json_schema

Lenguajes y datosLanguages and dataLlenguatges i dades

PythonSQLpandas pytestJavaScriptTypeScript PostgreSQLRLSmigraciones versionadas

Media y vozMedia and voiceMedia i veu

FFmpegfaster-whisperstable-ts edge-ttsforced alignment PillowNVENCASS / SRT

On-chain y cuantitativoOn-chain and quantitativeOn-chain i quantitatiu

SolanaRPC · telemetríabacktesting scoring ML + LLMTelegram Bot API

DisciplinaDisciplineDisciplina

goldens · igualdad exactaledger append-only pre-commit thresholdsGitCLI propias
construido y medidobuilt and measuredconstruït i mesurat RAG sobre el corpus del BOE: lo medí y no separa (recall@1 28,6-37,5 %), así que el gate de citas sigue siendo deterministaRAG over the BOE corpus: I measured it and it doesn't separate (28.6-37.5 % recall@1), so the citation gate stays deterministicRAG sobre el corpus del BOE: el vaig mesurar i no separa (recall@1 28,6-37,5 %), així que el gate de cites segueix sent determinista
escrito a mano en vez dehand-written instead ofescrit a mà en comptes de LangChain · LlamaIndex · LangSmith · Weights & Biases · Guardrails AI · NeMo Guardrails
no lo he construidoI haven't builtno ho he construït Docker · KubernetesDocker · KubernetesDocker · Kubernetes
Producto, web y adquisiciónProduct, web and acquisitionProducte, web i adquisició

Producto y webProduct and webProducte i web

StreamlitReactPlaywright StripeNext.jsTailwind WordPressElementor

Adquisición y e-commerceAcquisition and e-commerceAdquisició i e-commerce

Meta AdsBusiness Managerpíxel / CAPI ShopifyCOD · logística inversaGoogle AdsTikTok Ads

ContactoContactContacte

Busco un puesto de AI Engineer.I'm looking for an AI Engineer role.Busco una posició d'AI Engineer.

Si pones LLMs en producción y necesitas la capa que los frena (evals, guardrails, grounding), o tienes un proceso que nadie quiere tocar en un dominio donde los datos deciden dinero: hablamos.If you're putting LLMs into production and need the layer that reins them in (evals, guardrails, grounding), or you have a process nobody wants to touch in a domain where data decides money: let's talk.Si poses LLMs en producció i necessites la capa que els frena (evals, guardrails, grounding), o tens un procés que ningú vol tocar en un domini on les dades decideixen diners: parlem-ne.

emailemailemail diegollr98@gmail.com
dóndewhereon Barcelona · remoto o híbridoBarcelona · remote or hybridBarcelona · remot o híbrid
estadostatusestat disponibleavailabledisponible
códigocodecodi video-pipeline · resellermaster · el resto bajo peticiónvideo-pipeline · resellermaster · the rest on requestvideo-pipeline · resellermaster · la resta sota petició
© 2026 Diego 5 sistemas · construidos en solitario, con IA5 systems · built solo, with AI5 sistemes · construïts en solitari, amb IA