<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vikas Uniyal — Blog</title>
    <link>https://vikasdev.in/blog</link>
    <description>Thoughts on full-stack development, design, and building in public.</description>
    <language>en-us</language>
    <managingEditor>vikasuniyalcsa@gmail.com (Vikas Uniyal)</managingEditor>
    <atom:link href="https://vikasdev.in/feed.xml" rel="self" type="application/rss+xml"/>
    
    <item>
      <title><![CDATA[3 FastAPI Mistakes That Were Slowing Down My Backend]]></title>
      <link>https://vikasdev.in/blog/3-fastapi-mistakes-slowing-down-backend</link>
      <guid>https://vikasdev.in/blog/3-fastapi-mistakes-slowing-down-backend</guid>
      <description><![CDATA[How I optimized CareerPulse's FastAPI backend by fixing async DB drivers, reducing Pydantic serialization overhead, and solving the N+1 query problem.]]></description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>general</category>
      <author>vikasuniyalcsa@gmail.com (Vikas Uniyal)</author>
    </item>
    <item>
      <title><![CDATA[Why I Stopped Charging by the Hour as a Freelance Developer]]></title>
      <link>https://vikasdev.in/blog/why-i-stopped-charging-by-the-hour-freelance-developer</link>
      <guid>https://vikasdev.in/blog/why-i-stopped-charging-by-the-hour-freelance-developer</guid>
      <description><![CDATA[Stop trading time for money. Learn why hourly billing hurts freelance developers, how to price by project scope, and handle scope creep with ease.]]></description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>freelancing</category>
      <author>vikasuniyalcsa@gmail.com (Vikas Uniyal)</author>
    </item>
    <item>
      <title><![CDATA[Why I Switched from useState to Zustand]]></title>
      <link>https://vikasdev.in/blog/why-i-switched-from-usestate-to-zustand</link>
      <guid>https://vikasdev.in/blog/why-i-switched-from-usestate-to-zustand</guid>
      <description><![CDATA[My journey migrating CareerPulse from useState prop-drilling to Zustand. Learn why Zustand is a game-changer for React and Next.js state management.]]></description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>react</category>
      <author>vikasuniyalcsa@gmail.com (Vikas Uniyal)</author>
    </item>
    <item>
      <title><![CDATA[From Zero Replies to a 25% Response Rate: How I Flipped My Job Hunt Strategy]]></title>
      <link>https://vikasdev.in/blog/zero-replies-to-25-percent-response-rate-job-hunt</link>
      <guid>https://vikasdev.in/blog/zero-replies-to-25-percent-response-rate-job-hunt</guid>
      <description><![CDATA[Stop sending resumes into a black hole. Learn how a simple shift to value-first outreach and engineering blogs boosted my job hunt response rate to 25%.]]></description>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <category>career</category>
      <author>vikasuniyalcsa@gmail.com (Vikas Uniyal)</author>
    </item>
  </channel>
</rss>