{
  "version": "2026-08-02",
  "lastUpdated": "2026-08-02",
  "name": "Tanveer Riaz",
  "url": "https://tanveerriaz.me",
  "location": "Singapore",
  "tagline": "Curious mind. Builder mode.",
  "role": "AI specialist focused on agentic systems",
  "communityContext": "Active in Singapore’s AI builder community and attends public sessions and industry events, including Code with Claude Singapore, AI Engineer Singapore, OpenClaw Singapore, and Singapore FinTech Festival. Lessons from those rooms are published with the builds they changed.",
  "publicPositioning": "Tanveer is an AI specialist in Singapore focused on agentic systems. Curiosity is how he works: he follows questions until they become things people can open, inspect, and learn from. His perspective combines two decades of global banking systems delivery with public experiments in AI agents, local models, design, and useful Singapore products. He is active in Singapore’s AI builder community and publishes lessons from public sessions and industry events with the builds they changed.",
  "startHere": [
    {
      "id": "new-to-ai",
      "label": "I am new to AI",
      "promise": "Start with the concepts, then open one small working example.",
      "steps": [
        "Plain-language glossary",
        "PromptZap",
        "Field notes"
      ],
      "href": "#learn"
    },
    {
      "id": "build-with-agents",
      "label": "I want to build with agents",
      "promise": "See how prompts become skills, harnesses, and verifiable workflows.",
      "steps": [
        "PromptZap",
        "Skillz",
        "Chroa"
      ],
      "href": "#journeys"
    },
    {
      "id": "enterprise-ai",
      "label": "I work in enterprise",
      "promise": "Connect agent experiments to risk, provenance, and human ownership.",
      "steps": [
        "Banking perspective",
        "Nexus Bank",
        "AI governance credentials"
      ],
      "href": "#explore"
    },
    {
      "id": "local-ai",
      "label": "I want local and private AI",
      "promise": "Explore what can run on-device and where cloud models still help.",
      "steps": [
        "Local-first AI",
        "Ollama + MLX",
        "ScriptToReel"
      ],
      "href": "#uses"
    }
  ],
  "journeys": [
    {
      "id": "language-to-story",
      "question": "Can better instructions become better visual stories?",
      "thread": "PromptZap → Chroa → ScriptToReel",
      "summary": "A rough-prompt utility opened a deeper question about visual taste, agent-readable design systems, and eventually reproducible media pipelines.",
      "status": "Still unfolding",
      "categories": [
        "tools",
        "design",
        "media"
      ]
    },
    {
      "id": "models-to-harnesses",
      "question": "Is the newest model the answer - or is the harness?",
      "thread": "multi-model experiments → coding agents → reusable skills",
      "summary": "Comparing models led to a stronger conclusion: tools, permissions, context, feedback loops, and repeatable skills often matter more than a leaderboard position.",
      "status": "Deepening",
      "categories": [
        "agents",
        "models",
        "skills"
      ]
    },
    {
      "id": "cloud-to-local",
      "question": "How much useful AI can stay on my own machine?",
      "thread": "OpenRouter → Ollama → MLX / oMLX",
      "summary": "Cloud routing makes comparison easy; local inference tests privacy, control, latency, and resilience against real workflows instead of slogans.",
      "status": "Prototyping",
      "categories": [
        "models",
        "local-ai",
        "privacy"
      ]
    },
    {
      "id": "banking-to-agents",
      "question": "What changes when agent ideas meet banking constraints?",
      "thread": "global systems delivery → Nexus Bank demo → human review",
      "summary": "Traceable data, bounded actions, explicit hand-offs, and clear stopping points matter when agent ideas meet banking constraints.",
      "status": "Applying experience",
      "categories": [
        "banking",
        "agents",
        "governance"
      ]
    },
    {
      "id": "singapore-to-product",
      "question": "Can a very local problem become a useful product?",
      "thread": "Singapore context → verified venue data → HalalEats SG",
      "summary": "A focused local need became a chat-first discovery product grounded in verified public data and the way people actually ask where to makan.",
      "status": "Live",
      "categories": [
        "singapore",
        "rag",
        "product"
      ]
    },
    {
      "id": "play-to-learning",
      "question": "What can a game teach that a dashboard cannot?",
      "thread": "voice game → pet leaderboard → provenance lesson",
      "summary": "Play makes feedback immediate. It also exposes when delightful presentation outruns the evidence underneath it.",
      "status": "Playground",
      "categories": [
        "games",
        "voice",
        "data"
      ]
    }
  ],
  "projects": [
    {
      "id": "sidespark",
      "name": "SideSpark",
      "kind": "Hackathon prototype",
      "categories": [
        "projects",
        "demos",
        "community"
      ],
      "summary": "A playful way for coworkers to meet beyond their usual circles through a short Skill Swap or Social Connect break.",
      "status": "Public prototype",
      "href": "https://github.com/tanveerriaz/SideSpark",
      "tags": [
        "Workplace connection",
        "Skill sharing",
        "Shared breaks",
        "ChatGPT Sites"
      ]
    },
    {
      "id": "chroa",
      "name": "Chroa",
      "kind": "Building now",
      "categories": [
        "building",
        "tools",
        "demos"
      ],
      "summary": "A colour-system studio that generates accessible OKLCH palettes, wires them into live interface previews, and exports a DESIGN.md a coding agent can follow.",
      "status": "Public beta",
      "href": "https://chroa.vercel.app",
      "tags": [
        "Design systems",
        "Accessibility",
        "Coding agents",
        "React"
      ]
    },
    {
      "id": "skillz",
      "name": "Skillz",
      "kind": "Open source",
      "categories": [
        "projects",
        "tools",
        "learning"
      ],
      "summary": "A public library of reusable AI-agent skills: focused procedures that turn prompt experiments into repeatable execution.",
      "status": "Public",
      "href": "https://github.com/tanveerriaz/Skillz",
      "tags": [
        "Agent skills",
        "Open source",
        "AI workflows",
        "Python"
      ]
    },
    {
      "id": "halaleats",
      "name": "HalalEats SG",
      "kind": "Singapore product",
      "categories": [
        "projects",
        "demos",
        "building"
      ],
      "summary": "A chat-first halal makan companion for Singapore, designed around plain-language questions and MUIS-certified venue data.",
      "status": "Live",
      "href": "https://www.halaleats-sg.com/",
      "tags": [
        "RAG",
        "Singapore",
        "Halal tech",
        "FastAPI",
        "Postgres"
      ]
    },
    {
      "id": "nexus-bank",
      "name": "Nexus Bank",
      "kind": "Fictional banking demo",
      "categories": [
        "projects",
        "demos",
        "learning"
      ],
      "summary": "A fictional AI-banking interface used to explore how conversational assistance, financial context, and bounded agent actions might fit together.",
      "status": "Live demo",
      "href": "https://banking-demo-production.up.railway.app/",
      "tags": [
        "Fictional demo",
        "Banking UX",
        "Agentic systems",
        "Mock data"
      ]
    },
    {
      "id": "promptzap",
      "name": "PromptZap",
      "kind": "Browser tool",
      "categories": [
        "projects",
        "tools",
        "demos"
      ],
      "summary": "A browser extension that turns rough instructions into structured prompts inside the AI tools people already use.",
      "status": "Live",
      "href": "https://promptzap.io/",
      "tags": [
        "Browser extension",
        "Prompt design",
        "AI tooling"
      ]
    },
    {
      "id": "scripttoreel",
      "name": "ScriptToReel",
      "kind": "Open-source pipeline",
      "categories": [
        "projects",
        "tools",
        "demos"
      ],
      "summary": "A local-first Python pipeline that researches, scripts, assembles, narrates, and renders short videos from a topic.",
      "status": "Public",
      "href": "https://github.com/tanveerriaz/scripttoreel",
      "tags": [
        "Python",
        "Video",
        "Local workflow",
        "FFmpeg"
      ]
    },
    {
      "id": "markdown-convert",
      "name": "Markdown Convert",
      "kind": "Agent utility",
      "categories": [
        "tools",
        "demos",
        "projects"
      ],
      "summary": "A one-click browser extension that converts webpages into clean Markdown for agents, notes, and knowledge bases.",
      "status": "Live",
      "href": "https://markdown-ext.pages.dev/",
      "tags": [
        "Markdown",
        "Browser extension",
        "Agent-ready content",
        "JavaScript"
      ]
    },
    {
      "id": "pet-league",
      "name": "Codex Pet League",
      "kind": "Data experiment",
      "categories": [
        "games",
        "demos",
        "projects"
      ],
      "summary": "A playful leaderboard for tiny coding companions - and a build story about replacing persuasive mock data with verifiable public signals.",
      "status": "Build story",
      "href": "/blog/dashboard-atlas",
      "tags": [
        "Data provenance",
        "Dashboard",
        "Game",
        "Build in public"
      ]
    },
    {
      "id": "logo-challenge",
      "name": "Logo Challenge",
      "kind": "Voice game",
      "categories": [
        "games",
        "demos"
      ],
      "summary": "A voice-powered brand guessing game built as a fast family-friendly experiment in multimodal interaction.",
      "status": "Public prototype",
      "href": "https://github.com/tanveerriaz/Logo-Challenge-Game",
      "tags": [
        "Voice UI",
        "Game",
        "Rapid prototyping"
      ]
    }
  ],
  "tools": [
    {
      "group": "Research and synthesis",
      "relationship": "I use broad tools to get oriented, then return to primary evidence.",
      "items": [
        "Genspark",
        "Web research",
        "Markdown notes"
      ],
      "status": "Active"
    },
    {
      "group": "Model routing and comparison",
      "relationship": "Different models are collaborators with different strengths, not a permanent winner.",
      "items": [
        "OpenRouter",
        "DeepSeek",
        "Gemini models",
        "NVIDIA Nemotron"
      ],
      "status": "Experimenting"
    },
    {
      "group": "Coding and building",
      "relationship": "I move between agents to compare their planning, implementation, and review instincts.",
      "items": [
        "Codex",
        "Cursor",
        "Claude Code",
        "Gemini CLI",
        "Pi"
      ],
      "status": "Active"
    },
    {
      "group": "Agent orchestration",
      "relationship": "The experiment is the team shape: roles, hand-offs, tools, memory, and permission boundaries.",
      "items": [
        "Hermes",
        "OpenClaw",
        "Sarah agent",
        "Reusable skills"
      ],
      "status": "Personal experiments"
    },
    {
      "group": "Local inference",
      "relationship": "I test which useful workflows can stay on-device without pretending every task belongs there.",
      "items": [
        "Ollama",
        "MLX",
        "oMLX",
        "Local model workspaces"
      ],
      "status": "Prototyping"
    },
    {
      "group": "Image and motion",
      "relationship": "Images are evidence and narrative material, so generation stays connected to a real build story.",
      "items": [
        "OpenAI image models",
        "Flux",
        "Kling through Fal"
      ],
      "status": "Experimenting"
    },
    {
      "group": "Terminal and connection",
      "relationship": "Small interface choices make multi-agent work calmer and easier to inspect.",
      "items": [
        "Ghostty",
        "Herdr",
        "Tailscale",
        "Wispr Flow"
      ],
      "status": "Active"
    },
    {
      "group": "Shipping",
      "relationship": "A build only becomes useful when somebody else can open it and its limits are explicit.",
      "items": [
        "GitHub",
        "Vercel",
        "Railway",
        "Supabase",
        "GitHub Actions"
      ],
      "status": "Active"
    }
  ],
  "events": [
    {
      "id": "fintech-festival",
      "name": "Singapore FinTech Festival",
      "date": "2025-11",
      "venue": "Singapore EXPO",
      "district": "East · Expo",
      "chapter": "Look wider",
      "context": "Singapore · public financial technology event",
      "moment": "AI looks different when the room speaks finance.",
      "lesson": "Experience in banking shifts the question from whether a demo works to whether provenance, permissions, ownership, and difficult-day operations are clear.",
      "carriedInto": "Nexus Bank, a fictional banking demo",
      "href": "https://banking-demo-production.up.railway.app/",
      "image": "/assets/events/journey/singapore-fintech-festival.webp",
      "imageAlt": "Tanveer Riaz at Singapore FinTech Festival 2025",
      "world": {
        "routeOrder": 1,
        "position": [
          -42,
          18
        ],
        "venueType": "expo",
        "districtKey": "expo",
        "accent": "amber",
        "approachLabel": "Singapore EXPO"
      }
    },
    {
      "id": "ai-finance-raffles",
      "name": "AI and Finance Conversations",
      "date": "2025-11-13",
      "venue": "ByteDance · Raffles Quay",
      "district": "Marina · CBD",
      "chapter": "Listen closely",
      "context": "Singapore · public AI and finance event",
      "moment": "The useful idea often arrives between the slides.",
      "lesson": "A conversation can reveal the missing constraint faster than another hour of polishing.",
      "carriedInto": "What banking taught me about shipping AI",
      "href": "/blog/banking-shipping-ai",
      "image": "/assets/events/journey/ai-finance-conversation.webp",
      "imageAlt": "Tanveer Riaz in conversation at a public AI and finance event",
      "world": {
        "routeOrder": 2,
        "position": [
          -26,
          -5
        ],
        "venueType": "tower",
        "districtKey": "cbd",
        "accent": "coral",
        "approachLabel": "Raffles Quay"
      }
    },
    {
      "id": "openclaw-aws",
      "name": "OpenClaw Singapore",
      "date": "2026",
      "venue": "AWS · IOI Central Boulevard Towers",
      "district": "Marina · CBD",
      "chapter": "Test the edges",
      "context": "Singapore · agent builder community",
      "moment": "Agents become real when permissions become real.",
      "lesson": "Autonomy is useful only when memory, tools, permissions, and hand-offs are visible.",
      "carriedInto": "The harness matters",
      "href": "/blog/harness-matters",
      "image": "/assets/events/journey/openclaw-singapore.webp",
      "imageAlt": "Collage from an OpenClaw Singapore community event, including Tanveer Riaz in the audience",
      "world": {
        "routeOrder": 3,
        "position": [
          -18,
          9.33
        ],
        "venueType": "tower",
        "districtKey": "cbd",
        "accent": "orange",
        "approachLabel": "AWS · IOI Central"
      }
    },
    {
      "id": "ai-engineer-capitol",
      "name": "AI Engineer Singapore",
      "date": "2026-05-16",
      "venue": "Capitol Theatre · 15 Stamford Road",
      "district": "Civic · City Hall",
      "chapter": "Keep showing up",
      "context": "Singapore · AI engineering conference",
      "moment": "I went to learn. The paper became part of the evidence.",
      "lesson": "The value was being in a room where practitioners were building, questioning, and learning in public.",
      "carriedInto": "A public journey connecting events, lessons, and builds",
      "href": "https://www.mfa.gov.sg/newsroom/press-statements-transcripts-and-photos/minister-for-foreign-affairs-dr-vivian-balakrishnan-s-speech-at-ai-engineer-singapore--16-may-2026/",
      "source": {
        "title": "Minister for Foreign Affairs Dr Vivian Balakrishnan's Speech at AI Engineer Singapore, 16 May 2026",
        "publisher": "Ministry of Foreign Affairs, Singapore",
        "url": "https://www.mfa.gov.sg/newsroom/press-statements-transcripts-and-photos/minister-for-foreign-affairs-dr-vivian-balakrishnan-s-speech-at-ai-engineer-singapore--16-may-2026/"
      },
      "image": "/assets/events/journey/ai-engineer-newspaper.webp",
      "imageAlt": "Physical Straits Times page about AI Engineer Singapore",
      "photoNote": "Tanveer Riaz is among the attendees in the group photograph. This does not imply a personal meeting with the minister.",
      "world": {
        "routeOrder": 4,
        "position": [
          4,
          -9
        ],
        "venueType": "theatre",
        "districtKey": "civic",
        "accent": "violet",
        "approachLabel": "Capitol Theatre"
      }
    },
    {
      "id": "build-with-gemini",
      "name": "Build with Gemini Hackathon",
      "date": "2026-08",
      "venue": "Lorong AI · one-north",
      "district": "West · one-north",
      "chapter": "Build for someone",
      "context": "Singapore · public AI builder hackathon",
      "moment": "A six-hour room became a reason to ask who technology can help people become.",
      "lesson": "The strongest prototype was not the one with the most AI. It was the one where consent stayed visible and the AI stepped back once two people could talk.",
      "carriedInto": "87K Windows",
      "href": "https://www.linkedin.com/feed/update/urn:li:activity:7497166785465659392/",
      "linkedinUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7497166785465659392/",
      "linkedinLabel": "View the 87K Windows build story",
      "image": "/assets/events/rooms/optimized/T8-640.webp",
      "imageAlt": "Lorong AI community event collage with presentation slides and Singapore AI builders",
      "world": {
        "routeOrder": 5,
        "position": [
          40,
          11
        ],
        "venueType": "campus",
        "districtKey": "one-north",
        "accent": "blue",
        "approachLabel": "Lorong AI"
      }
    },
    {
      "id": "value-maxxing",
      "name": "65labs Unconference · Value-Maxxing",
      "date": "2026-08",
      "venue": "Carousell Campus",
      "district": "West · innovation corridor",
      "chapter": "Spend intelligence well",
      "context": "Singapore · public AI builder unconference",
      "moment": "The useful question moved from which model is smartest to which model is reliable enough for the job.",
      "lesson": "Use frontier intelligence to explore, capture what worked as a repeatable skill, then move repeatable work down the cost curve.",
      "carriedInto": "Model-routing and reusable skills practice",
      "href": "https://www.linkedin.com/feed/update/urn:li:activity:7496185885101658112/",
      "linkedinUrl": "https://www.linkedin.com/feed/update/urn:li:activity:7496185885101658112/",
      "linkedinLabel": "Read the Value-Maxxing notes",
      "image": "/assets/events/rooms/optimized/T16-640.webp",
      "imageAlt": "Singapore builder community collage with speakers, tables and a projected talk",
      "world": {
        "routeOrder": 6,
        "position": [
          52,
          -8
        ],
        "venueType": "campus",
        "districtKey": "one-north",
        "accent": "red",
        "approachLabel": "Carousell Campus"
      }
    },
    {
      "id": "claude-grab",
      "name": "Code with Claude",
      "date": "2026",
      "venue": "Grab · one-north",
      "district": "West · one-north",
      "chapter": "Build together",
      "context": "Singapore · coding agent community",
      "moment": "A good workflow remembers what the team learns.",
      "lesson": "Reusable skills, clear intent, and inspectable review make useful discoveries survive the individual session.",
      "carriedInto": "The public Skillz library",
      "href": "https://github.com/tanveerriaz/Skillz",
      "image": "/assets/events/journey/claude-code-singapore.webp",
      "imageAlt": "Collage from Code with Claude 2026 in Singapore",
      "world": {
        "routeOrder": 7,
        "position": [
          62,
          10
        ],
        "venueType": "campus",
        "districtKey": "one-north",
        "accent": "sand",
        "approachLabel": "Grab · one-north"
      }
    },
    {
      "id": "agent-forge-nus",
      "name": "Agent Forge Hackathon",
      "date": "2026",
      "venue": "National University of Singapore",
      "district": "West · NUS",
      "chapter": "Forge the workflow",
      "context": "Singapore · public agent-building hackathon",
      "moment": "A room full of agents made the hand-offs more interesting than any single prompt.",
      "lesson": "Agent systems become dependable when roles, evidence, review and failure states are designed as one workflow.",
      "carriedInto": "Agent workflow and orchestration experiments",
      "href": "/classic#projects",
      "image": "/assets/events/rooms/optimized/T12-640.webp",
      "imageAlt": "Agent Forge Hackathon lecture theatre with attendees beneath event signage",
      "world": {
        "routeOrder": 8,
        "position": [
          78,
          -9
        ],
        "venueType": "university",
        "districtKey": "nus",
        "accent": "green",
        "approachLabel": "NUS · Agent Forge"
      }
    },
    {
      "id": "chatgpt-sites-hackathon",
      "name": "ChatGPT Sites Hackathon",
      "date": "2026-09",
      "venue": "Singapore",
      "district": "Singapore · build floor",
      "chapter": "Start with a conversation",
      "context": "Singapore · public site-building hackathon",
      "moment": "Benny and I started talking about how ordinary work breaks could help coworkers meet beyond their usual circles.",
      "lesson": "The idea became clearer as we talked, built it, explained it and brought it into the discussions around the room.",
      "carriedInto": "SideSpark",
      "href": "/blog/sidespark-started-with-a-conversation",
      "image": "/blog/sidespark-started-with-a-conversation/assets/hackathon-room.webp",
      "imageAlt": "ChatGPT Sites Hackathon participants gathered around tables and laptops in Singapore",
      "world": {
        "routeOrder": 9,
        "position": [
          70,
          -9
        ],
        "venueType": "campus",
        "districtKey": "one-north",
        "accent": "yellow",
        "approachLabel": "ChatGPT Sites"
      }
    }
  ],
  "credentials": [
    {
      "name": "Data Landscape of GenAI for Project Managers",
      "issuer": "Project Management Institute",
      "issued": "2026-07",
      "theme": "AI delivery and data",
      "credentialUrl": "https://www.credly.com/badges/5576dde9-f77a-42b1-b74b-b0a3a44f4ee2/linked_in_profile"
    },
    {
      "name": "AI in Agile Delivery",
      "issuer": "Project Management Institute",
      "issued": "2025-12",
      "theme": "Responsible AI in delivery workflows",
      "credentialUrl": "https://www.credly.com/badges/86581125-75d5-4b90-8490-740e2719b526"
    },
    {
      "name": "Introduction to Generative AI",
      "issuer": "edX",
      "issued": "2025-04",
      "theme": "Generative AI foundations",
      "credentialUrl": "https://courses.edx.org/certificates/0092d5fa6660447790bed05709130bb3"
    },
    {
      "name": "Certified AI Risk Governance Professional",
      "issuer": "Garranto Academy · accredited by IBF Singapore",
      "issued": "2025-03",
      "theme": "AI risk and governance",
      "credentialUrl": "https://www.linkedin.com/in/tanveerriaz/details/certifications/"
    },
    {
      "name": "Advanced Certified ScrumMaster (A-CSM)",
      "issuer": "Scrum Alliance",
      "issued": "2025-01",
      "theme": "Advanced agile delivery",
      "credentialUrl": "https://certification.scrumalliance.org/accounts/1581055-tanveer-riaz/certifications/2044428-advcsm"
    },
    {
      "name": "Generative AI Overview for Project Managers",
      "issuer": "Project Management Institute",
      "issued": "2025-01",
      "theme": "Generative AI for project leadership",
      "credentialUrl": "https://www.credly.com/badges/0d63e4c2-69c0-4bc1-80ce-8f983c526d14/linked_in_profile"
    }
  ],
  "links": {
    "github": "https://github.com/tanveerriaz",
    "linkedin": "https://www.linkedin.com/in/tanveerriaz",
    "blog": "https://tanveerriaz.me/blog",
    "rss": "https://tanveerriaz.me/feed.xml"
  },
  "agentHints": {
    "preferredName": "Tanveer Riaz",
    "shortDescription": "AI specialist in Singapore connecting global banking delivery with public experiments in agentic systems, local models, design, and useful products.",
    "safeTopics": [
      "Public projects",
      "Published writing",
      "Public tools",
      "AI and systems concepts",
      "Singapore builder community"
    ],
    "doNotInfer": [
      "Private repository contents",
      "Secrets, API keys, passwords, or credentials",
      "Local file and folder paths",
      "Exact home, office, or event location",
      "Private agent configuration, memory, or internal conversations beyond what is explicitly published",
      "Employer-confidential work",
      "Client information",
      "Availability for paid consulting"
    ],
    "canonicalSources": [
      "/data/site.json",
      "/site.md",
      "/llms.txt",
      "/blog/index.json"
    ]
  }
}
