Carlos Hernández
I build the platforms that run LLM systems — observable, versioned, costed, deletable.
DROP, not a query I have to pray covers every table. Five ranking lanes fused by Reciprocal Rank Fusion in a single SQL query — no external search service, no extra network hop. Access control is enforced inside the retrieval path, not as a filter afterwards. And it does something most knowledge tools don't: when it genuinely can't answer, that becomes a clustered, named knowledge gap — telling you what your documentation is missing, ranked by how many distinct people hit it.
Work marked under NDA is described by its engineering patterns and outcomes only. Client estates, infrastructure topology, vendor terms and cost figures stay where they belong.
The winning classifier is 1.3 MB, so it runs in the browser — no server, $0 to serve, and bank data that never leaves the device. Why where a model runs decides more than which model does, and the $3,024 a year a dedicated GPU costs to be the less accurate option.
Jul '26 The transformer wasn't worth itI fine-tuned DistilBERT against a linear model. On clean text McNemar returned p=1.00 — a statistical tie, which meant the benchmark had stopped measuring. So I broke it with realistic noise, and the 356×-smaller model won. Redundancy beat sophistication.
Jun '26 When classical winsI multiplied the training data by 7.4× and the F1 score moved four hundredths of a point. A controlled NLP benchmark on what actually limits a problem — and the cheapest model that fits beating the impressive one that doesn't earn its cost.
Jun '26 A jailbreak is a regression, not a surpriseMost AI safety in production is one untested sentence in a system prompt. What changed when I started treating every attack that worked — fictional-framing, instruction-override, injection — as a regression test that runs forever. 442 cases, zero through.
Jun '26 Why "deletable" is the most important word in LLM systemsYou can delete the document. Its embeddings, cached answers, and summaries stay behind. The four layers of deletability, the architecture call that makes "delete everything" one line, and the cache that outlived a tenant I thought I'd erased.
May '26 Prompts deserve migrations, not vibesSchema migrations have versioning, rollback, and a paper trail. Most prompts in production don't. What changed for me when I started treating them the same way, and where it broke first.
Side builds. Smaller in scope than the work above, kept here because the same disciplines show up at any size.
I'm Head of AI Platform Engineering in El Salvador. I work from the same desk where I started in cloud infrastructure eight years ago. The systems have grown, the teams behind them too — but the principles haven't. Only the layer I apply them to.
I care about systems you can operate, not just demo. About prompts that fail loudly. About observability that survives the third on-call rotation. About cost lines that don't blow up the first time a feature gets traction.
Outside of paid work, I build small tools for my own life — usually with the same disciplines, because I don't know how to build software any other way.