<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Thirumalesh Pinninti's Technical Blog</title>
    <link>https://thirumalesh.vercel.app</link>
    <description>Thoughts, tutorials, deep dives, and daily logs from my DevOps and Cloud Architecture journey.</description>
    <language>en-us</language>
    <managingEditor>thirumaleshpinninti@gmail.com (Thirumalesh Pinninti)</managingEditor>
    <webMaster>thirumaleshpinninti@gmail.com (Thirumalesh Pinninti)</webMaster>
    <atom:link href="https://thirumalesh.vercel.app/feed.xml" rel="self" type="application/rss+xml"/>
    
    
    <item>
      <title><![CDATA[Designing Haptic.js — A DSL for Tactile Feedback on the Web]]></title>
      <link>https://thirumalesh.vercel.app/blogs/haptic-js</link>
      <guid>https://thirumalesh.vercel.app/blogs/haptic-js</guid>
      <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[How I built a tiny pattern language and a real compiler pipeline so one string can drive vibration on Android, audio fallback on iOS, and dual-motor rumble on a gamepad.]]></description>
      <category>Tech Blog</category>
    </item>
    <item>
      <title><![CDATA[Static Website Hosting on GCP: From Bucket to Custom Domain]]></title>
      <link>https://thirumalesh.vercel.app/blogs/gcp-static-hosting</link>
      <guid>https://thirumalesh.vercel.app/blogs/gcp-static-hosting</guid>
      <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Learn how to host a static website on Google Cloud Platform using Google Cloud Storage, Cloud CDN, and a custom domain.]]></description>
      <category>Tech Blog</category>
    </item>
    <item>
      <title><![CDATA[Gemini CLI - AI at Your Fingertips]]></title>
      <link>https://thirumalesh.vercel.app/blogs/gemini-cli</link>
      <guid>https://thirumalesh.vercel.app/blogs/gemini-cli</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Bringing Google's Gemini AI directly to your terminal for seamless command-line interactions and workflow automation.]]></description>
      <category>Tech Blog</category>
    </item>
    <item>
      <title><![CDATA[Building AI Agents with Google]]></title>
      <link>https://thirumalesh.vercel.app/blogs/build-with-ai</link>
      <guid>https://thirumalesh.vercel.app/blogs/build-with-ai</guid>
      <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[My experience at an inspiring Google workshop learning how to build AI-powered travel agents using Firebase Studio and ADK.]]></description>
      <category>Tech Blog</category>
    </item>
    <item>
      <title><![CDATA[Google AI Tools - Powered by Gemini]]></title>
      <link>https://thirumalesh.vercel.app/blogs/google-ai-tools</link>
      <guid>https://thirumalesh.vercel.app/blogs/google-ai-tools</guid>
      <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[A curated collection of powerful Gemini prompts for productivity, creativity, and learning.]]></description>
      <category>Tech Blog</category>
    </item>

    
    <item>
      <title><![CDATA[Thought snippet from Apr 11]]></title>
      <link>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-0</link>
      <guid>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-0</guid>
      <pubDate>Thu, 30 Apr 2026 10:59:55 GMT</pubDate>
      <description><![CDATA[Shipped Haptic.js v1 today. Six months of compiler work — tokenizer, AST, adapter pattern — all so you can write `haptic.play('~~..##')` and feel it on Android, iOS, gamepad, or React Native. The fun part is realizing how much language design matters even for a 200-line DSL.]]></description>
      <category>Daily Thoughts</category>
    </item>
    <item>
      <title><![CDATA[Thought snippet from Mar 10]]></title>
      <link>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-1</link>
      <guid>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-1</guid>
      <pubDate>Thu, 30 Apr 2026 10:59:55 GMT</pubDate>
      <description><![CDATA[Migrating a portfolio to a terminal-dashboard aesthetic completely changes how the content feels. It shifts from "marketing site" to "developer workspace." Next up: hooking this feed into a lightweight CMS.]]></description>
      <category>Daily Thoughts</category>
    </item>
    <item>
      <title><![CDATA[Thought snippet from Feb 28]]></title>
      <link>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-2</link>
      <guid>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-2</guid>
      <pubDate>Thu, 30 Apr 2026 10:59:55 GMT</pubDate>
      <description><![CDATA[Just published a new guide on setting up GCP static hosting. It's surprisingly easy once you get the IAM permissions right. Still, AWS CloudFront feels a bit faster for global edge caching.]]></description>
      <category>Daily Thoughts</category>
    </item>
    <item>
      <title><![CDATA[Thought snippet from Feb 15]]></title>
      <link>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-3</link>
      <guid>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-3</guid>
      <pubDate>Thu, 30 Apr 2026 10:59:55 GMT</pubDate>
      <description><![CDATA[Exploring the new Gemini 1.5 Pro features. The larger context window is a game-changer for analyzing entire repositories at once.]]></description>
      <category>Daily Thoughts</category>
    </item>
    <item>
      <title><![CDATA[Thought snippet from Jan 26]]></title>
      <link>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-4</link>
      <guid>https://thirumalesh.vercel.app/writings?tab=thoughts#thought-4</guid>
      <pubDate>Thu, 30 Apr 2026 10:59:55 GMT</pubDate>
      <description><![CDATA[Refactoring my old React code. It's amazing how much cleaner components look when you properly extract custom hooks.]]></description>
      <category>Daily Thoughts</category>
    </item>

  </channel>
</rss>