{
  "docId": "019dd923-5e88-73ef-bd5e-164a6fb27ba9",
  "docSlug": "1420f7eff28e00b5",
  "documentTitle": "2025 Andrej Karpathy YC School presentation",
  "authorId": "misc",
  "authorName": "Andrej Karpathy",
  "documentKindSlug": "consulting-deck",
  "documentKindLabel": "Consulting deck",
  "sourceTypeSlug": "independent_analyst",
  "sourceTypeLabel": "Independent analyst",
  "presentationDate": null,
  "orientation": "landscape",
  "aspectRatio": 1.777,
  "pageNumber": 67,
  "pageCount": 131,
  "prevPage": 66,
  "nextPage": 68,
  "slideType": "client_example",
  "function": "illustrate_case",
  "density": "dense",
  "nDataPoints": 0,
  "notes": "The slide uses a 'before-after' framing to show how to improve prompt engineering for AI coding tasks.",
  "elementsJson": [
    "paragraph",
    "callout_box"
  ],
  "metadataConfidence": 0.95,
  "imagePath": null,
  "slideHref": "/slides/019dd923-5e88-73ef-bd5e-164a6fb27ba9/67",
  "deckHref": "/decks/019dd923-5e88-73ef-bd5e-164a6fb27ba9",
  "deckJsonHref": "/decks/019dd923-5e88-73ef-bd5e-164a6fb27ba9.json",
  "deckAnchorHref": "/decks/019dd923-5e88-73ef-bd5e-164a6fb27ba9#slide-67",
  "components": [
    {
      "bbox": {
        "h": 0.06,
        "w": 0.66,
        "x": 0.17,
        "y": 0.24
      },
      "kind": "callout",
      "text": "Write a Python rate limiter that limits users to 10 requests per minute.",
      "attrs": null,
      "subkind": "primary",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "3f71a2ef-d649-4283-a0c7-2a02dfe81095",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.38,
        "w": 0.66,
        "x": 0.17,
        "y": 0.44
      },
      "kind": "callout",
      "text": "Implement a token bucket rate limiter in Python with the following requirements: - 10 requests per minute per user (identified by `user_id` string) - Thread-safe for concurrent access - Automatic cleanup of expired entries - Return tuple of (allowed: bool, retry_after_seconds: int) Consider: - Should tokens refill gradually or all at once? - What happens when the system clock changes? - How to prevent memory leaks from inactive users? Prefer simple, readable implementation over premature optimization. Use stdlib only (no Redis/external deps).",
      "attrs": null,
      "subkind": "primary",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "8d976363-2dc2-468f-9216-c3fdb41ea6f6",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": null,
      "kind": "callout",
      "text": "I would expect this prompt to give okay results, but also miss some edge cases, good practices and quality standards.",
      "attrs": null,
      "subkind": null,
      "toolName": "Visual emphasis",
      "toolSlug": "visual-emphasis",
      "confidence": null,
      "componentId": "019dd952-5645-7637-bca7-9de7f2e94f96",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.16,
        "w": 0.36,
        "x": 0.63,
        "y": 0.83
      },
      "kind": "image",
      "text": "AI-assisted coding for teams that can't get away with vibes",
      "attrs": null,
      "subkind": "logo",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "31a5aead-7657-49bf-81c0-827e6e9a93b4",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.03,
        "w": 0.66,
        "x": 0.17,
        "y": 0.18
      },
      "kind": "paragraph",
      "text": "Here's an example. This prompt is not unreasonable but not particularly thoughtful:",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "580c89e5-5c1a-4ade-adfc-89801a15e9b0",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.06,
        "w": 0.66,
        "x": 0.17,
        "y": 0.34
      },
      "kind": "paragraph",
      "text": "I would expect this prompt to give okay results, but also miss some edge cases, good practices and quality standards. This is how you might see someone at nilenso prompt an AI for the same task:",
      "attrs": null,
      "subkind": "paragraph",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "76e04816-913f-4923-b5ea-d3adc3b485ff",
      "frameworkName": null,
      "frameworkSlug": null
    },
    {
      "bbox": {
        "h": 0.03,
        "w": 0.44,
        "x": 0.28,
        "y": 0.06
      },
      "kind": "title",
      "text": "Example: keeping agents on the leash",
      "attrs": null,
      "subkind": "headline",
      "toolName": null,
      "toolSlug": null,
      "confidence": null,
      "componentId": "88ba6990-a904-445a-addb-8ad7c3a15b9a",
      "frameworkName": null,
      "frameworkSlug": null
    }
  ],
  "metrics": [],
  "tools": [
    {
      "name": "List presentation",
      "slug": "list-presentation",
      "agent": null,
      "layer": "slide",
      "matchId": "9bfd8543-0512-4e0c-9828-9da4eab2e56f",
      "evidence": "list/bullet: Implement a token bucket rate limiter in Python with the following requirements:",
      "confidence": 0.7
    },
    {
      "name": "Problem-Agitate-Solve (PAS)",
      "slug": "problem-agitate-solve-pas",
      "agent": "Storyteller",
      "layer": "slide",
      "matchId": "5a2beeee-f031-4afb-b51e-28865ea2bd21",
      "evidence": "I would expect this prompt to give okay results, but also miss some edge cases, good practices and quality standards.",
      "confidence": 0.5
    }
  ],
  "frameworks": [
    {
      "name": "before-after-framing",
      "slug": null,
      "matchId": "260c55e4-f3f8-4bcf-98d0-f7f6c2fe228b",
      "evidence": "The slide contrasts a 'not particularly thoughtful' prompt with a 'high quality' prompt to demonstrate improvement.",
      "confidence": 0.9
    }
  ],
  "arcBeats": [],
  "loops": [],
  "imagePathAlt": null,
  "thumbSrc": null,
  "thumbSrcAlt": null,
  "locked": true
}