{
  "source_file": "0930",
  "source_platform": "Hashnode",
  "author": "Wesley Kambale",
  "title_listed": "Dear 2023, thank you!",
  "keywords": "",
  "domain": "机器学习",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://kambale.dev/dear-2023-thank-you",
  "publish_date": "2023-12-31",
  "corpus_stage": "",
  "notes": "",
  "id": "eb173f0b6093",
  "collected_at": "2026-10-02T14:11:28",
  "title": "Dear 2023, thank you!",
  "body_markdown": "Dear 2023, thank you!\nPublished\nDecember 31, 2023\n•\n1\nmin read\n•\nView as Markdown\nW\nWesley Kambale\nI'm a Machine Learning Engineer passionate about building production-ready ML systems for the African market.\nWith experience in TensorFlow, Keras, and Python-based workflows, I help teams bridge the gap between machine learning research and real-world deployment—especially on resource-constrained devices.\nI'm also a Google Developer Expert in AI. I regularly speak at tech conferences including PyCon Africa, DevFest Kampala, DevFest Nairobi and more and also write technical articles on AI/ML here.\nDearest gentle reader\n,\nWe won some. We lost some. There's nothing else I can add.\nI wish you the very best of the 366 days ahead.\nWith love,\nWes\n.\n#\n2023",
  "metadata": {
    "title": "Dear 2023, thank you!",
    "description": "Dearest gentle reader,\nWe won some. We lost some. There's nothing else I can add.\nI wish you the very best of the 366 days ahead.\nWith love,\nWes.",
    "keywords": null,
    "author": null,
    "og:title": "Dear 2023, thank you!",
    "og:description": "Dearest gentle reader,\nWe won some. We lost some. There's nothing else I can add.\nI wish you the very best of the 366 days ahead.\nWith love,\nWes.",
    "og:url": "https://kambale.dev/dear-2023-thank-you",
    "og:site_name": "Wesley Kambale",
    "og:image": "https://cdn.hashnode.com/res/hashnode/image/upload/v1704011425544/622c2dc4-be64-4548-a4c8-879372038f2d.png",
    "og:image:width": "1200",
    "og:image:height": "630",
    "og:type": "article",
    "twitter:card": "summary_large_image",
    "twitter:creator": "https://twitter.com/WesKambale",
    "twitter:title": "Dear 2023, thank you!",
    "twitter:description": "Dearest gentle reader,\nWe won some. We lost some. There's nothing else I can add.\nI wish you the very best of the 366 days ahead.\nWith love,\nWes.",
    "twitter:image": "https://cdn.hashnode.com/res/hashnode/image/upload/v1704011425544/622c2dc4-be64-4548-a4c8-879372038f2d.png",
    "article:published_time": "2023-12-31T11:33:51.857Z",
    "article:author": "https://kambale.dev/@kambale"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [],
  "images": [
    {
      "status": "ok",
      "url": "https://cdn.hashnode.com/res/hashnode/image/upload/v1704011425544/622c2dc4-be64-4548-a4c8-879372038f2d.png",
      "bytes": 462297,
      "reused": true,
      "local_path": "attachments/eb173f0b6093/images/000.png",
      "src": "https://cdn.hashnode.com/res/hashnode/image/upload/v1704011425544/622c2dc4-be64-4548-a4c8-879372038f2d.png",
      "alt": "Dear 2023, thank you!",
      "downloaded": true
    }
  ],
  "audio": [],
  "videos": [],
  "links": [
    {
      "href": "https://kambale.dev/dear-2023-thank-you.md",
      "label": "View as Markdown",
      "type": "a"
    },
    {
      "href": "https://hashnode.com/@kambale",
      "label": "W",
      "type": "a"
    },
    {
      "href": "https://twitter.com/WesKambale",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://linkedin.com/in/WesKambale",
      "label": "",
      "type": "a"
    },
    {
      "href": "https://kambale.dev/tag/2023",
      "label": "# 2023",
      "type": "a"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-14T10:50:50Z",
  "source_url": "https://kambale.dev/dear-2023-thank-you",
  "papers": [],
  "actual_video_files": [],
  "body_chars": 756,
  "expected_body_images": 1,
  "discovery_status": "ok",
  "delivery_status": "ok",
  "missing_reason": "",
  "raw_html": "attachments/eb173f0b6093/pages/source.html",
  "local_html": "attachments/eb173f0b6093/pages/article.html",
  "body_base_path": "attachments/eb173f0b6093/pages/",
  "body_markdown_path": "attachments/eb173f0b6093/pages/article.md"
}