Documento de contexto · entrevista Smartly · lunes 26

Todo lo que un agente necesita saber

Un solo archivo Markdown, autocontenido: perfil con números verificados, la empresa, el proceso, los sistemas publicados con sus URLs, el marco técnico, respuestas modelo y las reglas de honestidad. Hecho para pegarlo o subirlo a un agente.

Descargar .md
510 líneas 26,7 KB 13 secciones 0 dependencias
Cómo usarlo: en un agente de texto, súbelo como documento o pégalo completo. En un agente de voz NO cabe — para eso usa el brief corto de brief.ened.online.
Ver el contenido completo
# Contexto completo — Erivan Valois · Entrevista Smartly

> **Qué es este documento.** El contexto íntegro para que un agente (de texto o de voz) pueda
> entrevistar, corregir o preparar a Erivan sin haber estado en la conversación original.
> Incluye su perfil con **números verificados contra los repositorios**, la empresa, el proceso
> conocido, los sistemas publicados con sus URLs, el marco técnico que usa, respuestas modelo y
> las reglas de honestidad.
>
> **Cómo usarlo.** Para un agente de texto: súbelo como contexto o pégalo entero. Para un agente
> de voz: usa solo la sección 8 (Brief corto), porque corta el contexto largo.
>
> **Convención de honestidad.** Lo marcado como **[verificado]** lo medí ejecutando comandos sobre
> los repositorios. **[declarado]** viene de su CV o su dossier y no lo pude comprobar.
> **[inferido]** es interpretación mía. No mezclar las tres.

---

## Índice

1. [La persona](#1-la-persona)
2. [Cronología](#2-cronología)
3. [La empresa: Smartly](#3-la-empresa-smartly)
4. [El puesto y el proceso](#4-el-puesto-y-el-proceso)
5. [Los sistemas publicados](#5-los-sistemas-publicados)
6. [El portafolio, con números verificados](#6-el-portafolio-con-números-verificados)
7. [El marco técnico que usa](#7-el-marco-técnico-que-usa)
8. [Brief corto para un agente de voz](#8-brief-corto-para-un-agente-de-voz)
9. [Respuestas modelo](#9-respuestas-modelo)
10. [Huecos y reglas de honestidad](#10-huecos-y-reglas-de-honestidad)
11. [Preguntas que él debe hacer](#11-preguntas-que-él-debe-hacer)
12. [Qué no hacer](#12-qué-no-hacer)
13. [Glosario del dominio](#13-glosario-del-dominio)

---

## 1. La persona

**Erivan Eder Valois Espinosa.** Ciudad de México. `edervalois88@gmail.com` · `+52 56 3355 1085` ·
`github.com/edervalois88` (18 repos públicos, cuenta desde 2018).

Ingeniero de frontend con perfil poco común: **quince años en tecnología, diez de ellos en frontend,
y ocho dirigiendo tecnología como CTO o director** antes de volver a un rol técnico hands-on.

Su posicionamiento en una frase: *"construyo herramientas operativas donde lo difícil no es el diseño
visual, es el estado"*.

Lo que lo distingue, en orden de fuerza para esta entrevista:

1. **Lidera el frontend de una plataforma empresarial real** con más de mil componentes y treinta y
   siete contribuyentes, y sigue escribiendo código a diario.
2. **Convierte convenciones en máquinas**: en lugar de documentar reglas, escribe linters y reglas de
   CI que fallan el build. Lo hizo en su trabajo y en sus proyectos personales.
3. **Construye y publica**: en una semana produjo y desplegó cuatro artefactos web funcionando, más
   un orquestador de agentes de IA en producción interna.
4. **Sabe de negocio**: fue CTO y redujo costo de TI un 68 %; entiende el trade-off de coste y riesgo,
   no solo de arquitectura.

Idiomas: español nativo, **inglés avanzado** (reuniones técnicas, documentación, colaboración global),
francés básico. Disponibilidad: híbrido un día por semana en CDMX.

---

## 2. Cronología

Memorizarla: sostiene todo lo demás.

| Periodo | Rol | Organización |
|---|---|---|
| 2008 – 2017 | Jefe de Depto. de Capacitación y Desarrollo; antes desarrollador y DBA | INBA (sector público) |
| 2017 – 2020 | Director de Tecnología y Desarrollo | Grupo Filoa SAPI (retail) |
| 2020 – 2025 | **Chief Technology Officer** | Escala Inc (23 sedes en México y Europa) |
| Mar – Nov 2025 | Subdirector de Tecnologías de la Información | TOBB (CAT de CONADE) |
| **Nov 2025 – hoy** | **Tech Lead / Arquitecto de Software** | **Rubidex** (plataforma BMS) |

**IA generativa en producción, cuatro despliegues** (2,5 años, no más):

| Fecha | Proyecto | Industria | Marco |
|---|---|---|---|
| Ene 2024 | Robot Bar RK | Hospitalidad | Empleo (Escala) |
| Mar 2025 | LMS de la ENED (video generativo + tutor RAG) | Sector público | Empleo (TOBB) |
| Mar–Abr 2025 | Matrix Gemma | Minería | **Pro bono**, no empleo |
| Nov 2025 – hoy | BMS Intel | Edificios inteligentes | Empleo (Rubidex) |

> Si preguntan "¿cuántos años en IA?": **dos y medio en IA generativa productiva, quince en
> tecnología.** No estirar el número.

---

## 3. La empresa: Smartly

**Confirmado:** el cliente es **Smartly** (`smartly.io`). La reclutadora, Corina Arellano, escribe
desde `@smartly.io` y los correos se titulan *"Interview with Smartly"*. La vacante de CodersLink
describe *"a U.S.-based advertising technology company"* con *"creative automation at massive scale"*.

**Qué es.** Empresa finlandesa (Helsinki) de publicidad con IA. Se define a sí misma como
*"not a media platform, not a creative studio"*: vende la capa donde **creativo y medios** trabajan
juntos. Tres suites — **Creative**, **Media**, **Intelligence** — más **Synapse**, su capa de agentes
de IA. [Fuente: smartly.io/creative-suite]

**La Creative Suite, en detalle** (es donde caería su rol):

- **Template Editors** de imagen, video, audio y **HTML5**; importan plantillas desde **After Effects,
  Photoshop, Figma y Google Web Designer**.
- **DCO** (*dynamic creative optimization*): *"one concept, thousands of variants"*, localizadas en
  tiempo real por **región, idioma y demografía**.
- **Brand governance** dentro del flujo, no al final.
- **Pre-flight insights** con IA: heatmaps, *attention scores*, *decay curves* — predecir rendimiento
  antes de publicar.
- **Canales:** social, *conversational commerce*, **CTV** (200+ servicios de streaming), open web
  (DSPs) y video.
- **Equipos usuarios:** agencias, performance, marca, creativos, B2B.

**Por qué eso define el problema de frontend.** Cuatro problemas, los cuatro de interfaz:

1. **Un editor**: plantillas de HTML5/video/audio; lienzo, selección, capas, undo/redo, zoom.
2. **Un preview aislado**: una plantilla HTML5 es **código de terceros** que debe renderizarse sin
   tocar la sesión del usuario → `iframe` con origen opaco + `postMessage` validado.
3. **Volumen**: miles de variantes por concepto, mercado y formato → listas virtualizadas, previews
   con memoria acotada, renders por lotes.
4. **Gobierno y flujo**: aprobaciones, permisos por equipo y cliente, estados con reglas.

**Contexto de investigación.** Su CV y su dossier mencionan entrevistas previas con Smartly en octubre.
El proceso es largo: contactos desde el 5 de octubre, invitaciones el 6 y el 20, y entrevista el 26.

---

## 4. El puesto y el proceso

**Vacante (CodersLink):** Senior Front End Engineer · *"$106,500 MXN/mes brutos"* · Híbrido CDMX ·
Full time · 4–6 años de experiencia (los *must-haves* dicen 6+).

**Must-haves del posting:** React y TypeScript, manejo de estado y optimización de rendimiento,
aplicaciones web escalables, arquitectura de componentes, **REST APIs y flujos asíncronos**.
**Nice-to-haves:** Vite/Webpack, Jest/RTL, **exposición a funciones con IA o aplicaciones con muchos
datos**, equipos de producto transversales.

**Proceso de CodersLink (confirmado en su guía y FAQs):**

| Etapa | Quién | Idioma | Qué evalúa |
|---|---|---|---|
| Aplicación | portal | — | CV |
| Evaluación | reclutador mexicano | español | salario, reubicación, carrera |
| Evaluación | **vídeo asíncrono** | inglés | fluidez; nivel B2–C1 |
| Matching | interno | — | encaje |
| **Entrevista con la empresa** | **Smartly** | **100 % inglés** | ~2 rondas de 30–40 min |
| Oferta | CodersLink | — | respuesta en 2 días hábiles |

**Las siete preguntas publicadas de su vídeo en inglés:**

1. What's your first name?
2. What's your role / area of expertise?
3. Which tech skills do you have the most experience with?
4. **Why should a company hire you over other professionals?**
5. **Explain the project you are most proud of and your contribution.**
6. **What's the biggest failure you've had and how did you solve it?**
7. **What elements are necessary for a successful team, and why?**

**Formato técnico observado en adtech (reportes públicos de candidatos):**

- **The Trade Desk:** HR → **escribir un event emitter en vivo, 60 min** → take-home.
- **The Trade Desk (Lead):** system design + 2 problem-solving + **sesión de debugging/refactoring**.
- **StackAdapt:** live coding + system design (RTB con latencia de ms), CSS box model, estado en React.
- **Smartly:** *"Technical interview limited to front-end: how would you design a webapp? how would
  you organize this project? how would you reuse React components? how would you organize a webapp
  project if you had 100 engineers?"* — **sin preguntas de algoritmos**.

> **La pregunta que hay que tener lista: "¿cómo organizarías un proyecto con 100 ingenieros?"**

---

## 5. Los sistemas publicados

Todo está en línea, con HTTPS, y se puede abrir desde cualquier dispositivo.

| URL | Qué es | Estado |
|---|---|---|
| `https://ened.online` | Hub de todo el material | ✅ |
| `https://curso.ened.online` | **Curso de escalabilidad**: 14 lecciones, 40 diagramas animados, 59 preguntas con explicación de cada opción, modo oscuro | ✅ |
| `https://lab.ened.online` | **Laboratorio**: 6 módulos con medición real en el navegador (listas, filtrado, cascadas, ingesta, re-render, dashboards) | ✅ |
| `https://creativo.ened.online` | **Demo de automatización creativa**: brief → generación → revisión → entrega, ES/EN, oscuro, DCO por mercado, brand kit, preview aislado | ✅ |
| `https://pruebas.ened.online` | **Simulador de pruebas técnicas**: 32 predicciones, 12 retos ejecutables en Worker, 8 cazas de bugs, componentes, sistemas, simulacro de 45 min | ✅ |
| `https://voz.ened.online` | **Ensayo en voz alta**: transcribe, cronometra, cuenta muletillas y lee modelos en inglés | ✅ |
| `https://pitch.ened.online` | Pitch verificado + prompt para agente de voz | ✅ |
| `https://brief.ened.online` | Brief corto para pegar al inicio de una sesión de voz | ✅ |
| `https://plan.ened.online` | Plan de acción con cuenta atrás y casillas | ✅ |
| `https://ened.online/descargas/material-smartly.tar.gz` | Paquete con dossier, curso y código fuente | ✅ |

**El demo, en una frase:** *"la versión más pequeña y honesta de su flujo, con los tres problemas
técnicos que de verdad tiene: miles de variantes, HTML5 renderizado como código no confiable, y
generación por lotes que falla parcialmente."*

**Lo que el demo demuestra técnicamente:**

- Galería **virtualizada**: 5.000 variantes, ~35–40 tarjetas en el DOM.
- Preview en `iframe` con `sandbox="allow-scripts"` **sin** `allow-same-origin` → origen opaco.
- `postMessage` validado en **tres puertas**: `event.origin === 'null'`, `event.source ===
  iframe.contentWindow`, y esquema zod `.strict()`.
- Job con estados como **unión discriminada** (`queued | running | failed | done`) y ~4 % de fallos
  deterministas, con reintento solo de los fallidos.
- Persistencia local versionada de aprobaciones; dos niveles (revisor / cliente).
- 214 pruebas en verde; [declarado] 19 archivos de prueba.

---

## 6. El portafolio, con números verificados

### 6.1 BMS Intel — su trabajo actual (Rubidex, `Rubidex/bms-client`)

**[verificado]** medido sobre el repositorio el 25 de octubre de 2026, clonando `bms-client`:

| Métrica | Valor |
|---|---|
| Líneas TypeScript/TSX | **≈ 305.000** |
| Archivos TS/TSX | **2.363** (1.269 `.ts` + 1.094 `.tsx`) |
| Componentes | **1.033** (`src/components`) |
| Rutas de la app | **212** (`src/app`) |
| Hooks propios | **391** (`src/hooks`) |
| Commits totales | **10.224** |
| Contribuyentes | **37** |
| Commits desde nov 2025 | **3.474** |
| Commits de Erivan en ese periodo | **1.365 = 39 %** |
| Siguiente contribuyente | **510** (Marcos Rosiles) |
| Archivos de pruebas E2E | **26** (`tests/e2e`) |
| Workflows de CI | **5** |
| Código generado | solo 1.425 líneas → **no infla la cifra** |

**[declarado]** 17 módulos de negocio (edificios, activos, órdenes de trabajo, alertas, reservaciones,
commissioning, paquetería, analítica, facturación, documentación, newsletter, usuarios, organización,
configuración, tablero, análisis, operaciones) y 23 comprobadores de calidad propios, entre ellos un
**validador de contratos DTO** entre frontend y backend.

**Matiz importante:** hay una segunda versión del cliente (`bms-client-v2`) con ~62.000 líneas TS/TSX,
1.012 archivos y 5 workflows. Es una reescritura, no el total.

**Su versión declarada:** tomó el liderazgo técnico en **noviembre de 2025** sobre un producto **ya en
operación**, no lo construyó desde cero.

### 6.2 HeyDuck — su proyecto más profundo (privado)

**[verificado]**

| Métrica | Valor |
|---|---|
| Líneas TS/TSX | **73.689** (77.827 contando CSS y SQL) |
| Archivos | 1.121 (818 TS/TSX) |
| Commits | 493 en un mes |
| Reglas de arquitectura propias | **20** (más 15 de dependency-cruiser) |
| Workflows de CI | 4 |
| Pruebas | 202 archivos unitarios + 65 spec (15 E2E, 50 de API), ~2.000 casos |

Un linter propio con 20 reglas: `tenant-rls`, `no-raw-sql`, `hr-privacy`,
`no-tokens-in-web-storage`, `design-tokens-only`, `brand-fonts-only`, `file-size`,
`validated-request-bodies`, `admin-routes-require-capability`… **Es su mejor historia técnica.**

### 6.3 Otros proyectos

| Proyecto | Líneas TS/TSX | Qué demuestra |
|---|---|---|
| Valeria Rangel (privado) | 41.747 | 46 rutas, 40 tablas, 21 migraciones, borrado garantizado de datos personales, checkout idempotente con Stripe |
| PlexusMD (público) | 25.587 | Salud, multi-tenant, RBAC, auditoría |
| Frigate Console (privado) | 23.445 | Muro de video en vivo (HLS + MQTT), auth en middleware de borde que falla cerrado |
| Matrix RH | — | RAG local con Qdrant + Ollama, instalable en Windows |

### 6.4 El piloto de agentes (privado, operación interna)

Un orquestador que convierte issues de GitHub en **PRs revisados por un humano**:

- workspace aislado por tarea (`git worktree`), concurrencia y turnos limitados, presupuesto por run;
- **clasificador de fallos** que distingue *modelo* de *entorno* antes de escalar de modelo;
- credenciales del tracker **fuera** del entorno del agente;
- métricas reales: **259 ejecuciones, 46,89 USD, ~0,32 USD por run**, tres semanas;
- el merge exige etiqueta humana **y** todos los checks verdes.

**La métrica que él mismo admite que no mide todavía:** la tasa de **falso-terminado** (cuántas veces
el agente dice "listo" y no lo está). Decirlo antes de que lo pregunten es una señal de seniority.

---

## 7. El marco técnico que usa

### 7.1 Escalar no es optimizar

- **Optimizar** = hacer lo mismo más rápido. **Escalar** = cambiar lo que se rompe.
- La pregunta correcta: **"¿qué se rompe primero cuando esto crece 10x?"**
- Y la prueba de que escalaste: **la curva deja de ser una recta.** Si al duplicar usuarios se duplica
  el coste, optimizaste.

### 7.2 Los cuatro ejes

| Eje | Se rompe | Palanca |
|---|---|---|
| **Datos** (10x filas) | DOM, memoria, hilo principal | virtualizar, workers, agregar en servidor |
| **Usuarios** (10x tráfico) | primer pintado, servidor | SSR/RSC, caché, CDN, split por ruta |
| **Código/equipo** (10x ingenieros) | la coherencia | fronteras, contratos tipados, **guardarraíles en CI** |
| **Dominio** (10x formatos) | el `if` que crece | configuración tipada, uniones discriminadas |

### 7.3 El método de cinco pasos

1. **Cuello de botella** — qué se rompe primero.
2. **Medición** — con qué número lo sé.
3. **Palanca** — cuál de los cuatro ejes, y qué cuesta.
4. **Lo que no haría** — y por qué.
5. **El siguiente límite** — qué se rompe después.

El paso 5 es el que casi nadie da y el que más impresiona.

### 7.4 Cuando no sabe

> *"I haven't done it at that scale. What I do know is which resource would run out first, so let me
> reason from there."*

En un navegador solo se agotan **cuatro** cosas: nodos del DOM, tiempo del hilo principal, memoria y
red. En un servidor: conexiones, escrituras por segundo, tamaño de cola y coste de consulta.

### 7.5 El tema de adtech que separa senior de mid

**`iframe sandbox` + `postMessage`.** Lo que hay que saber decir:

- Un creativo HTML es código de terceros: no puede correr en el origen propio.
- `sandbox="allow-scripts"` **sin** `allow-same-origin` → **origen opaco**, reportado como `"null"`.
- **Los dos permisos juntos anulan el sandbox**: el frame puede quitarse el atributo a sí mismo.
- `postMessage` se valida con **tres puertas**: origen, `event.source` (porque todos los frames opacos
  comparten `"null"`), y esquema estricto.
- `targetOrigin: '*'` **es válido al enviar** a un marco opaco —no puede conocer el origen del padre—
  pero **no es validación**: la seguridad está en recibir.

---

## 8. Brief corto para un agente de voz

Texto listo para pegar antes de activar el modo de voz (~1.400 caracteres):

```
I'm interviewing tomorrow for Senior Frontend Engineer at Smartly
(AI advertising / creative automation: DCO, brand governance, HTML5
templates rendered as untrusted code).

Your job: be the hiring manager. One question at a time, in English.
Interrupt me past 90 seconds. Never give hints. After each answer ask
the hardest follow-up: why not the alternative, what breaks at 10x,
what would you do differently. If I give a number, ask how I measured
it. No praise. At the end, score 1-4 on structure, depth, evidence,
honesty, communication, and name my single worst habit.

My facts:
- I lead the frontend of an enterprise platform: 17 modules,
  1,033 components, 212 routes, ~305k lines of TypeScript, 37
  contributors, 10,224 commits.
- I joined in Nov 2025 and wrote 1,365 of the 3,474 commits since
  (39%), more than double the next contributor. Still hands-on daily.
- 5 CI workflows and 23 custom quality checks that fail the build when
  a DTO contract drifts or a translation is incomplete.
- Side project: 78k lines, 20 custom architecture rules enforced by a
  linter. Also built an AI orchestrator: issue to reviewed PR, with a
  human gate before merge.
- I published a demo of the creative-automation flow: brief,
  generation, review, delivery, with per-market localization.

Start with: "Tell me about yourself and walk me through your most
complex project."
```

---

## 9. Respuestas modelo

### 9.1 Pitch de 90 segundos (inglés)

> "I'm a frontend engineer who builds operational tools — the kind where the hard part isn't the
> visual design, it's the state.
>
> Right now I lead the frontend of an enterprise platform for smart buildings: seventeen business
> modules, a thousand components, two hundred routes, about three hundred thousand lines of
> TypeScript. I joined in November and I've contributed thirty-nine percent of the commits since then
> — more than double anyone else on the team — and I'm still writing code every day.
>
> What I'm proudest of isn't the size. It's that the architecture is enforced by a machine: five CI
> workflows and twenty-three custom checks that fail the build when a contract drifts, a translation
> is incomplete, or someone hardcodes a color instead of using a design token.
>
> And lately I've been building AI tooling — an orchestrator that turns issues into reviewed pull
> requests, with a human gate before merge. I'm looking for a team where the frontend is genuinely
> complex and owning the architecture is part of the job."

### 9.2 Los cien ingenieros (la pregunta de Smartly)

> "At a hundred engineers the bottleneck isn't code — it's coherence. With three people it lives in
> someone's head. With a hundred it has to live in the build.
>
> I'd do three things. First, explicit module boundaries with the dependency direction enforced by
> tooling, so the web layer cannot import the database. Second, typed contracts generated from the
> API schema, so frontend and backend cannot drift. Third, automated guardrails instead of a
> conventions document nobody reads.
>
> I wrote twenty such rules for a project with one author, because I didn't want to be the memory of
> the system. The cost is real: writing a rule takes longer than saying it in a meeting. But a rule
> in CI survives people being in a hurry, and a rule in a document does not."

### 9.3 La apertura del demo

> "You do DCO and brand governance at scale. I built the smallest honest version of that flow —
> brief, generation, review, delivery — with the three technical problems it actually has.
> Thousands of variants, so the gallery is virtualised: five thousand variants, about forty cards in
> the DOM. HTML5 rendered as untrusted code, so the preview runs in a sandboxed iframe with an opaque
> origin and every message validated in three gates. And batch generation that fails partially,
> because in the real world some variants fail and the user needs to retry only those."

### 9.4 Smartly en 60 segundos

> "Smartly is an AI advertising platform. They're explicit that they're not a media platform and not
> a creative studio. They sell the layer where creative and media work together: a Creative suite
> that produces and personalises variants, a Media suite for activation, and Intelligence for
> measurement. The core idea is dynamic creative optimisation — one concept, thousands of variants,
> localised by region, language and demographic — with brand governance built into the workflow
> instead of bolted on at the end."

### 9.5 Por qué esta empresa

> "What I want is the version of this problem with real scale. Creative automation looks like a
> marketing problem and it's actually a frontend problem: an editor, a rendering pipeline and a data
> console, where the hard parts are state, isolation and volume. That's what I've been building. Here
> those problems come with millions of creatives instead of thousands, and that's the interesting
> part."

---

## 10. Huecos y reglas de honestidad

**Una sola exageración detectada tira todo lo demás, y lo demás es muy bueno.**

| No decir | Decir |
|---|---|
| "Aporto el triple que el siguiente" | **"More than double"** — son 1.365 contra 510, dos coma siete veces |
| "El frontend son 175.000 líneas" sin matiz | "Eran 175.000 cuando lo medí; hoy son más de 300.000" |
| "Construí BMS desde cero" | "Tomé el liderazgo técnico en noviembre de 2025 sobre un producto ya en operación" |
| "Soy CTO" | Fue CTO cuatro años; ahora es Tech Lead hands-on. Una línea, no una identidad |
| "Dominio QLoRA, DPO, instruction tuning" | "LoRA sí, sobre un cross-encoder; QLoRA y alineación por preferencias no los he usado" |
| "Opero Kubernetes" | "El backend que coordino despliega en Kubernetes; yo no lo he operado hands-on. Docker sí" |
| "Uso Pinecone / pgvector / Elasticsearch" | "Qdrant y ChromaDB" |
| "Los evals con LLM están probados" | Están implementados y **no ejecutados** por falta de credencial |
| "Conozco CNBV o Banxico" | No. Lo cercano: NOM-035, ISO 27001, integración fiscal ante el SAT |

**Cómo se dice un hueco sin perder la entrevista:** nombrar el hueco, decir lo más cercano que sí
tiene, y cerrar con cómo lo cerraría.

**Huecos reales frente a esta vacante:**

- No ha trabajado en un equipo de frontend de 20+ personas *como IC*; ha liderado. No esconderlo:
  convertirlo en "sé cómo se ve desde arriba y sigo escribiendo código".
- No ha operado un editor gráfico colaborativo (CRDT/OT). Su experiencia más cercana es el estado
  complejo y el aislamiento de contenido.
- No tiene React Query en sus proyectos propios (usa capas propias); sí lo conoce conceptualmente y
  lo declara como conocimiento, no como experiencia profunda.

---

## 11. Preguntas que él debe hacer

Elegir tres. Todas de dominio, ninguna de beneficios:

1. *"Where does the bottleneck hurt more today — producing the variants, or getting them approved and
   trafficked?"*
2. *"How do you render HTML5 templates safely — client-side in a sandbox, or server-side?"*
   ← **la mejor**: es su problema técnico real y demuestra que entiende el producto.
3. *"How does the frontend split ownership between the editor, the review flow and the data side?"*
4. *"How do you decide when a creative is good enough to ship — is there a pre-flight gate or does the
   reviewer own that judgement?"*
5. *"What's the biggest source of friction between frontend and backend right now?"*

---

## 12. Qué no hacer

- **No decir "está listo para producción"** sobre el demo. Es una demo: decirlo lo debilita todo.
- **No afirmar que el iframe es "100 % seguro".** Es "aislado tanto como el navegador permite".
- **No decir "son 5.000 tarjetas renderizadas".** Son ~40 montadas. El logro es no renderizarlas.
- **No fingir que conoce Smartly de años.** Sabe su producto y su categoría; eso basta.
- **No hablar 6 minutos seguidos.** El entrevistador tiene 40 y tres preguntas más.
- **No inventar métricas de negocio** (CTR, conversión) que no pueda medir.

---

## 13. Glosario del dominio

| Término | Significado |
|---|---|
| **Creative automation** | Producir cientos o miles de piezas publicitarias desde plantillas y datos, sin diseño manual |
| **DCO** | *Dynamic creative optimization*: un concepto, muchas variantes, personalizadas por audiencia, región e idioma |
| **Brand governance** | Reglas de marca (logo, color, tipografía, tono) verificadas dentro del flujo de producción |
| **Pre-flight** | Validación antes de publicar: el creativo cumple especificaciones y políticas |
| **Trafficking** | Publicar y distribuir las piezas en los canales (Meta, Google, TikTok, CTV…) |
| **Safe area** | Margen que ningún elemento importante debe invadir en un formato de anuncio |
| **Template editor** | Herramienta donde se diseña la plantilla que genera las variantes |
| **DSP** | Plataforma de compra programática de medios |
| **CTV** | *Connected TV*: anuncios en televisores conectados y streaming |
| **Viewability** | Que el anuncio se haya visto de verdad: medido por tiempo visible y superficie |
| **Impression** | Una visualización registrada del anuncio |
| **CTA** | *Call to action*: la llamada a la acción del anuncio |

---

## Cierre

Lo que este documento describe es una persona con **quince años de oficio, ocho dirigiendo y dos y
medio en IA productiva**, que hoy lidera técnicamente una plataforma de mil componentes sin dejar de
escribir código, y que en la última semana construyó y publicó cuatro sistemas web para preparar esta
entrevista.

La conversación que hay que tener no es "¿sabes React?". Es: **"¿entiendes por qué automatizar
creatividad a escala es un problema de estado, aislamiento y volumen — y sabes construirlo?"**