{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Vivek Chopra",
  "home_page_url": "https://www.vivekchopra.com/",
  "feed_url": "https://www.vivekchopra.com/altdown.json",
  "description": "Notes on AI-native platforms, regulated markets, scaling engineering orgs, and operational reliability.",
  "language": "en",
  "_altdown": {
    "version": 1
  },
  "items": [
    {
      "id": "https://www.vivekchopra.com/posts/altdown",
      "url": "https://www.vivekchopra.com/posts/altdown",
      "title": "Introducing Altdown",
      "date_published": "2026-10-31T00:00:00Z",
      "date_modified": "2026-11-04T00:00:00Z",
      "summary": "Altdown lets publishers declare a verifiable Markdown copy of each page for AI agents: one link element, one static file, no intermediary.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/altdown.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 13537,
          "_altdown": {
            "sha256": "65af262f02a189cea838db29592c395c16c551cdde49899541a40ab1880cb61c"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/plan-before-you-prompt",
      "url": "https://www.vivekchopra.com/posts/plan-before-you-prompt",
      "title": "Plan before you prompt",
      "date_published": "2026-10-03T00:00:00Z",
      "date_modified": "2026-11-01T00:00:00Z",
      "summary": "How to steer coding agents with a small set of documents (architecture, ADR, plan, tasks) so your team makes the design decisions instead of the agent.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/plan-before-you-prompt.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 20240,
          "_altdown": {
            "sha256": "d7dd34a645c06845df5ea2df2b5dce064f2ea0016c80e935063ff75f276b32e8"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/",
      "url": "https://www.vivekchopra.com/",
      "title": "Thinking in public on intelligence, scale, and the hard parts.",
      "date_modified": "2026-10-31T00:00:00Z",
      "summary": "Notes on AI-native platforms, regulated markets, scaling engineering orgs, and operational reliability.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/index.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 3727,
          "_altdown": {
            "sha256": "c1c072d32318f8fdc1de039919c78a5711eb5238f7545c382c64241d3bcea46f"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/ai-generated-code-guardrails",
      "url": "https://www.vivekchopra.com/posts/ai-generated-code-guardrails",
      "title": "Guardrails for AI-generated code",
      "date_published": "2026-05-17T00:00:00Z",
      "date_modified": "2026-05-17T00:00:00Z",
      "summary": "A four-layer guardrails model for AI-generated code: scope and authority, structural checks, behavioral tests, and human verification. Plus notes on a shrinking architectural half-life.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/ai-generated-code-guardrails.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 19112,
          "_altdown": {
            "sha256": "edf253b9cfa348fd1f269dd884b43c119ddaaafe543112e169d218ca924b160a"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/death-to-scrum",
      "url": "https://www.vivekchopra.com/posts/death-to-scrum",
      "title": "Death to Scrum?",
      "date_published": "2026-05-07T00:00:00Z",
      "date_modified": "2026-05-07T00:00:00Z",
      "summary": "If the process of software development is changing this dramatically, what happens to Scrum?",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/death-to-scrum.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 15331,
          "_altdown": {
            "sha256": "cd8b3e4da451516f8df3baa86322d3331c3194c4a24feb128d0a79d4fd364265"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/new-sdlc",
      "url": "https://www.vivekchopra.com/posts/new-sdlc",
      "title": "The New SDLC",
      "date_published": "2026-04-26T00:00:00Z",
      "date_modified": "2026-04-26T00:00:00Z",
      "summary": "How AI tools are changing software development. The SDLC does not go away — what changes is the speed of iteration, the shape of the work, and the boundaries between roles.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/new-sdlc.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 18432,
          "_altdown": {
            "sha256": "b25290d65938e3e04528ad487fbe1e0cf9675f914162a16e8ecafb90d106cc78"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/llm-appsec",
      "url": "https://www.vivekchopra.com/posts/llm-appsec",
      "title": "From Reading Changelogs to Finding Zero-Days: LLMs and the Future of AppSec",
      "date_published": "2026-04-07T00:00:00Z",
      "date_modified": "2026-04-07T00:00:00Z",
      "summary": "LLMs went from reading about bugs to finding them. Then from finding them to exploiting them. The trajectory from BSides SF 2025 to Project Glasswing.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/llm-appsec.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 9628,
          "_altdown": {
            "sha256": "7191dc79b969a033ab44e8c39e853020980c50328306f784fe84b4755d8702a2"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/spec-driven-development",
      "url": "https://www.vivekchopra.com/posts/spec-driven-development",
      "title": "Spec First, Then Code",
      "date_published": "2026-04-05T00:00:00Z",
      "date_modified": "2026-04-05T00:00:00Z",
      "summary": "LLMs have no context. You have to give it to them. On AGENTS.md, spec-driven development, and screenshots as a way to communicate precisely.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/spec-driven-development.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 8475,
          "_altdown": {
            "sha256": "b7b72c775f59722ec98a81cd168b4c6a9f49024988c0f36aa85637a0c43511a9"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/ai-coding-changed",
      "url": "https://www.vivekchopra.com/posts/ai-coding-changed",
      "title": "Something Has Changed With AI Coding",
      "date_published": "2026-03-03T00:00:00Z",
      "date_modified": "2026-03-03T00:00:00Z",
      "summary": "My view on AI coding tools has shifted. On spec-driven development and what Claude Opus 4.6 actually feels like to use.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/ai-coding-changed.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 2112,
          "_altdown": {
            "sha256": "58cf38791370f37827b18c9691a1d67ce6ff2525ec81b1867f59a5e3a2207d2d"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/ai-agent-auth",
      "url": "https://www.vivekchopra.com/posts/ai-agent-auth",
      "title": "OAuth Is Not Enough: Authorization Challenges for Autonomous AI Agents",
      "date_published": "2025-06-10T00:00:00Z",
      "date_modified": "2025-06-10T00:00:00Z",
      "summary": "OAuth gives us delegated access, but by itself it can't ensure that autonomous agents stay inside the guardrails. A look at the gaps and a proposed layered mitigation strategy.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/ai-agent-auth.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 2970,
          "_altdown": {
            "sha256": "39e11f2b58793fc4fa09d1b9a51f780ba1dea9f5f813bafb48cddb4becfe15ce"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/managing-by-metrics",
      "url": "https://www.vivekchopra.com/posts/managing-by-metrics",
      "title": "Managing by Metrics",
      "date_published": "2024-10-07T00:00:00Z",
      "date_modified": "2024-10-07T00:00:00Z",
      "summary": "How to select, use, and think about engineering metrics. The difference between good metrics and the ones that just make you feel good.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/managing-by-metrics.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 9212,
          "_altdown": {
            "sha256": "e329edd04cd18ef4a642a8aa15003be15445d3de69bca499be83a16b43f9aba2"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/engineering-culture",
      "url": "https://www.vivekchopra.com/posts/engineering-culture",
      "title": "Engineering Culture and Principles",
      "date_published": "2024-04-12T00:00:00Z",
      "date_modified": "2024-04-12T00:00:00Z",
      "summary": "A document I wrote for my engineering team defining how we operate, what we value, and how we build the culture we are trying to create.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/engineering-culture.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 5399,
          "_altdown": {
            "sha256": "a17b3732b91536d3a35680c1551e577f53ab663d7878635400fc5407d9199e3a"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/giving-negative-feedback",
      "url": "https://www.vivekchopra.com/posts/giving-negative-feedback",
      "title": "Giving Negative Feedback",
      "date_published": "2018-08-08T00:00:00Z",
      "date_modified": "2018-08-08T00:00:00Z",
      "summary": "Most managers either delay negative feedback or soften it into uselessness. A practical framework for making it actually work.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/giving-negative-feedback.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 3135,
          "_altdown": {
            "sha256": "32dcb8c0026fbc62f512496276a3bca76c6d8272bae458028dce185f12bc08ab"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/parsing-text-files-shell",
      "url": "https://www.vivekchopra.com/posts/parsing-text-files-shell",
      "title": "Parsing Text Files in Shell",
      "date_published": "2015-07-25T00:00:00Z",
      "date_modified": "2015-07-25T00:00:00Z",
      "summary": "A cleaner way to parse delimited files in bash using IFS, and the gotchas that come with it.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/parsing-text-files-shell.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 3075,
          "_altdown": {
            "sha256": "f54b6a669a65ab35c3567706e9169d29c3e1d3114a308a35969e6d2cf49dce7a"
          }
        }
      ]
    },
    {
      "id": "https://www.vivekchopra.com/posts/nine-years-of-scrum",
      "url": "https://www.vivekchopra.com/posts/nine-years-of-scrum",
      "title": "9 Years of Scrum, and All I Got Is a Lousy T-shirt (Sizing)",
      "date_published": "2015-06-01T00:00:00Z",
      "date_modified": "2015-06-01T00:00:00Z",
      "summary": "Lessons learned from nine years of scrum, with varying degrees of rigor.",
      "attachments": [
        {
          "url": "https://www.vivekchopra.com/posts/nine-years-of-scrum.md",
          "mime_type": "text/markdown",
          "size_in_bytes": 6043,
          "_altdown": {
            "sha256": "65648f079a8d58ca2a0e4c812a6b6e583b26918ff3ca0291d1ea81e174d7d355"
          }
        }
      ]
    }
  ]
}
