<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by `npm run build:blog` from content/blog/ (see BLOG_GUIDE.md): post <item>s
     and <lastBuildDate> are rewritten on every build, so edit the content files instead. -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Vikram Kamble's Blog</title>
    <link>https://vikky2810.github.io/blog/</link>
    <description>Posts about web development, backend engineering, and the decisions behind them - written from shipping real projects.</description>
    <language>en-us</language>
    <copyright>Vikram Kamble</copyright>
    <lastBuildDate>Fri, 18 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://vikky2810.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://vikky2810.github.io/src/assets/og-image.png</url>
      <title>Vikram Kamble's Blog</title>
      <link>https://vikky2810.github.io/blog/</link>
    </image>
    <item>
      <title>Trying to Build a Local Large File Upload Tracker</title>
      <link>https://vikky2810.github.io/blog/local-large-file-upload-tracker/</link>
      <guid isPermaLink="true">https://vikky2810.github.io/blog/local-large-file-upload-tracker/</guid>
      <pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate>
      <category>Backend</category>
      <dc:creator>Vikram Kamble</dc:creator>
      <description>Chunked upload for 1-2 GB files in Node: 5MB chunks, Express + multer, resume, retries, progress, and stitching with a writeStream drain so files stay intact.</description>
    </item>
    <item>
      <title>I Tried to Beat Node.js with C++. It Didn't Go as Expected.</title>
      <link>https://vikky2810.github.io/blog/cpp-vs-node/</link>
      <guid isPermaLink="true">https://vikky2810.github.io/blog/cpp-vs-node/</guid>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <category>Backend</category>
      <dc:creator>Vikram Kamble</dc:creator>
      <description>C++ vs Node.js HTTP benchmark with wrk: Crow 5.4k req/s, Node http 12k, uWebSockets 57k. Same route, same laptop, with code and why Crow lost to Node.</description>
    </item>
    <item>
      <title>Building With the Gemini API: The Part the Docs Don't Cover</title>
      <link>https://vikky2810.github.io/blog/building-with-gemini-api/</link>
      <guid isPermaLink="true">https://vikky2810.github.io/blog/building-with-gemini-api/</guid>
      <pubDate>Sat, 12 Sep 2026 00:00:00 +0000</pubDate>
      <category>AI</category>
      <dc:creator>Vikram Kamble</dc:creator>
      <description>Why the Gemini API returns an empty response with status 200 (finishReason SAFETY, MAX_TOKENS), how to read real 400/429 error bodies, and what to send it.</description>
    </item>
    <item>
      <title>SQL vs NoSQL: I've Shipped Both, Here's How I Actually Decide</title>
      <link>https://vikky2810.github.io/blog/sql-vs-nosql/</link>
      <guid isPermaLink="true">https://vikky2810.github.io/blog/sql-vs-nosql/</guid>
      <pubDate>Sat, 20 Jun 2026 00:00:00 +0000</pubDate>
      <category>Backend</category>
      <dc:creator>Vikram Kamble</dc:creator>
      <description>When to use SQL vs NoSQL, from shipping real apps on MySQL and MongoDB: the actual trade-offs, code examples, common misconceptions, and a decision flowchart.</description>
    </item>
    <item>
      <title>Library vs Framework: The Real Difference Every Developer Should Know</title>
      <link>https://vikky2810.github.io/blog/library-vs-framework/</link>
      <guid isPermaLink="true">https://vikky2810.github.io/blog/library-vs-framework/</guid>
      <pubDate>Sat, 18 Oct 2025 00:00:00 +0000</pubDate>
      <category>Web Development</category>
      <dc:creator>Vikram Kamble</dc:creator>
      <description>The difference between a library and a framework is inversion of control. Explained with React vs Next.js code, a comparison table and a cooking analogy.</description>
    </item>
  </channel>
</rss>
