<!-- Canonical: https://lucioduran.com/
Language: en
Content-SHA256: 4f354a9fd61688fe91aadd0b32ed085d200601beb83c8136109202c4d32bddc6
-->

# Lucio Durán

Technology director and product architect

Chief Technology Officer · LOi · San José de Mayo · Uruguay

22+ years architecting and shipping software products across healthcare, e-commerce, and marketplace verticals, from system design to production deployment. I lead engineering organizations where AI is not a feature but the core infrastructure layer. My work spans agentic AI systems, LLM integration patterns, full-stack development (React, React Native, Node, Python, iOS), and the strategic decisions that turn technical capabilities into revenue. I've built and scaled cross-functional teams across LATAM, the US, and Europe, owning the full product lifecycle: architecture decisions, CI/CD pipelines, cloud infrastructure, API design, and frontend performance. I operate at the intersection of hands-on engineering and executive technology strategy, I still read the PRs, and I still make the technical calls. Current focus: AI-augmented product development, agentic workflows, and building technology that compounds.

## Featured projects

- ### [Citable Publication](<https://lucioduran.com/projects/citable-publication>)

  Deterministic HTML, Markdown and JSON publishing from one corpus, with integrity verification before release and reproducible faults.

  Python · License: MIT

  [Read the project](<https://lucioduran.com/projects/citable-publication>) · [Repository](<https://github.com/lucioduran/citable-publication>)
- ### [RAG Evaluation Workbench](<https://lucioduran.com/projects/rag-evaluation-workbench>)

  Reproducible RAG evaluation with BM25, dense and hybrid retrieval, local CPU inference, and separate retrieval and answer metrics.

  Python · License: MIT

  [Read the project](<https://lucioduran.com/projects/rag-evaluation-workbench>) · [Repository](<https://github.com/lucioduran/rag-evaluation-workbench>)
- ### [Agent Replay Runtime](<https://lucioduran.com/projects/agent-replay-runtime>)

  Durable tool execution with event replay, idempotency keys and recovery after real process crashes. Includes effect traces and cases that stop instead of retrying automatically.

  Python · License: MIT

  [Read the project](<https://lucioduran.com/projects/agent-replay-runtime>) · [Repository](<https://github.com/lucioduran/agent-replay-runtime>)
- ### [Agent Injection Evals](<https://lucioduran.com/projects/agent-injection-evals>)

  Reproducible prompt-injection evaluation with a pinned local model, simulated tools and separate metrics for task capability, attack attempts and realized effects.

  Python · License: MIT

  [Read the project](<https://lucioduran.com/projects/agent-injection-evals>) · [Repository](<https://github.com/lucioduran/agent-injection-evals>)
- ### [MCP Contract Harness](<https://lucioduran.com/projects/mcp-contract-harness>)

  Read-only MCP server and independent clients for checking stdio negotiation, pagination, errors and cancellation, with actual wire messages and reproducible reports.

  Python / JavaScript · License: MIT

  [Read the project](<https://lucioduran.com/projects/mcp-contract-harness>) · [Repository](<https://github.com/lucioduran/mcp-contract-harness>)

[All projects](<https://lucioduran.com/projects>)

## Contents

- ### [Experience](<https://lucioduran.com/work-experience>)

  Roles, companies, responsibilities and contributions.
- ### [Expertise](<https://lucioduran.com/areas-of-expertise>)

  Areas of work, experience and related technologies, with individual records and references.
- ### [Education](<https://lucioduran.com/education>)

  Courses, institutions and credential links.
- ### [Biography](<https://lucioduran.com/bio>)

  Career and personal history.
- ### [Blog](<https://lucioduran.com/blog>)

  Technical publications, ordered by date.
- ### [Projects](<https://lucioduran.com/projects>)

  Public software, source code and reproducible results.
- ### [Architecture decisions](<https://lucioduran.com/decisions>)

  Architectural context, decisions and consequences.
- ### [CV](<https://lucioduran.com/cv>)

  Complete curriculum vitae, with print support.
- ### [Contact](<https://lucioduran.com/contact>)

  Contact information and public profiles.
- ### [Complete index](<https://lucioduran.com/site-index>)

  Every page, including individual records.
- ### [Content access](<https://lucioduran.com/access>)

  Formats, sources and how this site works.
- ### [Privacy](<https://lucioduran.com/privacy>)

  Privacy policy.

## Links

- [email@lucioduran.com](<mailto:email@lucioduran.com>)
- [Github](<https://github.com/lucioduran>)
- [Facebook](<https://facebook.com/lucioduran>)
- [LinkedIn](<https://uy.linkedin.com/in/lucioduran>)
- [Twitter](<https://twitter.com/lucioduran>)
- [Instagram](<https://instagram.com/lucioduran>)

## Built for machine reading

Discover. Retrieve. Understand. Cite. This infrastructure makes my work accessible as documents and data as well as web pages.

44 implemented controls / 8 areas / EN + ES

Each mark describes an implementation and links to an interface or its documentation. This is a technical site inventory, not external certification or a promise of inclusion in AI answers.

[JSON checklist](<https://lucioduran.com/api/capabilities?locale=en>) · [Build inventory and hashes](<https://lucioduran.com/api/publication?locale=en>) · [Contracts and examples](<https://lucioduran.com/access>)

### 01 / Discovery

- Implemented:  D01

  **Public crawling**

  robots.txt allows public content and advertises the sitemap. [robots.txt](<https://lucioduran.com/robots.txt>)
- Implemented:  D02

  **XML publication map**

  The sitemap is built from the published catalog, including individual records. [Sitemap](<https://lucioduran.com/sitemap.xml>)
- Implemented:  D03

  **Index without JavaScript**

  Every page has an HTML link in an index organized by content kind. [HTML](<https://lucioduran.com/site-index>)
- Implemented:  D04

  **Paginated JSON catalog**

  Canonical URLs, kinds, languages, available dates and representation links. [HTTP / JSON](<https://lucioduran.com/api/content-index?locale=en&limit=5>)
- Implemented:  D05

  **llms.txt guide**

  Index for clients using this proposal. Generated from the same catalog. [llms.txt](<https://lucioduran.com/llms.txt>)
- Implemented:  D06

  **Discovery on every page**

  HTML and Link headers advertise alternate formats and the API catalog. [HTML / Link](<https://lucioduran.com/access#discovery>)

### 02 / Content and representations

- Implemented:  F01

  **Server-delivered content**

  Main text is in the initial HTML response, before JavaScript runs. [HTML](<https://lucioduran.com/education>)
- Implemented:  F02

  **Markdown by URL**

  Every page supports .md. The English root uses /index.md. [Markdown](<https://lucioduran.com/education.md>)
- Implemented:  F03

  **JSON by URL**

  Content, headings, sections, links, language and structured data in one document. [HTTP / JSON](<https://lucioduran.com/education.json>)
- Implemented:  F04

  **HTTP content negotiation**

  Accept selects explicit Markdown or JSON; Vary: Accept separates representations. [Accept / Vary](<https://lucioduran.com/access#formats>)
- Implemented:  F05

  **One source for three formats**

  Markdown and JSON derive from HTML main, without a separate biography for bots. [HTTP / JSON](<https://lucioduran.com/bio.json>)
- Implemented:  F06

  **Structure preserved**

  Lists, tables, code, links and image references survive serialization. [Markdown](<https://lucioduran.com/blog/rag-pipeline-architecture-chunking-reranking-evaluation.md>)
- Implemented:  F07

  **Decoration excluded from content**

  Navigation, controls and decorative seals are excluded from Markdown and JSON. [HTTP / JSON](<https://lucioduran.com/projects.json>)

### 03 / Identity, attribution and citations

- Implemented:  C01

  **Canonical document URLs**

  HTML, Markdown, JSON and search results refer to the same publication. [HTTP / JSON](<https://lucioduran.com/projects/citable-publication.json>)
- Implemented:  C02

  **Anchored sections**

  Headings have identifiers for linking a specific passage. [HTTP / JSON](<https://lucioduran.com/access.json>)
- Implemented:  C03

  **Consistent identity**

  Person uses a stable identifier and links to the author’s public profiles. [JSON-LD](<https://lucioduran.com/index.json>)
- Implemented:  C04

  **Content-specific structured data**

  Profile, articles, projects and credentials publish structured data alongside visible text. [JSON-LD](<https://lucioduran.com/projects/citable-publication.json>)
- Implemented:  C05

  **Declared author and dates**

  Articles identify the author and preserve available publication and modification dates. [JSON Feed](<https://lucioduran.com/feed.json>)
- Implemented:  C06

  **Project evidence and limitations**

  Projects link repositories, revisions and published results with their scope. [Fuentes / Sources](<https://lucioduran.com/projects/mcp-contract-harness>)

### 04 / Retrieval and context

- Implemented:  R01

  **Search over published text**

  BM25 searches passages extracted from build HTML. Scores measure lexical relevance. [HTTP / JSON](<https://lucioduran.com/api/search?q=recall&locale=en&limit=3>)
- Implemented:  R02

  **Explicit filters and pagination**

  Language, kind, offset, limit and next support bounded, repeatable traversal. [HTTP / JSON](<https://lucioduran.com/api/search?q=agent&locale=en&kind=blog&limit=2>)
- Implemented:  R03

  **Results with citations and versions**

  Every result includes an excerpt, citationUrl and the indexed document’s contentHash. [HTTP / JSON](<https://lucioduran.com/api/search?q=recall&locale=en&limit=1>)
- Implemented:  R04

  **Read individual sections**

  section selects a heading and its subsections, with its own hash and source hash. [HTTP / JSON](<https://lucioduran.com/api/content?path=/access&format=json&section=search>)
- Implemented:  R05

  **MCP context windows**

  Reading supports limits and continuation by Unicode characters. The hash identifies the complete source. [MCP](<https://lucioduran.com/access#mcp>)

### 05 / Contracts and interfaces

- Implemented:  I01

  **RFC 9727 API catalog**

  A Linkset advertises endpoints and links their contracts and documentation. [Linkset](<https://lucioduran.com/.well-known/api-catalog>)
- Implemented:  I02

  **OpenAPI 3.1 contract**

  Operations, parameters, limits, responses and errors are documented for HTTP clients. [OpenAPI](<https://lucioduran.com/.well-known/openapi.json>)
- Implemented:  I03

  **Document and passage JSON Schema**

  The two response types have distinct schemas and a describedby header. [JSON Schema](<https://lucioduran.com/.well-known/schemas/publication.json>)
- Implemented:  I04

  **Read-only MCP**

  Tools to list, search and read using the official SDK and HTTP transport without persistent sessions. [MCP / HTTP](<https://lucioduran.com/access#mcp>)
- Implemented:  I05

  **RFC 9457 structured errors**

  Document, search, catalog, inventory and feed APIs return problem+json for handled errors. [Problem Details](<https://lucioduran.com/.well-known/openapi.json>)

### 06 / Freshness and integrity

- Implemented:  V01

  **SHA-256 content identity**

  Documents explain which fields are hashed. It identifies a version, not the truth of its claims. [HTTP / JSON](<https://lucioduran.com/education.json>)
- Implemented:  V02

  **Build inventory**

  Paginated URLs and hashes, collection version and generation time for comparing snapshots. [HTTP / JSON](<https://lucioduran.com/api/publication?locale=en&limit=3>)
- Implemented:  V03

  **Conditional reads**

  ETag and If-None-Match allow 304 responses without retransmitting unchanged documents. [ETag / 304](<https://lucioduran.com/access#integrity>)
- Implemented:  V04

  **Metadata without a response body**

  HEAD is available on documents, search, catalog, inventory and feeds. [HEAD](<https://lucioduran.com/access#integrity>)
- Implemented:  V05

  **Publication feeds**

  JSON Feed and Atom include article text; RSS publishes summaries. Dates and links come from source files. [JSON Feed / Atom / RSS](<https://lucioduran.com/feed.json>)

### 07 / Reading and access

- Implemented:  A01

  **Explicit languages**

  HTML declares the content language; JSON and document responses preserve it. [HTTP / JSON](<https://lucioduran.com/access.json>)
- Implemented:  A02

  **Linked EN and ES versions**

  hreflang links available versions and declares x-default. [HTML head](<https://lucioduran.com/blog>)
- Implemented:  A03

  **Native HTML semantics**

  main, headings, lists, tables and links express the content structure. [HTML](<https://lucioduran.com/education>)
- Implemented:  A04

  **Photo references, decorative seals**

  Photos are retained. Project seals are empty elements with aria-hidden. [HTML / aria-hidden](<https://lucioduran.com/projects>)
- Implemented:  A05

  **Public APIs without sessions**

  HTTP read APIs support CORS and OPTIONS. No account, cookies or key required. [CORS / OPTIONS](<https://lucioduran.com/api/content-index?locale=en&limit=1>)

### 08 / Consistency and boundaries

- Implemented:  B01

  **Versioned profile**

  Pages and APIs use the same versioned professional profile snapshot. [HTTP / JSON](<https://lucioduran.com/api/ai-profile>)
- Implemented:  B02

  **Index generated from HTML**

  The build rejects missing or duplicate heading anchors and expected pages absent from the index. [Build](<https://lucioduran.com/access#measurement>)
- Implemented:  B03

  **Site-scoped reading**

  The reader accepts known public paths and bounds source size, time and redirects. [Contrato / Contract](<https://lucioduran.com/access#boundaries>)
- Implemented:  B04

  **Content treated as source material**

  MCP tools identify document text as untrusted material for agent instructions. [MCP instructions](<https://lucioduran.com/access#mcp>)
- Implemented:  B05

  **Machine-readable checklist**

  This list and its JSON use the same registry. Each control has an identifier and evidence link. [HTTP / JSON](<https://lucioduran.com/api/capabilities?locale=en>)

### Standards, proposals and scope

HTTP, HTML, JSON Schema, OpenAPI, feeds and MCP solve specific tasks. llms.txt is a discovery proposal. Custom manifests are identified as such. WebMCP remains a developing specification and this site does not claim compatibility with it. Future capabilities will be added with a verifiable contract once they exist.

[Google AI features](<https://developers.google.com/search/docs/appearance/ai-features>) · [OpenAI crawlers](<https://developers.openai.com/api/docs/bots>) · [MCP](<https://modelcontextprotocol.io/specification/latest>) · [llms.txt](<https://llmstxt.org/>) · [WebMCP](<https://webmachinelearning.github.io/webmcp/>)
