{
  "metadata": {
    "total_projects": 47,
    "github_repos": 43,
    "local_projects": 33,
    "last_updated": "2026-05-29T03:09:04.203Z",
    "version": "1.0.0"
  },
  "projects": [
    {
      "id": "mosaic-multimodal-rag-mcp",
      "name": "mosaic-multimodal-rag-mcp",
      "desc": "Multimodal RAG · MCP Server. A local knowledge base for any file type, exposed via the MCP so Claude...",
      "tech": [
        "Python",
        "Shell",
        "python",
        "go"
      ],
      "type": "github",
      "features": [
        "source paths   │",
        "## Use cases",
        "- You have the video recordings, the slide decks, and your own notes, all in different formats"
      ],
      "url": "https://github.com/nehasriva/mosaic-multimodal-rag-mcp",
      "stars": 0
    },
    {
      "id": "platform-eng-gists",
      "name": "platform-eng-gists",
      "desc": "Platform Engineering Gists",
      "tech": [
        "python",
        "kubernetes",
        "aws",
        "github actions"
      ],
      "type": "github",
      "features": [
        "## Developer Experience",
        "## Kubernetes & AWS",
        "## Observability"
      ],
      "url": "https://github.com/nehasriva/platform-eng-gists",
      "stars": 0
    },
    {
      "id": "product-craft-gists",
      "name": "product-craft-gists",
      "desc": "Product Craft Engineering Gists",
      "tech": [
        "react",
        "javascript",
        "typescript",
        "ruby"
      ],
      "type": "github",
      "features": [
        "## Accessibility (WCAG / a11y)",
        "## SwiftUI & iOS",
        "reduceMotion for motion-safe Dynamic Type layouts |"
      ],
      "url": "https://github.com/nehasriva/product-craft-gists",
      "stars": 0
    },
    {
      "id": "ai-engineering-gists",
      "name": "ai-engineering-gists",
      "desc": "AI Engineering Gists",
      "tech": [
        "typescript",
        "python",
        "pandas"
      ],
      "type": "github",
      "features": [
        "## Evals & LLM Testing",
        "## Agents & MCP",
        "## By Language"
      ],
      "url": "https://github.com/nehasriva/ai-engineering-gists",
      "stars": 0
    },
    {
      "id": "turnback",
      "name": "turnback",
      "desc": "Causal turn attribution for multi-turn LLM conversations",
      "tech": [
        "Python",
        "python",
        "go"
      ],
      "type": "github",
      "features": [
        "webhook), LangSmith, corpus workflow, human review |",
        "turnback operates on real failed conversations, not synthetic ones.",
        "(no LLM call per turn):"
      ],
      "url": "https://github.com/nehasriva/turnback",
      "stars": 0
    },
    {
      "id": "eval-review-queue",
      "name": "eval-review-queue",
      "desc": "A sampling and review system for AI voice agent conversations",
      "tech": [
        "Python",
        "HTML",
        "Dockerfile",
        "python",
        "flask"
      ],
      "type": "github",
      "features": [
        "## Tech Stack",
        "## What It Does",
        "## How It Works"
      ],
      "url": "https://github.com/nehasriva/eval-review-queue",
      "stars": 0
    },
    {
      "id": "chromesthesia",
      "name": "chromesthesia",
      "desc": "A synesthetic sound visualization experiment",
      "tech": [
        "CSS",
        "JavaScript",
        "HTML"
      ],
      "type": "github",
      "features": [
        "## How it works",
        "Scriabin — Alexander Scriabin's color-tone associations from his Prometheus: The Poem of Fire",
        "Newton — Isaac Newton's mapping of the visible spectrum to musical intervals"
      ],
      "url": "https://github.com/nehasriva/chromesthesia",
      "stars": 0
    },
    {
      "id": "fire-calculator",
      "name": "fire-calculator",
      "desc": "FIRE calculators with screenshot support",
      "tech": [
        "JavaScript",
        "CSS",
        "HTML"
      ],
      "type": "github",
      "features": [
        "![FIRE Calculator demo](demo.gif)",
        "— same math as traditional but assumes 60% of your current expenses (a leaner retirement budget).",
        "Mode selector switches between the four FIRE variants"
      ],
      "url": "https://github.com/nehasriva/fire-calculator",
      "stars": 0
    },
    {
      "id": "phonon",
      "name": "phonon",
      "desc": "An audio-reactive 3D particle orb",
      "tech": [
        "JavaScript",
        "CSS",
        "HTML"
      ],
      "type": "github",
      "features": [
        "![Phonon demo](demo.gif)",
        "Count — number of particles (100–1500)",
        "Size — particle size"
      ],
      "url": "https://github.com/nehasriva/phonon",
      "stars": 0
    },
    {
      "id": "linocut-color-wheel",
      "name": "linocut-color-wheel",
      "desc": "A color prototyper for multicolor linocut printing",
      "tech": [
        "JavaScript",
        "CSS",
        "HTML"
      ],
      "type": "github",
      "features": [
        "![Linocut Color Wheel demo](demo.gif)",
        "Technique buttons switch between reduction, multi-block, and jigsaw views",
        "Color picker sets each layer's ink color"
      ],
      "url": "https://github.com/nehasriva/linocut-color-wheel",
      "stars": 0
    },
    {
      "id": "blog-garden",
      "name": "blog-garden",
      "desc": "Retro themed blog tag visualization",
      "tech": [
        "JavaScript",
        "CSS",
        "HTML",
        "react",
        "javascript"
      ],
      "type": "github",
      "features": [
        "![Blog Garden demo](demo.gif)",
        "Add before script.js -->",
        "Vanilla JS — no framework, no build step"
      ],
      "url": "https://github.com/nehasriva/blog-garden",
      "stars": 0
    },
    {
      "id": "modelwho",
      "name": "modelwho",
      "desc": " CLI tool that helps developers choose the right AI model for their needs",
      "tech": [
        "Go",
        "Makefile",
        "go",
        "aws",
        "azure"
      ],
      "type": "github",
      "features": [
        "fetches model data and lets you search, filter, score, and compare models.",
        "| Lower cost = higher score (inverse ranking) |",
        "| How well it meets your context needs |"
      ],
      "url": "https://github.com/nehasriva/modelwho",
      "stars": 0
    },
    {
      "id": "linolog",
      "name": "linolog",
      "desc": "AI agents assisted Linocut art logging",
      "tech": [
        "Python",
        "python",
        "go"
      ],
      "type": "github",
      "features": [
        "🧠 AI Agents: Metadata filler, color detection, tag suggestions, and LLM-enhanced analysis",
        "📊 Google Sheets Integration: Structured logging with editable rows",
        "🔧 Modular Design: Toggle agents on/off via configuration"
      ],
      "url": "https://github.com/nehasriva/linolog",
      "stars": 0
    },
    {
      "id": "XCTest-Gherkin",
      "name": "XCTest-Gherkin",
      "desc": "Gherkin syntax for XCTestCase",
      "tech": [
        "Swift",
        "Ruby",
        "Objective-C",
        "Gherkin",
        "Shell"
      ],
      "type": "github",
      "features": [
        "However you want to get this /",
        "However you want to get this /",
        "setUp()). You can have as many steps in Background as you want."
      ],
      "url": "https://github.com/nehasriva/XCTest-Gherkin",
      "stars": 0
    },
    {
      "id": "gist-ecd7a5a79efe2ec75462dfebc20d941a",
      "name": "Sentry before_send hook for recursive PII scrubbing",
      "desc": "Sentry before_send hook for recursive PII scrubbing",
      "tech": [
        "Python"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/ecd7a5a79efe2ec75462dfebc20d941a",
      "stars": 0
    },
    {
      "id": "gist-5e5ef8e1db8e54a89eba5bb3e8859a9d",
      "name": "Grafana datasource provisioning: Tempo + Loki with trace-to-log linking",
      "desc": "Grafana datasource provisioning: Tempo + Loki with trace-to-log linking",
      "tech": [
        "YAML"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/5e5ef8e1db8e54a89eba5bb3e8859a9d",
      "stars": 0
    },
    {
      "id": "gist-b594053742854668f7cc2e114a50e94a",
      "name": "AWS/EKS helpers, SSM exec without SSH, multi-region Lambda audit",
      "desc": "AWS/EKS helpers, SSM exec without SSH, multi-region Lambda audit",
      "tech": [
        "Shell",
        "aws"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/b594053742854668f7cc2e114a50e94a",
      "stars": 0
    },
    {
      "id": "gist-71bdce909400b170a06ccdb297ac0dd0",
      "name": "Kubernetes deployment: rolling update strategy + probes & resource limits",
      "desc": "Kubernetes deployment: rolling update strategy + probes & resource limits",
      "tech": [
        "YAML"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/71bdce909400b170a06ccdb297ac0dd0",
      "stars": 0
    },
    {
      "id": "gist-9a42ba93cb873d53f3c0d6149a88de91",
      "name": "Slack-to-Knowledge-Base configuration",
      "desc": "Slack-to-Knowledge-Base configuration",
      "tech": [
        "YAML"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/9a42ba93cb873d53f3c0d6149a88de91",
      "stars": 0
    },
    {
      "id": "gist-33bfc4999e6e44e26067610f4955c91e",
      "name": "Stopwatch in zsh",
      "desc": "Stopwatch in zsh",
      "tech": [
        "Shell"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/33bfc4999e6e44e26067610f4955c91e",
      "stars": 0
    },
    {
      "id": "gist-36f4738cf6a4f8e660c6f5feed383ba4",
      "name": "Developer experience toolkit with git hooks and shell functions",
      "desc": "Developer experience toolkit with git hooks and shell functions",
      "tech": [
        "Shell"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/36f4738cf6a4f8e660c6f5feed383ba4",
      "stars": 0
    },
    {
      "id": "gist-deb1c82ddda0b8630e17cb02e4af8e91",
      "name": "CircleCI Inject timing-based test splitting into an orb job via pre-steps",
      "desc": "CircleCI Inject timing-based test splitting into an orb job via pre-steps",
      "tech": [
        "YAML"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/deb1c82ddda0b8630e17cb02e4af8e91",
      "stars": 0
    },
    {
      "id": "gist-d886232433f1870ca34cececf1305ff7",
      "name": "GitHub Actions: monorepo path filtering + environment-gated deploys",
      "desc": "GitHub Actions: monorepo path filtering + environment-gated deploys",
      "tech": [
        "YAML"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/d886232433f1870ca34cececf1305ff7",
      "stars": 0
    },
    {
      "id": "gist-888cd5afce8462aa2ef547ffe6a02df9",
      "name": "Generate .ics events and Google Calendar deep links from form input",
      "desc": "Generate .ics events and Google Calendar deep links from form input",
      "tech": [
        "TypeScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/888cd5afce8462aa2ef547ffe6a02df9",
      "stars": 0
    },
    {
      "id": "gist-1ac3aa3290e40324d4219d4717dcf409",
      "name": "Graph traversal for Conditional question flow",
      "desc": "Graph traversal for Conditional question flow",
      "tech": [
        "TypeScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/1ac3aa3290e40324d4219d4717dcf409",
      "stars": 0
    },
    {
      "id": "gist-5829437f00ed54dbac71b4ffb192fe83",
      "name": "Ruby 3.x pattern matching",
      "desc": "Ruby 3.x pattern matching",
      "tech": [
        "Ruby",
        "ruby"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/5829437f00ed54dbac71b4ffb192fe83",
      "stars": 0
    },
    {
      "id": "gist-f0c642bacb09fbb2d563ee4217606f73",
      "name": "Radial time-series D3 polar-area rings, one per year",
      "desc": "Radial time-series D3 polar-area rings, one per year",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/f0c642bacb09fbb2d563ee4217606f73",
      "stars": 0
    },
    {
      "id": "gist-7d752769af645d73c692fe66dfc21fe8",
      "name": "Playwright Mobile Test Helper Patterns",
      "desc": "Playwright Mobile Test Helper Patterns",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/7d752769af645d73c692fe66dfc21fe8",
      "stars": 0
    },
    {
      "id": "gist-8093270e8c2c352bf9df9018611ce136",
      "name": "React Native Deep Links",
      "desc": "React Native Deep Links",
      "tech": [
        "TypeScript",
        "react"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/8093270e8c2c352bf9df9018611ce136",
      "stars": 0
    },
    {
      "id": "gist-f82ae49ddc6d83b9b57fef0abe4b42cd",
      "name": "React Native hook for gesture-driven bottom sheet with snap points",
      "desc": "React Native hook for gesture-driven bottom sheet with snap points",
      "tech": [
        "TypeScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/f82ae49ddc6d83b9b57fef0abe4b42cd",
      "stars": 0
    },
    {
      "id": "gist-6215d7a6f3c253fb3749bb5abac4494e",
      "name": "@Observable mocks (Xcode 16+)",
      "desc": "@Observable mocks (Xcode 16+)",
      "tech": [
        "Swift"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/6215d7a6f3c253fb3749bb5abac4494e",
      "stars": 0
    },
    {
      "id": "gist-5157671556e946558616fe548d9763c3",
      "name": "Advanced SwiftUI accessibility Patterns",
      "desc": "Advanced SwiftUI accessibility Patterns",
      "tech": [
        "Swift"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/5157671556e946558616fe548d9763c3",
      "stars": 0
    },
    {
      "id": "gist-ba272f9e1038f24db0b92cb361368bf2",
      "name": "Playwright site crawler for audit agents",
      "desc": "Playwright site crawler for audit agents",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/ba272f9e1038f24db0b92cb361368bf2",
      "stars": 0
    },
    {
      "id": "gist-641f99f62d2f797b1d1d4b6903bc40a0",
      "name": "Multi-agent accessibility pipeline",
      "desc": "Multi-agent accessibility pipeline",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/641f99f62d2f797b1d1d4b6903bc40a0",
      "stars": 0
    },
    {
      "id": "gist-27ac76db61701cd04213548ce3844b2f",
      "name": "Accessibility fix dispatcher",
      "desc": "Accessibility fix dispatcher",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/27ac76db61701cd04213548ce3844b2f",
      "stars": 0
    },
    {
      "id": "gist-19b8908f15a9b9f2cd6a1dab5e736a2b",
      "name": "WCAG 2.1 contrast ratio, W3C formula, severity scoring",
      "desc": "WCAG 2.1 contrast ratio, W3C formula, severity scoring",
      "tech": [
        "JavaScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/19b8908f15a9b9f2cd6a1dab5e736a2b",
      "stars": 0
    },
    {
      "id": "gist-4be71679e8545bb69dfc37e4b70fad72",
      "name": "MCP resources + prompt templates",
      "desc": "MCP resources + prompt templates",
      "tech": [
        "TypeScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/4be71679e8545bb69dfc37e4b70fad72",
      "stars": 0
    },
    {
      "id": "gist-567d90a3d5d24346272ad76b96f4d13d",
      "name": "Bootstrapping a Vitest MCP server with typed tool registration",
      "desc": "Bootstrapping a Vitest MCP server with typed tool registration",
      "tech": [
        "TypeScript"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/567d90a3d5d24346272ad76b96f4d13d",
      "stars": 0
    },
    {
      "id": "gist-98013496cab5d264c0756b2a70a89718",
      "name": "LLM Prompt Eval Notebook with parallel runs and LLM-as-judge",
      "desc": "LLM Prompt Eval Notebook with parallel runs and LLM-as-judge",
      "tech": [
        "Jupyter Notebook"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/98013496cab5d264c0756b2a70a89718",
      "stars": 0
    },
    {
      "id": "gist-b725d6286b288f7ef3d23112e8373996",
      "name": "Weighted composite scoring for LLM prompt A/B tests",
      "desc": "Weighted composite scoring for LLM prompt A/B tests",
      "tech": [
        "Python"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/b725d6286b288f7ef3d23112e8373996",
      "stars": 0
    },
    {
      "id": "gist-513896b8760be078fcb841709346391a",
      "name": "Calibrate heuristic confidence scores to true probabilities using isotonic regression.",
      "desc": "Calibrate heuristic confidence scores to true probabilities using isotonic regression.",
      "tech": [
        "Python"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/513896b8760be078fcb841709346391a",
      "stars": 0
    },
    {
      "id": "gist-b19fb37ccf78a225ccd6b5c36bdca18e",
      "name": "Immutable conversation trace as a value type using Pydantic frozen models",
      "desc": "Immutable conversation trace as a value type using Pydantic frozen models",
      "tech": [
        "Python"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/b19fb37ccf78a225ccd6b5c36bdca18e",
      "stars": 0
    },
    {
      "id": "gist-ccd0b4cdf6219c49de58cf853c629831",
      "name": "Multi-turn LLM attribution",
      "desc": "Multi-turn LLM attribution",
      "tech": [
        "Python"
      ],
      "type": "gist",
      "features": [],
      "url": "https://gist.github.com/nehasriva/ccd0b4cdf6219c49de58cf853c629831",
      "stars": 0
    },
    {
      "id": "static-project-1",
      "name": "Project 1",
      "desc": "",
      "tech": [],
      "type": "portfolio",
      "features": [],
      "stars": 0
    },
    {
      "id": "static-project-2",
      "name": "Project 2",
      "desc": "",
      "tech": [],
      "type": "portfolio",
      "features": [],
      "stars": 0
    },
    {
      "id": "static-project-3",
      "name": "Project 3",
      "desc": "",
      "tech": [],
      "type": "portfolio",
      "features": [],
      "stars": 0
    },
    {
      "id": "static-project-4",
      "name": "Project 4",
      "desc": "",
      "tech": [],
      "type": "portfolio",
      "features": [],
      "stars": 0
    }
  ],
  "summary": {
    "technologies": [
      {
        "item": "JavaScript",
        "count": 11
      },
      {
        "item": "Python",
        "count": 9
      },
      {
        "item": "python",
        "count": 6
      },
      {
        "item": "HTML",
        "count": 6
      },
      {
        "item": "TypeScript",
        "count": 6
      },
      {
        "item": "Shell",
        "count": 5
      },
      {
        "item": "go",
        "count": 5
      },
      {
        "item": "CSS",
        "count": 5
      },
      {
        "item": "YAML",
        "count": 5
      },
      {
        "item": "aws",
        "count": 3
      }
    ],
    "languages": [
      {
        "item": "JavaScript",
        "count": 11
      },
      {
        "item": "Python",
        "count": 9
      },
      {
        "item": "HTML",
        "count": 6
      },
      {
        "item": "TypeScript",
        "count": 6
      },
      {
        "item": "Shell",
        "count": 5
      },
      {
        "item": "CSS",
        "count": 5
      },
      {
        "item": "YAML",
        "count": 5
      },
      {
        "item": "Swift",
        "count": 3
      },
      {
        "item": "Ruby",
        "count": 2
      },
      {
        "item": "Dockerfile",
        "count": 1
      }
    ],
    "project_types": [
      {
        "item": "gist",
        "count": 29
      },
      {
        "item": "github",
        "count": 14
      },
      {
        "item": "portfolio",
        "count": 4
      }
    ],
    "featured_projects": []
  }
}