<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Shivam Rastogi</title>
    <link>https://shivamrastogi.com/</link>
    <description>Recent content on Shivam Rastogi</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-US</language>
    <copyright>Copyright © 2026, Shivam Rastogi</copyright>
    <lastBuildDate>Thu, 09 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://shivamrastogi.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Over-engineering an async AI voice chat app, on purpose</title>
      <link>https://shivamrastogi.com/tech/over-engineering-an-async-ai-voice-chat-app-on-purpose/</link>
      <pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://shivamrastogi.com/tech/over-engineering-an-async-ai-voice-chat-app-on-purpose/</guid>
      <description>This is an async AI voice chat app. You record a voice message, send it to a friend, they listen and reply when they&amp;rsquo;re ready. In the background, OpenAI Whisper transcribes the audio and a separate service handles image processing. Conceptually, it&amp;rsquo;s a ten-line Django view with a file upload and a row in a message table.
That&amp;rsquo;s not what I built.
What I built is seven repos, four languages, Apache Pulsar running on Amazon EKS with end-to-end TLS, a Spring Boot image service, a Python Whisper transcription consumer, a Django web app deployed to ECS Fargate behind an AWS CDK CodePipeline, and a cert-manager setup issuing certificates from AWS Private CA to every pod in the cluster.</description>
    </item>
    
    <item>
      <title>Fixing duplicate deadline callbacks in Airflow&#39;s HA scheduler</title>
      <link>https://shivamrastogi.com/tech/fixing-duplicate-deadline-callbacks-in-airflows-ha-scheduler/</link>
      <pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://shivamrastogi.com/tech/fixing-duplicate-deadline-callbacks-in-airflows-ha-scheduler/</guid>
      <description>Apache Airflow supports running multiple scheduler replicas for high availability. The idea is simple — if one scheduler dies, another takes over. No downtime, no lost work. Most of Airflow&amp;rsquo;s critical paths (DAG parsing, task scheduling, trigger processing) are carefully designed to coordinate safely across replicas using row-level locks.
Most of them.
Last week I shipped a fix for one that wasn&amp;rsquo;t. The scheduler&amp;rsquo;s deadline-check loop was missing a FOR UPDATE lock, which meant two schedulers could pick up the same expired deadline at the same time and fire the breach callback twice.</description>
    </item>
    
    <item>
      <title>Don&#39;t Take Things Personally</title>
      <link>https://shivamrastogi.com/life/dont-take-things-personally/</link>
      <pubDate>Mon, 26 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://shivamrastogi.com/life/dont-take-things-personally/</guid>
      <description>Don&amp;rsquo;t Take Things Personally &amp;ldquo;People may attack you, criticize you, or ignore you. They can crumple you up with their words, spit you out, or even walk all over you. But just like a crumpled, stepped-on 20 euro note is still worth 20 euros, your value doesn’t decrease — no matter how damaged or mistreated you feel. You are still worthy.&amp;rdquo;
We take things personally either because we assume it’s about us (ego), or because it triggers a deeper insecurity or unresolved emotional issue within us.</description>
    </item>
    
    <item>
      <title>NVC</title>
      <link>https://shivamrastogi.com/book-notes/nvc/</link>
      <pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://shivamrastogi.com/book-notes/nvc/</guid>
      <description>Feelings vs Needs Feeling
Our emotional response to a situation, based on whether a need is met or unmet. Feelings are internal and personal.
Need
A universal human requirement such as connection, safety, rest, or understanding. Feelings arise from how well these needs are fulfilled.
Example Trigger: A friend cancels dinner last minute.
Feeling: Disappointed
Need: Connection, reliability
Depending on the individual, this event may evoke different feelings based on different needs:</description>
    </item>
    
    <item>
      <title>Observation vs Judgement</title>
      <link>https://shivamrastogi.com/book-notes/observation-vs-judgement/</link>
      <pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://shivamrastogi.com/book-notes/observation-vs-judgement/</guid>
      <description>Observation Stating what you see, hear, touch or smell without the influence of your thoughts and perception.
Evaluation Our brains are really good at drawing conclusions, coming up with explanations and our thoughts produce judgements.These evaluations come from our internal beliefs, life experiences, and thought patterns. The same observation can lead to many different evaluations.
Example
Observation:- A woman is sitting alone in a café drinking tea.
Evaluation 1:- She looks lonely.</description>
    </item>
    
  </channel>
</rss>
