{
  "$schema": "https://resume-oscarenas.web.app/resume.json",
  "generatedAt": "2026-09-17T06:30:44.201Z",
  "locales": [
    "en",
    "es"
  ],
  "site": "https://resume-oscarenas.web.app",
  "pages": {
    "en": "https://resume-oscarenas.web.app/",
    "es": "https://resume-oscarenas.web.app/es/"
  },
  "profile": {
    "name": "Oscar Arenas",
    "legalName": "Oscar Antonio Arenas Rodriguez",
    "headline": {
      "en": "Senior Software Engineer · Next.js · Node · TypeScript · AI/LLM",
      "es": "Ingeniero Senior de Software · Next.js · Node · TypeScript · IA/LLM"
    },
    "location": {
      "en": "Bogotá, Colombia — Open to remote (LATAM · US · EU)",
      "es": "Bogotá, Colombia — Abierto a remoto (LATAM · EE. UU. · EU)"
    },
    "email": "oscarenas@gmail.com",
    "website": "https://resume-oscarenas.web.app",
    "linkedin": "https://www.linkedin.com/in/oscarenas",
    "github": "https://github.com/oscarenas",
    "twitter": "https://twitter.com/oscarenas",
    "availability": {
      "en": "Available for new opportunities",
      "es": "Disponible para nuevas oportunidades"
    },
    "hiring": {
      "employmentTypes": [
        "full-time",
        "contract"
      ],
      "remote": {
        "en": "Remote-first; compatible with LATAM, US and EU time zones. Hybrid in Bogotá possible.",
        "es": "Remote-first; compatible con husos horarios de LATAM, EE. UU. y EU. Híbrido en Bogotá posible."
      },
      "workAuthorization": {
        "en": "Based in Colombia. Available as remote employee (EOR) or independent contractor worldwide; relocation open to discussion.",
        "es": "Radicado en Colombia. Disponible como empleado remoto (EOR) o contratista independiente en cualquier país; reubicación a conversar."
      },
      "startAvailability": {
        "en": "Start date by agreement; typically 2–4 weeks.",
        "es": "Fecha de inicio a convenir; normalmente 2–4 semanas."
      },
      "compensation": {
        "en": "Open to discuss; depends on role, scope and market.",
        "es": "Abierto a conversar; depende del rol, el alcance y el mercado."
      },
      "targetRoles": {
        "en": [
          "Senior / Staff Frontend Engineer",
          "Tech Lead",
          "AI-augmented product engineer"
        ],
        "es": [
          "Senior / Staff Frontend Engineer",
          "Tech Lead",
          "Ingeniero de producto aumentado con IA"
        ]
      }
    },
    "booking": {
      "timezone": "America/Bogota",
      "utcOffset": "-05:00",
      "days": "Mon–Fri",
      "from": "09:00",
      "to": "17:00"
    },
    "tagline": {
      "en": "14+ years shipping web products for global brands — now building AI-augmented experiences.",
      "es": "+14 años entregando productos web para marcas globales — ahora construyendo experiencias aumentadas con IA."
    },
    "summary": {
      "en": "Senior Software Engineer with 14+ years shipping web products for global brands, now focused on building AI-augmented experiences. My core stack is Next.js, Node.js and TypeScript, with a strong frontend foundation in React, design systems, accessibility (WCAG 2.2) and web performance. On the AI side, I design and ship LLM-powered product flows integrating models via the OpenAI and Anthropic APIs, building conversational and generative features, and applying prompt engineering and structured outputs to make them reliable in production. I also use AI to move faster as an engineer AI-assisted coding, review and delivery without losing sight of clean architecture and maintainability. At Publicis Sapient I led front-end architecture for Fortune 500 clients and built component libraries adopted across 90 product squads. I lead cross-functional squads, mentor engineers on TypeScript, accessibility and performance, and turn ambiguous problems into measurable impact.",
      "es": "Ingeniero Senior de Software con más de 14 años entregando productos web para marcas globales, ahora enfocado en construir experiencias aumentadas con IA. Mi stack principal es Next.js, Node.js y TypeScript, con una base sólida en frontend con React, design systems, accesibilidad (WCAG 2.2) y performance web. En el lado de IA diseño y entrego flujos de producto con LLMs integrando modelos vía las APIs de OpenAI y Anthropic, construyendo features conversacionales y generativas, y aplicando prompt engineering y structured outputs para hacerlos confiables en producción. También uso IA para avanzar más rápido como ingeniero coding, revisión y delivery asistidos por IA sin perder de vista la arquitectura limpia y la mantenibilidad. En Publicis Sapient lideré la arquitectura front-end para clientes Fortune 500 y construí librerías de componentes adoptadas por 90 squads de producto. Lidero squads multidisciplinarios, mentoreo ingenieros en TypeScript, accesibilidad y performance, y convierto problemas ambiguos en impacto medible."
    }
  },
  "cv": {
    "en": {
      "pdf": "https://resume-oscarenas.web.app/cv/oscar-arenas-en.pdf",
      "docx": "https://resume-oscarenas.web.app/cv/oscar-arenas-en.docx"
    },
    "es": {
      "pdf": "https://resume-oscarenas.web.app/cv/oscar-arenas-es.pdf",
      "docx": "https://resume-oscarenas.web.app/cv/oscar-arenas-es.docx"
    }
  },
  "experience": [
    {
      "company": "Publicis Global Delivery (PGD)",
      "location": "Bogotá, Colombia · Hybrid",
      "url": "https://www.publicisglobaldelivery.com/",
      "role": {
        "en": "Senior Technology Engineer",
        "es": "Senior Technology Engineer"
      },
      "start": "2023-11",
      "end": {
        "en": "Present",
        "es": "Actual"
      },
      "highlights": {
        "en": [
          "Build experience-led digital products for Fortune 500 clients across retail, finance and telco as part of Publicis Sapient's global delivery network.",
          "Led the front-end architecture for a North American sports league digital platform dashboards and ecommerce built on Next.js (App Router), TypeScript and a headless CMS.",
          "Partnered with design and product teams to translate Figma systems into production-grade React component libraries adopted across 90 product squads.",
          "Mentored 12 mid-level engineers on TypeScript patterns, accessibility and Core Web Vitals optimization."
        ],
        "es": [
          "Construyo productos digitales centrados en la experiencia para clientes Fortune 500 en retail, finanzas y telco, dentro de la red de delivery global de Publicis Sapient.",
          "Lideré la arquitectura front-end de una plataforma digital de una liga deportiva norteamericana dashboards y ecommerce sobre Next.js (App Router), TypeScript y un CMS headless.",
          "Colaboré con los equipos de diseño y producto para traducir sistemas de Figma en librerías de componentes React listas para producción, adoptadas por 90 squads de producto.",
          "Mentoreé a 12 ingenieros mid-level en patrones de TypeScript, accesibilidad y optimización de Core Web Vitals."
        ]
      },
      "stack": [
        "Next.js",
        "TypeScript",
        "Node.js",
        "React",
        "Tailwind CSS",
        "GraphQL",
        "Vercel",
        "Jira"
      ]
    },
    {
      "company": "DevSavant",
      "location": "Bogotá, Colombia · Remote",
      "role": {
        "en": "Senior Frontend Developer",
        "es": "Senior Frontend Developer"
      },
      "start": "2021-08",
      "end": {
        "en": "Aug 2023",
        "es": "Ago 2023"
      },
      "highlights": {
        "en": [
          "Senior IC on a small, distributed team delivering Next.js + Node.js applications for US clients.",
          "Designed and shipped a SaaS dashboard, e-commerce storefront and internal tools using Next.js, TypeScript and Supabase, replacing a legacy system.",
          "Owned the full feature lifecycle from technical scoping to production deploy, working async across LATAM/US time zones."
        ],
        "es": [
          "IC senior en un equipo pequeño y distribuido entregando aplicaciones Next.js + Node.js para clientes de EE. UU.",
          "Diseñé y entregué un dashboard SaaS, un storefront de e-commerce y herramientas internas con Next.js, TypeScript y Supabase, reemplazando un sistema legado.",
          "Fui dueño del ciclo de vida completo de cada feature, desde el scoping técnico hasta el deploy a producción, trabajando async entre zonas horarias de LATAM/EE. UU."
        ]
      },
      "stack": [
        "Next.js",
        "React",
        "Node.js",
        "TypeScript",
        "Supabase",
        "PostgreSQL"
      ]
    },
    {
      "company": "Endava",
      "location": "Bogotá, Colombia · Hybrid",
      "url": "https://www.endava.com/",
      "role": {
        "en": "Senior Software Engineer",
        "es": "Senior Software Engineer"
      },
      "start": "2021-01",
      "end": {
        "en": "Aug 2021",
        "es": "Ago 2021"
      },
      "highlights": {
        "en": [
          "Provided technical leadership on modular frontend architectures for global financial and retail clients.",
          "Refined state-management patterns and CI/CD pipelines, shortening feedback loops and increasing release confidence.",
          "Partnered with architects and product owners to translate business rules into maintainable React and TypeScript components."
        ],
        "es": [
          "Aporté liderazgo técnico en arquitecturas frontend modulares para clientes globales de finanzas y retail.",
          "Refiné patrones de manejo de estado y pipelines CI/CD, acortando feedback loops y aumentando la confianza en cada release.",
          "Colaboré con arquitectos y product owners para traducir reglas de negocio en componentes React y TypeScript mantenibles."
        ]
      },
      "stack": [
        "React",
        "TypeScript",
        "Redux",
        "Node.js",
        "Jest",
        "Webpack"
      ]
    },
    {
      "company": "Globant",
      "location": "Bogotá metro area · Hybrid",
      "url": "https://www.globant.com/",
      "role": {
        "en": "Senior Frontend Developer",
        "es": "Senior Frontend Developer"
      },
      "start": "2018-04",
      "end": {
        "en": "Jul 2020",
        "es": "Jul 2020"
      },
      "highlights": {
        "en": [
          "Senior IC at one of LATAM's largest digital product companies (NYSE: GLOB), embedded in client teams across media, finance, telco and streaming.",
          "Built payment methods and streaming apps using React, Redux and Node.js.",
          "Drove migration to TypeScript, design-system rollout and accessibility audits across 3 teams."
        ],
        "es": [
          "IC senior en una de las mayores compañías de productos digitales de LATAM (NYSE: GLOB), embebido en equipos de cliente en medios, finanzas, telco y streaming.",
          "Construí métodos de pago y apps de streaming con React, Redux y Node.js.",
          "Impulsé la migración a TypeScript, el rollout de un design system y auditorías de accesibilidad en 3 equipos."
        ]
      },
      "stack": [
        "React",
        "JavaScript",
        "Node.js",
        "Redux",
        "CSS-in-JS"
      ]
    },
    {
      "company": "Telintel",
      "location": "Bogotá, Colombia",
      "role": {
        "en": "Senior Frontend Developer",
        "es": "Programador Senior Frontend"
      },
      "start": "2015-09",
      "end": {
        "en": "Apr 2018",
        "es": "Abr 2018"
      },
      "highlights": {
        "en": [
          "Built and maintained internal tooling and customer-facing applications for a Colombian telecom software company using JavaScript, Angular, React and Polymer.",
          "Modernized legacy JavaScript codebases, introducing modular patterns and reusable UI components."
        ],
        "es": [
          "Construí y mantuve herramientas internas y aplicaciones de cara al cliente para una empresa de software de telecomunicaciones colombiana usando JavaScript, Angular, React y Polymer.",
          "Modernicé bases de código JavaScript legadas, introduciendo patrones modulares y componentes UI reutilizables."
        ]
      },
      "stack": [
        "JavaScript",
        "Angular",
        "React",
        "Polymer",
        "HTML5",
        "CSS3"
      ]
    },
    {
      "company": "1A Hosting",
      "location": "Remote",
      "role": {
        "en": "Web Designer & Developer",
        "es": "Diseñador y Desarrollador Web"
      },
      "start": "2009-01",
      "end": {
        "en": "Apr 2018",
        "es": "Abr 2018"
      },
      "highlights": {
        "en": [
          "Ran a freelance web design and development practice in parallel to full-time roles, delivering 67 sites for small and mid-sized businesses in Colombia.",
          "Handled end-to-end delivery design, front-end implementation and DevOps/server maintenance."
        ],
        "es": [
          "Llevé una práctica freelance de diseño y desarrollo web en paralelo a roles full-time, entregando 67 sitios para PyMEs en Colombia.",
          "Me encargué de la entrega end-to-end diseño, implementación frontend y DevOps/mantenimiento de servidores."
        ]
      },
      "stack": [
        "HTML5",
        "CSS3",
        "JavaScript",
        "PHP",
        "MySQL",
        "Linux"
      ]
    },
    {
      "company": "HostDime Global",
      "location": "Remote",
      "url": "https://www.hostdime.com/",
      "role": {
        "en": "Web Designer",
        "es": "Diseñador Web"
      },
      "start": "2008-11",
      "end": {
        "en": "Jan 2015",
        "es": "Ene 2015"
      },
      "highlights": {
        "en": [
          "Early-career web designer at a US-headquartered hosting company, building a foundation in HTML/CSS, design tools and web fundamentals.",
          "Handled server maintenance and server security alongside design work."
        ],
        "es": [
          "Diseñador web en etapa temprana en una empresa de hosting con sede en EE. UU., construyendo una base en HTML/CSS, herramientas de diseño y fundamentos web.",
          "Me encargué del mantenimiento y la seguridad de servidores en paralelo al trabajo de diseño."
        ]
      },
      "stack": [
        "HTML5",
        "CSS3",
        "JavaScript",
        "jQuery"
      ]
    }
  ],
  "skillGroups": [
    {
      "label": {
        "en": "Frontend",
        "es": "Frontend"
      },
      "items": [
        "React",
        "Next.js",
        "Astro",
        "Vue",
        "Angular",
        "React Native"
      ]
    },
    {
      "label": {
        "en": "Languages & styling",
        "es": "Lenguajes y estilos"
      },
      "items": [
        "TypeScript",
        "JavaScript (ES202x)",
        "HTML5",
        "CSS3",
        "Tailwind CSS",
        "SCSS",
        "CSS-in-JS"
      ]
    },
    {
      "label": {
        "en": "State & data",
        "es": "Estado y datos"
      },
      "items": [
        "Redux",
        "Zustand",
        "Context API",
        "GraphQL (Apollo)",
        "REST APIs",
        "MobX",
        "Vuex"
      ]
    },
    {
      "label": {
        "en": "Backend & databases",
        "es": "Backend y bases de datos"
      },
      "items": [
        "Node.js",
        "Express",
        "Supabase",
        "PostgreSQL",
        "MySQL",
        "MongoDB",
        "WebSockets",
        "PHP"
      ]
    },
    {
      "label": {
        "en": "Testing & quality",
        "es": "Testing y calidad"
      },
      "items": [
        "Jest",
        "React Testing Library",
        "Cypress",
        "Playwright",
        "ESLint / Prettier"
      ]
    },
    {
      "label": {
        "en": "Platform & DevOps",
        "es": "Plataforma y DevOps"
      },
      "items": [
        "Vercel",
        "Firebase",
        "GitHub Actions",
        "CI/CD",
        "Linux",
        "Docker",
        "AWS",
        "Google Cloud",
        "Azure"
      ]
    },
    {
      "label": {
        "en": "Craft & practices",
        "es": "Prácticas y craft"
      },
      "items": [
        "Design systems",
        "Accessibility (WCAG 2.2)",
        "Core Web Vitals",
        "Technical leadership",
        "Mentoring",
        "Micro-frontends",
        "PWA & Service Workers",
        "Web security (OWASP Top 10)"
      ]
    },
    {
      "label": {
        "en": "AI & augmented delivery",
        "es": "IA y delivery aumentado"
      },
      "items": [
        "Prompt engineering",
        "AI-assisted coding",
        "OpenAI & Anthropic APIs",
        "Structured outputs",
        "LLM product flows",
        "WebMCP · agent-ready web",
        "Midjourney · DALL·E"
      ]
    },
    {
      "label": {
        "en": "Design & tooling",
        "es": "Diseño y herramientas"
      },
      "items": [
        "Figma",
        "Design tokens",
        "Storybook",
        "Prototyping",
        "Jira"
      ]
    },
    {
      "label": {
        "en": "Earlier & adjacent",
        "es": "Etapas anteriores y adyacentes"
      },
      "items": [
        "jQuery",
        "Polymer",
        "C / C++",
        "Embedded systems & IoT",
        "MQTT"
      ]
    }
  ],
  "skillLevels": {
    "React": "core",
    "Next.js": "core",
    "TypeScript": "core",
    "JavaScript (ES202x)": "core",
    "HTML5": "core",
    "CSS3": "core",
    "Tailwind CSS": "core",
    "Node.js": "core",
    "Design systems": "core",
    "Accessibility (WCAG 2.2)": "core",
    "Core Web Vitals": "core",
    "Technical leadership": "core",
    "Mentoring": "core",
    "Prompt engineering": "core",
    "AI-assisted coding": "core",
    "ESLint / Prettier": "core",
    "React Native": "familiar",
    "MobX": "familiar",
    "Vuex": "familiar",
    "MongoDB": "familiar",
    "WebSockets": "familiar",
    "PHP": "familiar",
    "Playwright": "familiar",
    "Docker": "familiar",
    "AWS": "familiar",
    "Google Cloud": "familiar",
    "Azure": "familiar",
    "Midjourney · DALL·E": "familiar",
    "jQuery": "familiar",
    "Polymer": "familiar",
    "C / C++": "familiar",
    "Embedded systems & IoT": "familiar",
    "MQTT": "familiar"
  },
  "coreStack": [
    {
      "tech": "React",
      "label": "React",
      "note": {
        "en": "Component architecture, hooks, RSC",
        "es": "Arquitectura de componentes, hooks, RSC"
      }
    },
    {
      "tech": "Next.js",
      "label": "Next.js",
      "note": {
        "en": "App Router, SSR/ISR, edge",
        "es": "App Router, SSR/ISR, edge"
      }
    },
    {
      "tech": "TypeScript",
      "label": "TypeScript",
      "note": {
        "en": "Strict, end-to-end types",
        "es": "Estricto, tipos de extremo a extremo"
      }
    },
    {
      "tech": "Node.js",
      "label": "Node.js",
      "note": {
        "en": "APIs, BFFs, tooling",
        "es": "APIs, BFFs, tooling"
      }
    },
    {
      "tech": "Design systems",
      "label": "Design systems",
      "note": {
        "en": "Tokens → libraries → adoption",
        "es": "Tokens → librerías → adopción"
      }
    },
    {
      "tech": "Accessibility (WCAG 2.2)",
      "label": "Accessibility",
      "note": {
        "en": "WCAG 2.2 audits & remediation",
        "es": "Auditorías y remediación WCAG 2.2"
      }
    },
    {
      "tech": "Core Web Vitals",
      "label": "Web performance",
      "note": {
        "en": "Core Web Vitals, budgets",
        "es": "Core Web Vitals, presupuestos"
      }
    },
    {
      "tech": "OpenAI & Anthropic APIs",
      "label": "LLM integration",
      "since": "2024",
      "note": {
        "en": "OpenAI & Anthropic APIs, structured outputs",
        "es": "APIs de OpenAI y Anthropic, structured outputs"
      }
    }
  ],
  "education": [
    {
      "institution": "Universidad del Tolima",
      "degree": {
        "en": "Bachelor's in Systems Engineering",
        "es": "Ingeniería de Sistemas"
      },
      "period": "2001 – 2007",
      "location": "Ibagué, Colombia"
    }
  ],
  "certifications": [
    {
      "name": "ChatGPT, Midjourney, ChatGPT 4 & DALL·E — The AI Bible",
      "issuer": "Udemy",
      "instructor": "Dr. Ryan Ahmed · Stemplicity Inc.",
      "year": "2025",
      "date": "2025-07-21",
      "hours": 11,
      "category": "ai",
      "url": "https://ude.my/UC-048b666b-0a9a-474c-bf91-e63ce44bf9d0",
      "file": "https://resume-oscarenas.web.app/certifications/UC-048b666b-0a9a-474c-bf91-e63ce44bf9d0.pdf"
    },
    {
      "name": "AI in Digital Marketing: Master ChatGPT & 100+ AI Tools",
      "issuer": "Udemy",
      "instructor": "Victoria Rusnac",
      "year": "2025",
      "date": "2025-07-16",
      "hours": 1.5,
      "category": "ai",
      "url": "https://ude.my/UC-a84560a4-562e-437e-98bc-2cf1bee60b79",
      "file": "https://resume-oscarenas.web.app/certifications/UC-a84560a4-562e-437e-98bc-2cf1bee60b79.pdf"
    },
    {
      "name": "Complete Prompt Engineering, ChatGPT & AI Bootcamp",
      "issuer": "Udemy",
      "instructor": "Saad A",
      "year": "2025",
      "date": "2025-07-08",
      "hours": 35.5,
      "category": "ai",
      "url": "https://ude.my/UC-e7b48ddb-1e78-4127-99da-cb01ae655e89",
      "file": "https://resume-oscarenas.web.app/certifications/UC-e7b48ddb-1e78-4127-99da-cb01ae655e89.pdf"
    },
    {
      "name": "ChatGPT Masterclass: The Guide to AI & Prompt Engineering",
      "issuer": "Udemy",
      "instructor": "Robin & Jesper",
      "year": "2025",
      "date": "2025-06-09",
      "hours": 23,
      "category": "ai",
      "url": "https://ude.my/UC-c2a299ae-e096-40ab-8853-6866b764771d",
      "file": "https://resume-oscarenas.web.app/certifications/UC-c2a299ae-e096-40ab-8853-6866b764771d.pdf"
    },
    {
      "name": "AI for Business — AI Applications for Business Success",
      "issuer": "Udemy",
      "instructor": "Horia Mărgărit MS",
      "year": "2025",
      "date": "2025-05-26",
      "hours": 2.5,
      "category": "business",
      "url": "https://ude.my/UC-0129fce4-a3f7-45c5-bd14-f944d09baf58",
      "file": "https://resume-oscarenas.web.app/certifications/UC-0129fce4-a3f7-45c5-bd14-f944d09baf58.pdf"
    },
    {
      "name": "Discover, Validate & Launch New Business Ideas with ChatGPT",
      "issuer": "Udemy",
      "instructor": "Paul Nekh. · Olena T.",
      "year": "2025",
      "date": "2025-05-26",
      "hours": 5,
      "category": "business",
      "url": "https://ude.my/UC-48ebfa20-8d81-4b3d-8ffd-49ca69f75693",
      "file": "https://resume-oscarenas.web.app/certifications/UC-48ebfa20-8d81-4b3d-8ffd-49ca69f75693.pdf"
    },
    {
      "name": "The Web Developer Bootcamp 2025",
      "issuer": "Udemy",
      "instructor": "Colt Steele",
      "year": "2025",
      "date": "2025-04-29",
      "hours": 74,
      "category": "frontend",
      "url": "https://ude.my/UC-46b1b0a4-8c60-47a7-9cfe-415d1bad6c34",
      "file": "https://resume-oscarenas.web.app/certifications/UC-46b1b0a4-8c60-47a7-9cfe-415d1bad6c34.pdf"
    },
    {
      "name": "Figma UI UX Design Essentials",
      "issuer": "Udemy",
      "instructor": "Daniel Walter Scott",
      "year": "2025",
      "date": "2025-03-06",
      "hours": 12,
      "category": "design",
      "url": "https://ude.my/UC-d11b12cc-d54c-4f84-8507-806944bdb71b",
      "file": "https://resume-oscarenas.web.app/certifications/UC-d11b12cc-d54c-4f84-8507-806944bdb71b.pdf"
    },
    {
      "name": "The Creative HTML5 & CSS3 Course — Build Awesome Websites",
      "issuer": "Udemy",
      "instructor": "Dev Ed · Maxine Tillman",
      "year": "2025",
      "date": "2025-02-26",
      "hours": 13,
      "category": "frontend",
      "url": "https://ude.my/UC-f7cbe8e7-4a38-4113-95d0-c857d0ae6b0c",
      "file": "https://resume-oscarenas.web.app/certifications/UC-f7cbe8e7-4a38-4113-95d0-c857d0ae6b0c.pdf"
    },
    {
      "name": "The Complete Node.js Developer Course (3rd Edition)",
      "issuer": "Udemy",
      "instructor": "Andrew Mead · Rob Percival",
      "year": "2025",
      "date": "2025-02-21",
      "hours": 35,
      "category": "backend",
      "url": "https://ude.my/UC-88977f95-84e4-4384-8ef2-4cc302a64062",
      "file": "https://resume-oscarenas.web.app/certifications/UC-88977f95-84e4-4384-8ef2-4cc302a64062.pdf"
    },
    {
      "name": "JavaScript Beginner Bootcamp (2024)",
      "issuer": "Udemy",
      "instructor": "Rob Merrill",
      "year": "2025",
      "date": "2025-02-10",
      "hours": 38.5,
      "category": "frontend",
      "url": "https://ude.my/UC-0cac955b-1690-4fbe-8360-797bbe18f0af",
      "file": "https://resume-oscarenas.web.app/certifications/UC-0cac955b-1690-4fbe-8360-797bbe18f0af.pdf"
    },
    {
      "name": "Learning the OWASP Top 10",
      "issuer": "LinkedIn Learning",
      "year": "2018",
      "date": "2018-01-01",
      "category": "security"
    },
    {
      "name": "Developing Secure Software",
      "issuer": "LinkedIn Learning",
      "year": "2018",
      "date": "2018-01-01",
      "category": "security"
    }
  ],
  "certificationStats": {
    "total": 13,
    "hours2025": 251,
    "aiCerts": 4
  },
  "languages": [
    {
      "name": {
        "en": "Spanish",
        "es": "Español"
      },
      "level": {
        "en": "Native",
        "es": "Nativo"
      }
    },
    {
      "name": {
        "en": "English",
        "es": "Inglés"
      },
      "level": {
        "en": "Professional working proficiency",
        "es": "Profesional"
      }
    }
  ],
  "interests": {
    "en": [
      "Cycling",
      "Music",
      "Travel",
      "Gaming",
      "Pizza & craft beer"
    ],
    "es": [
      "Ciclismo",
      "Música",
      "Viajes",
      "Gaming",
      "Pizza y cerveza artesanal"
    ]
  },
  "projects": [
    {
      "id": "sports-league-platform",
      "name": {
        "en": "Digital platform for a North American sports league",
        "es": "Plataforma digital para una liga deportiva norteamericana"
      },
      "company": "Publicis Global Delivery (PGD) · Publicis Sapient",
      "period": "2023-11 → present",
      "role": {
        "en": "Front-end architecture lead",
        "es": "Líder de arquitectura front-end"
      },
      "summary": {
        "en": "Dashboards and ecommerce for a major sports league, built on Next.js App Router, TypeScript and a headless CMS, delivered through Publicis Sapient’s global network for a Fortune 500 client.",
        "es": "Dashboards y ecommerce para una liga deportiva de primer nivel, sobre Next.js App Router, TypeScript y un CMS headless, entregados a través de la red global de Publicis Sapient para un cliente Fortune 500."
      },
      "stack": [
        "Next.js (App Router)",
        "TypeScript",
        "React",
        "Headless CMS",
        "GraphQL",
        "Tailwind CSS",
        "Vercel"
      ],
      "architecture": {
        "en": [
          "Next.js App Router with React Server Components for content-heavy pages and client islands for interactive dashboards.",
          "Headless CMS as the content source, consumed through a typed GraphQL layer.",
          "Shared design-system package consumed by dashboards and storefront alike."
        ],
        "es": [
          "Next.js App Router con React Server Components para páginas de contenido y client islands para los dashboards interactivos.",
          "CMS headless como fuente de contenido, consumido a través de una capa GraphQL tipada.",
          "Paquete de design system compartido por dashboards y storefront."
        ]
      },
      "decisions": {
        "en": [
          "Chose App Router over Pages Router to stream server-rendered content and keep the client bundle small on ecommerce routes.",
          "Typed the CMS schema end to end so content model changes surface at build time, not in production."
        ],
        "es": [
          "App Router en lugar de Pages Router para hacer streaming del contenido renderizado en servidor y mantener pequeño el bundle en rutas de ecommerce.",
          "Tipado del esquema del CMS de extremo a extremo para que los cambios en el modelo de contenido aparezcan en build, no en producción."
        ]
      },
      "metrics": {
        "en": [
          "Fortune 500 client",
          "Multi-surface: dashboards + ecommerce"
        ],
        "es": [
          "Cliente Fortune 500",
          "Multi-superficie: dashboards + ecommerce"
        ]
      }
    },
    {
      "id": "component-library-90-squads",
      "name": {
        "en": "React component libraries adopted by 90 product squads",
        "es": "Librerías de componentes React adoptadas por 90 squads"
      },
      "company": "Publicis Global Delivery (PGD) · Publicis Sapient",
      "period": "2023-11 → present",
      "role": {
        "en": "Design-system engineer & mentor",
        "es": "Ingeniero de design system y mentor"
      },
      "summary": {
        "en": "Translated Figma design systems into production-grade React component libraries, adopted across 90 product squads, while mentoring 12 mid-level engineers on TypeScript, accessibility and Core Web Vitals.",
        "es": "Traduje sistemas de diseño en Figma a librerías de componentes React listas para producción, adoptadas por 90 squads, mientras mentoreaba a 12 ingenieros mid-level en TypeScript, accesibilidad y Core Web Vitals."
      },
      "stack": [
        "React",
        "TypeScript",
        "Figma",
        "Design tokens",
        "Storybook",
        "Tailwind CSS"
      ],
      "architecture": {
        "en": [
          "Design tokens as the single source of truth, exported from Figma and consumed by CSS and TypeScript.",
          "Accessible primitives first (WCAG 2.2), composed into product-specific components by each squad."
        ],
        "es": [
          "Design tokens como única fuente de verdad, exportados desde Figma y consumidos por CSS y TypeScript.",
          "Primitivas accesibles primero (WCAG 2.2), compuestas por cada squad en componentes específicos de producto."
        ]
      },
      "decisions": {
        "en": [
          "Kept the library headless where possible so squads could theme without forking.",
          "Paired every component with accessibility and performance acceptance criteria before release."
        ],
        "es": [
          "Librería headless donde fue posible para que los squads pudieran tematizar sin hacer fork.",
          "Cada componente con criterios de aceptación de accesibilidad y performance antes de publicarse."
        ]
      },
      "metrics": {
        "en": [
          "90 product squads adopting",
          "12 engineers mentored"
        ],
        "es": [
          "90 squads adoptando",
          "12 ingenieros mentoreados"
        ]
      }
    },
    {
      "id": "saas-dashboard-supabase",
      "name": {
        "en": "SaaS dashboard, storefront and internal tools on Next.js + Supabase",
        "es": "Dashboard SaaS, storefront y herramientas internas con Next.js + Supabase"
      },
      "company": "DevSavant",
      "period": "2021-08 → 2023-08",
      "role": {
        "en": "Senior IC, end-to-end feature owner",
        "es": "IC senior, dueño end-to-end de features"
      },
      "summary": {
        "en": "Designed and shipped a SaaS dashboard, an e-commerce storefront and internal tools for US clients with Next.js, TypeScript and Supabase, replacing a legacy system, working async across LATAM/US time zones.",
        "es": "Diseñé y entregué un dashboard SaaS, un storefront de e-commerce y herramientas internas para clientes de EE. UU. con Next.js, TypeScript y Supabase, reemplazando un sistema legado y trabajando async entre LATAM y EE. UU."
      },
      "stack": [
        "Next.js",
        "React",
        "TypeScript",
        "Node.js",
        "Supabase",
        "PostgreSQL"
      ],
      "architecture": {
        "en": [
          "Next.js front end with Supabase (Postgres, auth, row-level security) as the backend.",
          "Incremental replacement of the legacy system, feature by feature, behind the same URLs."
        ],
        "es": [
          "Front end en Next.js con Supabase (Postgres, auth, row-level security) como backend.",
          "Reemplazo incremental del sistema legado, feature a feature, detrás de las mismas URLs."
        ]
      },
      "decisions": {
        "en": [
          "Supabase over a custom API to let a small team ship auth, storage and data access without operating servers.",
          "Owned scoping through deploy to remove hand-offs in a distributed team."
        ],
        "es": [
          "Supabase en lugar de una API a medida para que un equipo pequeño entregara auth, storage y datos sin operar servidores.",
          "Responsabilidad desde el scoping hasta el deploy para eliminar hand-offs en un equipo distribuido."
        ]
      },
      "metrics": {
        "en": [
          "Legacy system replaced",
          "3 products: dashboard, storefront, internal tools"
        ],
        "es": [
          "Sistema legado reemplazado",
          "3 productos: dashboard, storefront, herramientas internas"
        ]
      }
    },
    {
      "id": "payments-streaming-globant",
      "name": {
        "en": "Payment methods and streaming apps, TypeScript migration",
        "es": "Métodos de pago y apps de streaming, migración a TypeScript"
      },
      "company": "Globant",
      "period": "2018-04 → 2020-07",
      "role": {
        "en": "Senior Frontend Developer",
        "es": "Senior Frontend Developer"
      },
      "summary": {
        "en": "Built payment methods and streaming applications with React, Redux and Node.js for media, finance, telco and streaming clients, and drove the migration to TypeScript, a design-system rollout and accessibility audits across 3 teams.",
        "es": "Construí métodos de pago y aplicaciones de streaming con React, Redux y Node.js para clientes de medios, finanzas, telco y streaming, e impulsé la migración a TypeScript, el rollout de un design system y auditorías de accesibilidad en 3 equipos."
      },
      "stack": [
        "React",
        "Redux",
        "Node.js",
        "TypeScript",
        "CSS-in-JS"
      ],
      "architecture": {
        "en": [
          "Redux for predictable payment state; Node.js BFF layer in front of client APIs."
        ],
        "es": [
          "Redux para un estado de pagos predecible; capa BFF en Node.js delante de las APIs del cliente."
        ]
      },
      "decisions": {
        "en": [
          "Migrated to TypeScript incrementally, starting with the payment domain where type errors cost the most."
        ],
        "es": [
          "Migración incremental a TypeScript, empezando por el dominio de pagos, donde los errores de tipo cuestan más."
        ]
      },
      "metrics": {
        "en": [
          "3 teams adopting TypeScript, design system and a11y audits"
        ],
        "es": [
          "3 equipos adoptando TypeScript, design system y auditorías a11y"
        ]
      }
    },
    {
      "id": "freelance-67-sites",
      "name": {
        "en": "67 websites for Colombian SMBs",
        "es": "67 sitios web para PyMEs colombianas"
      },
      "company": "1A Hosting",
      "period": "2009-01 → 2018-04",
      "role": {
        "en": "Designer, developer and ops",
        "es": "Diseño, desarrollo y operaciones"
      },
      "summary": {
        "en": "Ran a freelance web design and development practice in parallel to full-time roles, delivering 67 sites end to end: design, front-end implementation and DevOps/server maintenance.",
        "es": "Práctica freelance de diseño y desarrollo web en paralelo a roles full-time, entregando 67 sitios end-to-end: diseño, implementación front-end y DevOps/mantenimiento de servidores."
      },
      "stack": [
        "HTML5",
        "CSS3",
        "JavaScript",
        "PHP",
        "MySQL",
        "Linux"
      ],
      "architecture": {
        "en": [
          "LAMP stack on self-managed Linux servers."
        ],
        "es": [
          "Stack LAMP en servidores Linux autogestionados."
        ]
      },
      "decisions": {
        "en": [
          "Reusable templates and a shared deployment routine to keep 67 sites maintainable by one person."
        ],
        "es": [
          "Plantillas reutilizables y una rutina de despliegue común para que 67 sitios fueran mantenibles por una persona."
        ]
      },
      "metrics": {
        "en": [
          "67 sites delivered"
        ],
        "es": [
          "67 sitios entregados"
        ]
      }
    },
    {
      "id": "agent-ready-resume",
      "name": {
        "en": "This site: an agent-ready resume",
        "es": "Este sitio: un CV listo para agentes"
      },
      "company": "Personal",
      "period": "2025 → present",
      "role": {
        "en": "Everything",
        "es": "Todo"
      },
      "url": "https://resume-oscarenas.web.app",
      "summary": {
        "en": "Bilingual static site (Astro + Tailwind) that exposes its content as JSON-LD, schema.org microdata, resume.json, llms.txt and WebMCP tools (imperative and declarative), with PDF/DOCX generated at build time.",
        "es": "Sitio estático bilingüe (Astro + Tailwind) que expone su contenido como JSON-LD, microdatos schema.org, resume.json, llms.txt y tools WebMCP (imperativas y declarativas), con PDF/DOCX generados en build."
      },
      "stack": [
        "Astro",
        "TypeScript",
        "Tailwind CSS",
        "WebMCP",
        "Puppeteer",
        "Firebase Hosting"
      ],
      "architecture": {
        "en": [
          "One typed data module (resume.ts) feeds HTML, JSON-LD, resume.json, the PDF/DOCX generators and the agent tools.",
          "Tools run entirely in the browser against resume.json; declarative forms work without JavaScript."
        ],
        "es": [
          "Un único módulo de datos tipado (resume.ts) alimenta HTML, JSON-LD, resume.json, los generadores PDF/DOCX y las tools de agente.",
          "Las tools corren por completo en el navegador contra resume.json; los formularios declarativos funcionan sin JavaScript."
        ]
      },
      "decisions": {
        "en": [
          "No backend: every agent capability is static or client-side so the site stays free to host and impossible to take down."
        ],
        "es": [
          "Sin backend: toda capacidad para agentes es estática o del lado del cliente, así el sitio sigue siendo gratis de alojar e imposible de tumbar."
        ]
      },
      "metrics": {
        "en": [
          "18 agent tools",
          "2 languages, 4 CV files generated per release"
        ],
        "es": [
          "18 tools de agente",
          "2 idiomas, 4 archivos de CV por release"
        ]
      }
    }
  ],
  "translations": {
    "pt": {
      "headline": "Engenheiro de Software Sênior · Next.js · Node · TypeScript · IA/LLM",
      "location": "Bogotá, Colômbia — Aberto a trabalho remoto (LATAM · EUA · UE)",
      "availability": "Disponível para novas oportunidades",
      "tagline": "+14 anos entregando produtos web para marcas globais — agora construindo experiências aumentadas por IA.",
      "summary": "Engenheiro de Software Sênior com mais de 14 anos entregando produtos web para marcas globais, agora focado em experiências aumentadas por IA. Stack principal: Next.js, Node.js e TypeScript, com base sólida em React, design systems, acessibilidade (WCAG 2.2) e performance web. Em IA, projeto e entrego fluxos de produto com LLMs integrando as APIs da OpenAI e da Anthropic, com prompt engineering e structured outputs para torná-los confiáveis em produção. Na Publicis Sapient liderei a arquitetura front-end para clientes Fortune 500 e construí bibliotecas de componentes adotadas por 90 squads. Lidero squads multidisciplinares, oriento engenheiros em TypeScript, acessibilidade e performance, e transformo problemas ambíguos em impacto mensurável.",
      "roles": {
        "Publicis Global Delivery (PGD)|2023-11": "Engenheiro de Tecnologia Sênior",
        "DevSavant|2021-08": "Desenvolvedor Frontend Sênior",
        "Endava|2021-01": "Engenheiro de Software Sênior",
        "Globant|2018-04": "Desenvolvedor Frontend Sênior",
        "Telintel|2015-09": "Desenvolvedor Frontend Sênior",
        "1A Hosting|2009-01": "Designer e Desenvolvedor Web",
        "HostDime Global|2008-11": "Designer Web"
      },
      "languages": [
        {
          "name": "Espanhol",
          "level": "Nativo"
        },
        {
          "name": "Inglês",
          "level": "Proficiência profissional"
        }
      ]
    },
    "fr": {
      "headline": "Ingénieur logiciel senior · Next.js · Node · TypeScript · IA/LLM",
      "location": "Bogotá, Colombie — Ouvert au télétravail (LATAM · États-Unis · UE)",
      "availability": "Disponible pour de nouvelles opportunités",
      "tagline": "+14 ans à livrer des produits web pour des marques mondiales — aujourd’hui, des expériences augmentées par l’IA.",
      "summary": "Ingénieur logiciel senior avec plus de 14 ans d’expérience dans la livraison de produits web pour des marques mondiales, aujourd’hui concentré sur des expériences augmentées par l’IA. Stack principale : Next.js, Node.js et TypeScript, avec de solides bases en React, design systems, accessibilité (WCAG 2.2) et performance web. Côté IA, je conçois et livre des parcours produit basés sur des LLM en intégrant les API OpenAI et Anthropic, avec du prompt engineering et des structured outputs pour les rendre fiables en production. Chez Publicis Sapient, j’ai dirigé l’architecture front-end pour des clients Fortune 500 et construit des bibliothèques de composants adoptées par 90 squads. Je dirige des équipes pluridisciplinaires, j’accompagne les ingénieurs sur TypeScript, l’accessibilité et la performance, et je transforme des problèmes flous en impact mesurable.",
      "roles": {
        "Publicis Global Delivery (PGD)|2023-11": "Ingénieur technologie senior",
        "DevSavant|2021-08": "Développeur front-end senior",
        "Endava|2021-01": "Ingénieur logiciel senior",
        "Globant|2018-04": "Développeur front-end senior",
        "Telintel|2015-09": "Développeur front-end senior",
        "1A Hosting|2009-01": "Designer et développeur web",
        "HostDime Global|2008-11": "Designer web"
      },
      "languages": [
        {
          "name": "Espagnol",
          "level": "Langue maternelle"
        },
        {
          "name": "Anglais",
          "level": "Compétence professionnelle"
        }
      ]
    }
  },
  "agent": {
    "webmcp": true,
    "jsApi": "window.oscarResume",
    "llms": "https://resume-oscarenas.web.app/llms.txt",
    "wellKnown": "https://resume-oscarenas.web.app/.well-known/agent.json",
    "tools": [
      {
        "name": "get_profile",
        "kind": "imperative",
        "description": "Return Oscar Arenas' profile: headline, summary, location, availability, hiring details (employment types, remote policy, work authorization, start availability, compensation stance, target roles), languages spoken, certification stats and contact links. Available in en, es, pt and fr.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "pt",
                "fr"
              ],
              "description": "Language of the returned text (en, es, pt, fr). Defaults to the language of the current page."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "search_experience",
        "kind": "imperative",
        "description": "Search work experience. Filter by technology (matches the stack and highlights, e.g. \"Next.js\", \"GraphQL\", \"Angular\") and/or company name. With no filters returns the full timeline, most recent first.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "tech": {
              "type": "string",
              "description": "Technology or keyword to match against the stack and highlights."
            },
            "company": {
              "type": "string",
              "description": "Company name (partial, case-insensitive)."
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es",
                "pt",
                "fr"
              ],
              "description": "Language of the returned text (en, es, pt, fr). Defaults to the language of the current page."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "list_certifications",
        "kind": "imperative",
        "description": "List certifications and courses. Optionally filter by category (ai, frontend, backend, design, security, business) and/or year. Each item includes issuer, hours and a link to the certificate when available.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "category": {
              "type": "string",
              "enum": [
                "ai",
                "frontend",
                "backend",
                "design",
                "security",
                "business"
              ],
              "description": "Certification category."
            },
            "year": {
              "type": "string",
              "pattern": "^\\d{4}$",
              "description": "Four-digit year, e.g. \"2025\"."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "verify_certification",
        "kind": "imperative",
        "description": "Verify a certification by (partial) name. Returns issuer, date, hours, instructor and the verification URL and PDF so the credential can be checked at the source.",
        "inputSchema": {
          "type": "object",
          "required": [
            "name"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Certification name or a distinctive part of it, e.g. \"prompt engineering\"."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "list_projects",
        "kind": "imperative",
        "description": "List selected projects with id, name, company, period and stack. Use explain_project for details.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ],
              "description": "Language of the returned text. Defaults to the language of the current page."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "explain_project",
        "kind": "imperative",
        "description": "Explain one project in depth: summary, role, architecture, key decisions and outcomes. Use the id from list_projects.",
        "inputSchema": {
          "type": "object",
          "required": [
            "id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "description": "Project id from list_projects, e.g. \"sports-league-platform\"."
            },
            "depth": {
              "type": "string",
              "enum": [
                "summary",
                "full"
              ],
              "description": "summary = one paragraph; full = architecture, decisions and metrics. Defaults to full."
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ],
              "description": "Language of the returned text. Defaults to the language of the current page."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "get_cv_download",
        "kind": "imperative",
        "description": "Return the absolute URL of the downloadable CV in the requested format (pdf or docx) and language. Does not trigger a download.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "format": {
              "type": "string",
              "enum": [
                "pdf",
                "docx"
              ],
              "description": "File format. Defaults to pdf."
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ],
              "description": "Language of the returned text. Defaults to the language of the current page."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "download_cv",
        "kind": "imperative",
        "description": "Start downloading the CV in the browser (pdf or docx) in the current page's language, using the site's own download menu.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "format": {
              "type": "string",
              "enum": [
                "pdf",
                "docx"
              ],
              "description": "File format. Defaults to pdf."
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "set_theme",
        "kind": "imperative",
        "description": "Switch the page colour theme to light or dark.",
        "inputSchema": {
          "type": "object",
          "required": [
            "mode"
          ],
          "properties": {
            "mode": {
              "type": "string",
              "enum": [
                "light",
                "dark"
              ]
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "switch_language",
        "kind": "imperative",
        "description": "Navigate to the English (\"en\") or Spanish (\"es\") version of the resume.",
        "inputSchema": {
          "type": "object",
          "required": [
            "locale"
          ],
          "properties": {
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ]
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "go_to_section",
        "kind": "imperative",
        "description": "Scroll the page to a section: about, experience, skills, certifications, education, agents or contact.",
        "inputSchema": {
          "type": "object",
          "required": [
            "section"
          ],
          "properties": {
            "section": {
              "type": "string",
              "enum": [
                "about",
                "experience",
                "skills",
                "certifications",
                "education",
                "agents",
                "contact"
              ]
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "match_job_description",
        "kind": "form",
        "form": "#fit-form",
        "description": "Evaluate how well Oscar fits a job description. Paste the full job post text; returns a 0-100 fit score, the required technologies covered (with years of experience each), the ones with no direct evidence, seniority notes and the three most relevant highlights. Runs locally in the page.",
        "inputSchema": {
          "type": "object",
          "required": [
            "description"
          ],
          "properties": {
            "description": {
              "type": "string",
              "description": "Full text of the job description."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "generate_tailored_cv",
        "kind": "form",
        "form": "#tailor-form",
        "description": "Generate a CV tailored to a focus: \"ai\" (LLM products), \"frontend\" (React/Next.js/design systems), \"lead\" (leadership/architecture) or \"fullstack\". Returns Markdown plus a printable URL that renders as PDF.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "focus": {
              "type": "string",
              "enum": [
                "ai",
                "frontend",
                "lead",
                "fullstack"
              ],
              "description": "What to emphasise. Defaults to frontend."
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ],
              "description": "CV language."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "ask_about_experience",
        "kind": "form",
        "form": "#ask-form",
        "description": "Ask a natural-language question about Oscar’s experience (e.g. \"Has he led teams?\", \"Any e-commerce work?\"). Returns a short answer with confidence and the exact resume passages it is based on. Lexical search, no LLM.",
        "inputSchema": {
          "type": "object",
          "required": [
            "question"
          ],
          "properties": {
            "question": {
              "type": "string",
              "description": "The question, in English or Spanish."
            }
          }
        },
        "annotations": {
          "readOnlyHint": true
        }
      },
      {
        "name": "book_intro_call",
        "kind": "form",
        "form": "#book-form",
        "description": "Request an intro call. Provide a preferred date, time slot and time zone; returns Oscar’s usual availability and opens the scheduling page or a pre-filled email for the visitor to confirm. Nothing is booked automatically.",
        "inputSchema": {
          "type": "object",
          "required": [
            "date",
            "slot"
          ],
          "properties": {
            "date": {
              "type": "string",
              "format": "date",
              "description": "Preferred date, YYYY-MM-DD."
            },
            "slot": {
              "type": "string",
              "enum": [
                "morning",
                "afternoon"
              ],
              "description": "morning = 9-12, afternoon = 13-17 (Bogotá, UTC-5)."
            },
            "timezone": {
              "type": "string",
              "description": "IANA time zone of the requester, e.g. \"America/New_York\"."
            },
            "notes": {
              "type": "string",
              "description": "Context: company, role, anything useful (optional)."
            }
          }
        }
      },
      {
        "name": "filter_experience",
        "kind": "form",
        "form": "#experience-filter",
        "description": "Filter the visible experience timeline on the page by technology or company name. Leave empty to show every role again.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "tech": {
              "type": "string",
              "description": "Technology or company to filter by, e.g. \"React\" or \"Globant\"."
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "get_cv",
        "kind": "form",
        "form": "#cv-form",
        "description": "Download the CV as PDF or Word (DOCX) in English or Spanish.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "format": {
              "type": "string",
              "enum": [
                "pdf",
                "docx"
              ],
              "description": "File format."
            },
            "locale": {
              "type": "string",
              "enum": [
                "en",
                "es"
              ],
              "description": "CV language."
            }
          }
        },
        "annotations": {
          "idempotentHint": true
        }
      },
      {
        "name": "contact_oscar",
        "kind": "form",
        "form": "#contact-form",
        "description": "Send Oscar a message about a role or project. Requires the sender's name, email and a message; company is optional. The message is handed to the visitor's email client (or a configured endpoint) and is never sent silently.",
        "inputSchema": {
          "type": "object",
          "required": [
            "name",
            "email",
            "message"
          ],
          "properties": {
            "name": {
              "type": "string",
              "description": "Sender's full name."
            },
            "email": {
              "type": "string",
              "format": "email",
              "description": "Sender's email address for the reply."
            },
            "company": {
              "type": "string",
              "description": "Company or organisation (optional)."
            },
            "message": {
              "type": "string",
              "description": "The message: role, project, timeline, anything relevant."
            }
          }
        }
      }
    ]
  }
}