// All portfolio data lives here so sections stay readable.
const DATA = {
  name: "Thirumurugan Sivalingam",
  short: "Thiru",
  role: "Prev. DevRel Lead @ Metis Foundation (LazAI)",
  tagline:
    "Building the developer surface of onchain AI. Speaker, contributor, and DevRel for the open web.",
  email: "0xthiru8@gmail.com",

  stats: [
    { v: "25+", k: "Hackathons won" },
    { v: "30+", k: "Workshops hosted" },
    { v: "15",  k: "Countries" },
    { v: "9",   k: "Chains shipped on" },
    { v: "4",   k: "Years in web3" },
  ],

  experience: [
    {
      when: "Jun 2025 – May 2026",
      role: "Developer Relations Lead",
      org: "Metis Foundation",
      kind: "Full-time",
      bullets: [
        "Led DevRel across Hyperion (execution), LazAI (AI app layer), and Metis Andromeda (settlement).",
        "Ran HyperHack end-to-end: engagement, mentorship, winner evaluation.",
        "Authored guides for x402 payments and DAT; presented ERC-8028 at EIP Summit.",
        "Drove a 35% lift in developer onboarding via SDK docs and incentive design.",
      ],
    },
    {
      when: "Apr 2024 – May 2025",
      role: "Dev Lead",
      org: "Winks",
      kind: "Full-time",
      bullets: [
        "Shipped Twitter mini apps for Ava Labs, Starknet, Base, OKX.",
        "Built partnerships with Ava Labs, 0x, Soneium, Velvet Capital.",
      ],
    },
    {
      when: "Aug 2023 – Mar 2024",
      role: "Developer Relations",
      org: "ZkSpin",
      kind: "Full-time",
      bullets: [
        "Authored SDK documentation for game development, improved DX.",
        "Repped at international blockchain gaming events; 5+ chain partnerships.",
      ],
    },
    {
      when: "Jan 2022 – May 2023",
      role: "Founding Developer",
      org: "Gryffindors",
      kind: "Founding",
      bullets: [
        "Built dApps and onchain game smart contracts across chains.",
        "Stack: Next.js, Node.js, MongoDB, Solidity.",
      ],
    },
  ],

  contrib: ["Starknet", "Okto", "ORA"],

  projects: [

    {
      name: "Space-please",
      tag: "Mac app",
      blurb: "Shows you what is actually eating your disk, then helps you clear it without deleting something you needed.",
      detail: "A Swift scanner walks millions of files in seconds, a sunburst shows where the weight sits, and everything it suggests removing is rated by how safe it is to lose. Nothing leaves the machine and nothing gets hard-deleted, only moved to the Trash.",
      stack: ["Swift", "Electron", "React", "TypeScript", "D3"],
      link: "https://space-please.vercel.app",
      repo: "https://github.com/Thirumurugan7/Space-please",
      year: "2026",
      photo: "projects/space-please.png",
    },
    {
      name: "Receipt",
      tag: "Payments infra",
      blurb: "When an agent pays for an API call over x402, the money moves before anyone checks the response. Receipt holds it until the answer passes.",
      detail: "A drop-in x402 facilitator with conditional settlement. Payment sits in escrow against seven machine-checkable rules: status, content type, required fields, schema, freshness. No human evaluator, no trusted third party. Both sides compute the same verdict, and anyone can re-run it offline against the public log on Hedera.",
      stack: ["Solidity", "TypeScript", "Python", "Hedera", "x402"],
      live: "https://receipt-ledger-zeta.vercel.app",
      repo: "https://github.com/Thirumurugan7/Receipt",
      year: "2026",
      photo: "projects/receipt.jpg",
    },
    {
      name: "Animation Skill",
      tag: "Creative tooling",
      blurb: "Type an idea, get a stick-figure explainer video back. Runs entirely on your own machine.",
      detail: "Scenes are generated, then validated and repaired up to three times before anything renders. The engine draws SVG you can watch live in the browser, and what you see in the preview is what ffmpeg encodes. No API keys stored, 143 tests on the engine.",
      stack: ["Node", "Claude Code", "Playwright", "ffmpeg", "SVG"],
      repo: "https://github.com/Thirumurugan7/Animation-Skill",
      year: "2026",
      photo: "projects/animation-skill.gif",
    },

    {
      name: "Saasuke SDK",
      tag: "Dev tooling",
      blurb: "TypeScript-to-Cairo transpiler. Compile, deploy, test Starknet contracts straight from TS.",
      stack: ["TypeScript", "Cairo", "Starknet"],
      link: "https://www.npmjs.com/package/saasuke",
      year: "2024",
      photo: "npm",
    },
    {
      name: "進撃 Shingeki",
      tag: "Dev tooling",
      blurb: "Agents that always move forward.",
      stack: ["TypeScript", "0G", "Python"],
      link: "https://www.npmjs.com/package/shingeki",
      live: "https://shingeki-sigma.vercel.app/",
      repo: "https://github.com/Thirumurugan7/Shingeki",
      year: "2026",
      photo: "projects/shingeki.png",
    },
    {
      name: "Starkshoot",
      tag: "Onchain gaming",
      blurb: "Multiplayer onchain shooting game on Starknet. Backed by a Starknet Foundation seed grant.",
      stack: ["Cairo", "Starknet", "Unity"],
      link: "https://www.starkshoot.xyz/",
      year: "2024",
      photo: "projects/starkshoot.png",
    },
    {
      name: "Whale.fun 🐋",
      tag: "Launchpad",
      blurb: "A decentralized platform for creating and trading meme tokens with bonding curves, battle arenas, and community features.",
      stack: ["Solidity", "Next.js", "0G"],
      link: "https://www.whaledot.fun/",
      repo: "https://github.com/Thirumurugan7/Whale.fun",
      year: "2025",
      photo: "projects/whalefun.png",
    },
  ],

  speaking: [
    {
      kind: "Keynote",
      where: "EIP Summit",
      flag: "🇦🇷",
      when: "2025",
      title: "ERC-8028: A new account standard",
      photo: "gallery/EIP summit.png",
    },
    {
      kind: "Talk",
      where: "DevConnect Buenos Aires",
      flag: "🇦🇷",
      when: "2025",
      title: "x402: Payments for the agentic web",
      photo: "gallery/devconargentianstage.jpg",
    },
    {
      kind: "Panel",
      where: "India Blockchain Week",
      flag: "🇮🇳",
      when: "2025",
      title: "AI Infra Onchain: Compute, data & coordination",
      photo: "gallery/Indian Blockchain week.jpeg",
    },
    {
      kind: "Workshop",
      where: "LazAI Workshop - IBW Side Event",
      flag: "🇮🇳",
      when: "2025",
      title: "Building on Hyperion: execution layer 101",
      photo: "gallery/Lazai Workshop In India Bangalore.jpeg",
    },
    // {
    //   kind: "Talk",
    //   where: "Starknet Hacker House",
    //   flag: "🇸🇬",
    //   when: "2024",
    //   title: "Saasuke: TS to Cairo, frictionless",
    //   photo: "gallery/ethsingapore.jpeg",
    // },
    {
      kind: "Workshop",
      where: "ETHIndia Hackathon Mentor",
      flag: "🇮🇳",
      when: "2025",
      title: "Shipping production dApps on a deadline",
      photo: "gallery/EthIndia2025.png",
    },
    {
      kind: "Panel",
      where: "Applied AI Summit ",
      flag: "🇭🇰",
      when: "2026",
      title: "DevRel in the agent era",
      photo: "gallery/Applied AI summit hongkong.jpeg",
    },
    {
      kind: "Workshop",
      where: "Eigenlayer Workshop",
      flag: "🇮🇳",
      when: "2025",
      title: "Onchain games with ZK proofs",
      photo: "gallery/Eigenlayer workshop.png",
    },
    {
      kind: "Talk",
      where: "Devcon Closing Keynote",
      flag: "🇦🇷",
      when: "2025",
      title: "From hackathon to grant: playbook",
      photo: "gallery/devcon argentina.jpeg",
    },
  ],

  skills: {
    Languages: ["JavaScript", "TypeScript", "Solidity", "Cairo", "Rust", "Python"],
    Frontend:  ["React", "Vite", "Next.js"],
    Backend:   ["Node.js", "Express", "NestJS"],
    Database:  ["MongoDB", "Postgres"],
    "AI agents": ["ELIZA", "Base Agent Kit", "Alith", "GOAT", "Crew AI"],
    DevRel:    ["Tech writing", "Workshops", "Community", "Ambassadors", "Partnerships"],
  },

  chains: [
    "Ethereum", "Polygon", "Avalanche", "Starknet", "Sui",
    "Aptos", "Mina", "Aleo", "ICP", "Monad", "Metis",
  ],

  communities: [
    "Starknet", "Stellar", "Base", "Farcaster", "Avalanche",
    "Metis", "Polygon", "Okto", "ORA", "Sui",
  ],

  watch: [
    {
      ytId: "RaeBZiE0rDA",
      title: "ERCs in Focus — ERC-8028: AI Assets On-Chain with Data Anchoring Token (DAT)",
      where: "ECH Institute · EIP Summit",
      tag: "keynote",
      featured: true,
    },
    {
      ytId: "8aI1PRPNnhY",
      title: "AthenaX Live: From Web2 to Web3 — Thiru's Journey",
      where: "AthenaX",
      tag: "talk",
    },
    {
      ytId: "ghLg089MNDc",
      title: "Intro to LazAI & DAT",
      where: "Metis",
      tag: "workshop",
    },
    {
      ytId: "zhw9ooKmdCo",
      title: "Building with LazAI API",
      where: "LazAI",
      tag: "workshop",
    },
    {
      ytId: "EBlzhRlkAbg",
      title: "Building DAT Marketplace",
      where: "LazAI",
      tag: "workshop",
    },
    {
      ytId: "ch5DtKLx16g",
      title: "Building a Multi-Agent Orchestrator on LazAI using Alith",
      where: "LazAI",
      tag: "workshop",
    },
    {
      ytId: "D-SkywT4xso",
      title: "Web3 Solidity Tutorial with Integration",
      where: "Thiru Murugan",
      tag: "tutorial",
    },
    {
      ytId: "pN6FTOULvH8",
      title: "Starknet Tutorial",
      where: "Thiru Murugan",
      tag: "tutorial",
    },
    {
      xUrl: "https://x.com/reet_batra/status/1920495575696331161",
      title: "Saasuke: TypeScript-to-Cairo Transpiler Demo",
      where: "Starknet Community",
      tag: "demo",
    },
  ],

  buzz: [
    {
      who: "Metis🌿", handle: "MetisL2", verified: true,
      url: "https://x.com/MetisL2/status/1989651985436672246",
      body: "While others fill the air with noise, Thiru moves with intent. @EFDevcon will feel the presence of a true builder who drives Metis DevRel forward with resolve. 💙🌿",
      when: "Nov 2025",
    },
    {
      who: "Quantic", handle: "0xQuantic", verified: false,
      url: "https://x.com/0xQuantic/status/1991663356332114148",
      body: "Many people don't know it, but @0xThiru has won more than 20 hackathons and supported dozens of workshops and bootcamps to train Web3 developers. I recommended him for a job at Metis and LazAI after seeing his PoW.",
      when: "Nov 2025",
    },
    {
      who: "LazAI Network", handle: "LazAINetwork", verified: true,
      url: "https://x.com/LazAINetwork/status/1998372844263079967",
      body: "Last week we hosted the LazAI Summit: ERC-8028 Workshop during India Blockchain Week. @0xThiru led a full session on ERC-8028, DATs, and minting via the Alith SDK.",
      when: "Dec 2025",
    },
    {
      who: "GOAT Network", handle: "GOATNetwork", verified: true,
      url: "https://x.com/GOATNetwork/status/2033535355480092758",
      body: "Chennai brought the energy 🇮🇳 The third @openclaw Hack: 75+ hackers, 33 project submissions, 20 team demos. Big thanks to @0xThiru and our partners @MetisL2 & @LazAINetwork.",
      when: "Mar 2026",
    },
    {
      who: "LazAI Network", handle: "LazAINetwork", verified: true,
      url: "https://x.com/LazAINetwork/status/2047157385056354573",
      body: "A big thank you to @0xThiru for an insightful LazTalk Ep.9. From Claude Mythos to decentralized AI infrastructure — a timely conversation on the future of AI.",
      when: "Apr 2026",
    },
    {
      who: "Harsh Gupta", handle: "Harshweb3india", verified: false,
      url: "https://x.com/Harshweb3india/status/2035060433745584461",
      body: "If @0xThiru is backing this, then @MetisL2 is definitely cooking something big 🦍 The hackathon hype is REAL 🔥 Next stop: Toronto 🇨🇦 — 20+ builders already in!",
      when: "Mar 2026",
    },
    {
      who: "Avii", handle: "AviiWeb3", verified: false,
      url: "https://x.com/AviiWeb3/status/2015795677603967238",
      body: "A follow from @0xThiru — the face of last year's Devconnect 🇦🇷 The love he gets from the Ethereum community is honestly unreal. Big times ahead.",
      when: "Jan 2026",
    },
    {
      who: "Pavel Sinelnikov", handle: "pavel_sinel", verified: false,
      url: "https://x.com/pavel_sinel/status/2055584005773259050",
      body: "It was a blast to work with you! It's hard to find people technical, welcoming, and with great agency that are in it for the long-term. Hope to see you in Mumbai for Devcon!",
      when: "May 2026",
    },
    {
      who: "Udhaykumar (Ø,G)", handle: "udhaykumarbala", verified: false,
      url: "https://x.com/udhaykumarbala/status/2046200351486001530",
      body: "Excited to be speaking at LazTalk Ep.9 🔥 Diving deep into Anthropic's unreleased Claude Mythos & future of AI infra. Huge thanks to host @0xThiru!",
      when: "Apr 2026",
    },
    {
      who: "Scrapegoat 🐐", handle: "Scrapegoat2", verified: false,
      url: "https://x.com/Scrapegoat2/status/2055012099865354712",
      body: "Thank you for your service to the ecosystem. Hopefully you'll remain a $metis believer no matter where you go :)",
      when: "May 2026",
    },
    {
      who: "Harsh Gupta", handle: "Harshweb3india", verified: false,
      url: "https://x.com/Harshweb3india/status/1996545052194271733",
      body: "Great catching up with @0xThiru at the @LazAINetwork event! Full of sharp insights, real conversations, and next-level vision for how #AI x #Web3 will shape the future.",
      when: "Dec 2025",
    },
    {
      who: "Abdul Maajid", handle: "AbdulMaajidz", verified: false,
      url: "https://x.com/AbdulMaajidz/status/2058134109667668278",
      body: "The Pizza party was lit 🔥 Thank you for the amazing tradition @0xThiru @Pizza_DAO @MadrasDAO — what a night!",
      when: "May 2026",
    },
  ],

  gallery: [
    { src: "gallery/EIP summit.png",                              label: "EIP Summit",               city: "Buenos Aires" },
    { src: "gallery/devconargentianstage.jpg",                    label: "DevConnect · Stage",        city: "Buenos Aires" },
    { src: "gallery/EthIndia2025.png",                            label: "ETH India 2025",            city: "Bangalore" },
    { src: "gallery/edconjapan.jpeg",                             label: "EdCon",                    city: "Japan" },
    { src: "gallery/DevConEFpodcast.jpeg",                        label: "DevConnect EF Podcast",    city: "Buenos Aires" },
    { src: "gallery/Applied AI summit hongkong.jpeg",             label: "Applied AI Summit",        city: "Hong Kong" },
    { src: "gallery/devcon argentina.jpeg",                       label: "DevCon",                   city: "Argentina" },
    { src: "gallery/Indian Blockchain week.jpeg",                 label: "India Blockchain Week",    city: "Bangalore" },
    { src: "gallery/Eigenlayer workshop.png",                     label: "Eigenlayer Workshop",      city: "" },
    { src: "gallery/Lazai Workshop In India Bangalore.jpeg",      label: "LazAI Workshop",           city: "Bangalore" },
    { src: "gallery/ethsingapore.jpeg",                           label: "ETH Singapore",            city: "Singapore" },
    { src: "gallery/Ethtaipel.jpeg",                              label: "ETH Taipei",               city: "Taiwan" },
    { src: "gallery/pizzadao event 2025 .jpeg",                   label: "PizzaDAO",                 city: "2025" },
    { src: "gallery/unfold BLR.jpeg",                             label: "Unfold",                   city: "Bangalore" },
    { src: "gallery/pizzadao event chennai 2026.JPG",             label: "PizzaDAO Chennai",         city: "2026" },
  ],

  sidequests: [
    {
      title: "Running",
      line: "Mostly early mornings, mostly badly.",
      body: "It is the one hour in my week with no screen in it. A good share of the things I have worked out at work, I worked out somewhere around the fourth kilometre.",
    },
    {
      title: "Guitar",
      line: "Learning songs by ear, still.",
      body: "I got obsessed enough with this to build two things about it. Pluck, for learning any song from its chords and strumming, and a rougher experiment that pulls the chords out of a track on its own. Neither went anywhere. I still play most days.",
    },
    {
      title: "Reading",
      line: "Non-fiction, and slower than I would like.",
      body: "I keep a list and I am permanently behind on it.",
    },
    {
      title: "Travelling",
      line: "Fifteen countries so far.",
      body: "Almost all of them for a conference, which means I have seen a lot of airports and a lot of the inside of venues. Lately I have started staying the extra two days.",
    },
  ],

  socials: [
    { id: "x",        label: "@0xthiru",  href: "https://x.com/0xthiru" },
    { id: "linkedin", label: "Thirumurugan", href: "https://www.linkedin.com/in/thirumurugan-sivalingam-935464218" },
    { id: "github",   label: "Thirumurugan7", href: "https://github.com/Thirumurugan7" },
    { id: "youtube",  label: "@thirumurugan-pk2sy", href: "https://youtube.com/@thirumurugan-pk2sy" },
    { id: "hashnode", label: "@thirumurugan7", href: "https://hashnode.com/@thirumurugan7" },
    { id: "mail",     label: "0xthiru8@gmail.com", href: "mailto:0xthiru8@gmail.com" },
  ],
};

window.DATA = DATA;
