<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Satyam Kesharwani's Engineering Blog</title>
    <link>https://www.satyamk.dev/blog</link>
    <description>Write-ups on databases, distributed systems, C++ performance and machine learning by Satyam Kesharwani.</description>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://www.satyamk.dev/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building a Key-Value Database from Scratch in C++: epoll, LRU Cache and B-Tree</title>
      <link>https://www.satyamk.dev/blog/atomickv-key-value-store-cpp-epoll-btree</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/atomickv-key-value-store-cpp-epoll-btree</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>How one AtomicKV node works: a single-threaded Linux epoll event loop, an O(1) LRU cache behind a Bloom filter, and an on-disk B-Tree in C++17, with benchmarks.</description>
      <category>C++</category>
      <category>Databases</category>
      <category>Systems</category>
      <category>Linux</category>
    </item>
    <item>
      <title>Distributing a C++ Key-Value Store: Consistent Hashing, Gossip and Read Repair</title>
      <link>https://www.satyamk.dev/blog/atomickv-distributed-consistent-hashing-gossip-replication</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/atomickv-distributed-consistent-hashing-gossip-replication</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>AtomicKV as a masterless cluster: consistent hashing with virtual nodes, gossip failure detection, Lamport clocks, replication, read repair and anti-entropy, in C++.</description>
      <category>Distributed Systems</category>
      <category>C++</category>
      <category>Databases</category>
    </item>
    <item>
      <title>Building a URL Shortener with 7 ms Redirects: LRU, Redis and PostgreSQL Caching</title>
      <link>https://www.satyamk.dev/blog/url-shortener-system-design-redis-postgresql-caching</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/url-shortener-system-design-redis-postgresql-caching</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>Shortify&apos;s design: two cache layers over PostgreSQL, a Redis Bloom filter, cache-stampede locks, Snowflake IDs in Base62 and a token-bucket rate limiter in Node.js.</description>
      <category>Backend</category>
      <category>System Design</category>
      <category>Redis</category>
      <category>PostgreSQL</category>
    </item>
    <item>
      <title>From Behavior to Pixels: Android Ransomware Detection with a Vision Transformer</title>
      <link>https://www.satyamk.dev/blog/android-ransomware-detection-vision-transformer</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/android-ransomware-detection-vision-transformer</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>Our ICDAM 2025 paper: sandbox behaviour of 4,280 Android apps turned into features and images, then classified by a Random Forest, CNNs and a ViT (99.78% accuracy).</description>
      <category>Machine Learning</category>
      <category>Security</category>
      <category>Research</category>
    </item>
    <item>
      <title>Physics-Informed TinyML on an ESP32: Estimating Battery SOC and SOH</title>
      <link>https://www.satyamk.dev/blog/tinyml-esp32-battery-soc-soh-physics-informed-neural-network</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/tinyml-esp32-battery-soc-soh-physics-informed-neural-network</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>An offline ESP32 battery monitor from our IEEE paper: a physics-informed neural network (R² 99.70%) compressed to INT8 with Edge Impulse EON, plus no-start prediction.</description>
      <category>Machine Learning</category>
      <category>IoT</category>
      <category>Embedded</category>
      <category>Research</category>
    </item>
    <item>
      <title>Building a RAG PDF Assistant with LangChain, FAISS and Gemini</title>
      <link>https://www.satyamk.dev/blog/rag-pdf-assistant-langchain-faiss-gemini</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/rag-pdf-assistant-langchain-faiss-gemini</guid>
      <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>How Chatur answers questions about PDFs with RAG: PyPDF2 extraction, recursive chunking, Gemini embeddings in FAISS, a grounded prompt, and lessons on chunk size.</description>
      <category>AI</category>
      <category>Python</category>
      <category>RAG</category>
    </item>
    <item>
      <title>Custom Memory Allocators for an Order Matching Engine in C++</title>
      <link>https://www.satyamk.dev/blog/building-hft-engine-cpp</link>
      <guid isPermaLink="true">https://www.satyamk.dev/blog/building-hft-engine-cpp</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <author>stym4193@gmail.com (Satyam Kesharwani)</author>
      <description>Four C++ memory allocators written from scratch (linear, stack, pool, free list), how a limit order book uses them, and a fair benchmark against glibc new/delete.</description>
      <category>C++</category>
      <category>Systems</category>
      <category>Memory Allocators</category>
    </item>
  </channel>
</rss>
