<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>Kfir Gisman Blogs</title>
    <link>https://kfir-g.dev/blog/</link>
    <description>Technical articles about Python, FastAPI, Cybersecurity, and more by Kfir Gisman.</description>
    <language>en-us</language>
    <lastBuildDate>Wed, 05 Aug 2026 00:00:00 GMT</lastBuildDate>

    <!-- Post 26 -->
    <item>
      <title>How SQLite Packs a Full RDBMS into a Single File</title>
      <link>https://kfir-g.dev/blog/blogs/2026-08-05_sqlite-under-the-hood</link>
      <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
      <description>
        Discover how SQLite packs a full ACID-compliant database into a single file embedded inside your app. Learn about VDBE bytecode, flat B+ trees, and crash-safe WAL mode.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-08-05_sqlite-under-the-hood</guid>
    </item>

    <!-- Post 25 -->
    <item>
      <title>How Elasticsearch Searches Billions of Documents in 5ms</title>
      <link>https://kfir-g.dev/blog/blogs/2026-07-26_elasticsearch-under-the-hood</link>
      <pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
      <description>
        Stop waiting on slow O(N) database scans. Peek under the hood of Elasticsearch and Apache Lucene to discover how inverted indexes, analyzer pipelines, immutable segment files, and two-phase scatter-gather distributed searches collapse billions of records into sub-10ms responses.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-07-26_elasticsearch-under-the-hood</guid>
    </item>

    <!-- Post 24 -->
    <item>
      <title>Rethinking System Architecture: Why Apache Kafka is More Than Just a Message Queue</title>
      <link>https://kfir-g.dev/blog/blogs/2026-07-03_rethinking-system-architecture-kafka</link>
      <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
      <description>
        Stop tangling your microservices in a messy web of direct API requests. Strip away the marketing complexity and dive into how Kafka leverages a dead-simple, append-only commit log, strict partition ordering, and low-level zero-copy optimizations to decouple backend systems with zero infrastructure debt.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-07-03_rethinking-system-architecture-kafka</guid>
    </item>

    <!-- Post 23 -->
    <item>
      <title>The Astral Trilogy: Modernizing My Python Pipelines with uv, ruff, and ty</title>
      <link>https://kfir-g.dev/blog/blogs/2026-06-19_the-astral-trilogy-python-pipelines</link>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <description>
        Stop wrestling with a fragmented, legacy soup of Python tooling. Learn how the modern Astral Trilogy—uv, ruff, and ty—completely unifies package management, PEP 8 linting, code formatting, and strict environment-aware type checking into a single pyproject.toml configuration and a blazing-fast 15-second GitHub Actions CI/CD pipeline.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-06-19_the-astral-trilogy-python-pipelines</guid>
    </item>

    <!-- Post 22 -->
    <item>
      <title>Exploiting CVE-2026-48710: A Deep Dive into Starlette's Host Injection and State Divergence</title>
      <link>https://kfir-g.dev/blog/blogs/2026-05-30_exploiting-starlette-host-injection</link>
      <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
      <description>
        Stop assuming your framework's high-level string properties represent network truth. Trace a live CVE-2026-48710 exploit pipeline using uv and curl to watch how a query delimiter (?) injected into the Host header splits global middleware logic from backend routing execution, and discover why a simple framework upgrade fails without migrating to low-level ASGI scopes.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-05-30_exploiting-starlette-host-injection</guid>
    </item>

    <!-- Post 21 -->
    <item>
      <title>The Pydantic Engine: Deep-Dive into Performance, Rust Core, and Enterprise Architecture</title>
      <link>https://kfir-g.dev/blog/blogs/pydantic-core-engine-deep-dive</link>
      <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
      <description>
        Stop thinking of data validation as secondary boilerplate. Peel back the layers of Pydantic V2’s compiled Rust core (pydantic-core) to see how native machine-code type coercion operates at C-speeds, break down its exact structural ValidationError matrix, and explore the corporate expansion powering PydanticAI and Logfire.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/pydantic-core-engine-deep-dive</guid>
    </item>

    <!-- Post 20 -->
    <item>
      <title>The Modern GraphQL Stack: Engineering Type-Safe APIs with Strawberry</title>
      <link>https://kfir-g.dev/blog/blogs/2026-05-09_strawberry-graphql-meat</link>
      <pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
      <description>
        Stop over-fetching data and start engineering better contracts. This deep dive explores Strawberry GraphQL, a type-hint-driven library for Python. Learn about AST execution, solving the N+1 problem with DataLoaders, and why moving from REST to a Schema-first approach reduces architectural friction.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-05-09_strawberry-graphql-meat</guid>
    </item>

    <!-- Post 19 -->
    <item>
      <title>The Hidden Secrets in Python: Making Your Program Truly Efficient with AnyIO</title>
      <link>https://kfir-g.dev/blog/blogs/2026-05-01_anyio-hidden-secrets</link>
      <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
      <description>
        Efficiency isn't just about speed; it's about reliability. Dive deep into Structured Concurrency with AnyIO. Learn how to eliminate "zombie tasks," bridge the gap between sync and async code, and build resilient Python backends using Task Groups and thread offloading.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-05-01_anyio-hidden-secrets</guid>
    </item>

    <!-- Post 17 -->
    <item>
      <title>Stop Using upload_file(): S3 Engineering for High-Throughput Systems</title>
      <link>https://kfir-g.dev/blog/blogs/2026-04-13_s3-engineering-guide</link>
      <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
      <description>
        Move beyond basic S3 uploads. Learn to engineer a resilient file-handling pipeline using chunked streaming to save RAM, server-side MD5 verification for data integrity, and non-blocking async wrappers to keep your FastAPI event loop responsive under heavy load.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-04-13_s3-engineering-guide</guid>
    </item>

    <!-- Post 16 -->
    <item>
      <title>The Modern Python + PostgreSQL Stack: From Psycopg3 to Advanced Scaling</title>
      <link>https://kfir-g.dev/blog/blogs/2026-04-04_modern-python-postgres-stack</link>
      <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
      <description>
        Master the relational backbone of modern backends. This guide covers the transition to Psycopg3, implementing high-performance connection pooling with async support, transaction integrity patterns, and leveraging PostgreSQL's JSONB for hybrid SQL/NoSQL architectures.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-04-04_modern-python-postgres-stack</guid>
    </item>

    <!-- Post 15 -->
    <item>
      <title>The Robust HTTP Client - Beyond simple requests.get()</title>
      <link>https://kfir-g.dev/blog/blogs/2026-02-25_robust-http-python-guide</link>
      <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
      <description>
        Stop treating API calls as secondary utilities. This guide explores building production-grade HTTP clients in Python using HTTPX and Tenacity, covering HTTP/2 multiplexing, exponential backoff with jitter, memory-efficient streaming, and header discipline.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-02-25_robust-http-python-guide</guid>
    </item>

    <!-- Post 14 -->
    <item>
      <title>Redis Internals &amp; Data Structures - The In-Memory Backbone</title>
      <link>https://kfir-g.dev/blog/blogs/2026-02-13_redis-internals-and-data-structures</link>
      <pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate>
      <description>
        A deep dive into the high-performance world of Redis. This guide explores the single-threaded event loop, specialized data structures like SkipLists and ZipLists, and how to leverage Redis beyond simple caching to build scalable, low-latency backend systems.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-02-13_redis-internals-and-data-structures</guid>
    </item>

    <!-- Post 13 -->
    <item>
      <title>The Complete Guide to Protocol Buffers in FastAPI</title>
      <link>https://kfir-g.dev/blog/blogs/2026-02-07_protobuf-fastapi-guide</link>
      <pubDate>Sun, 07 Feb 2026 00:00:00 GMT</pubDate>
      <description>
        An in-depth exploration of using Protocol Buffers with FastAPI. This guide covers everything from installation and setup to advanced usage patterns, performance considerations, and best practices for integrating Protocol Buffers into your FastAPI applications.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-02-07_protobuf-fastapi-guide</guid>
    </item>

    <!-- Post 12 -->
    <item>
      <title>From SYN Queue to FastAPI: How Uvicorn Listens on an Open Port</title>
      <link>https://kfir-g.dev/blog/blogs/2026-01-29_how-uvicorn-listens-on-a-port</link>
      <pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
      <description>
        A deep dive into what happens before a FastAPI request reaches your code. This post explains how Uvicorn binds to a port, how the Linux TCP stack handles SYN and accept queues, and why backend engineers must understand the TCP accept path to debug load issues, timeouts, and dropped connections in production.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-01-29_how-uvicorn-listens-on-a-port</guid>
    </item>

    <!-- Post 11 -->
    <item>
      <title>Event-Driven Architecture vs Request/Response: Designing Reactive Backends</title>
      <link>https://kfir-g.dev/blog/blogs/2026-01-25_eda-vs-request-response</link>
      <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
      <description>
        A deep, practical comparison between Event-Driven Architecture and classic Request/Response systems. Covers coupling, data reuse, reactivity, architectural flexibility, and real-world backend design trade-offs with concrete examples and diagrams.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-01-25_eda-vs-request-response</guid>
    </item>

    <!-- Post 10 -->
    <item>
      <title>The Ultimate Celery Internals Guide</title>
      <link>https://kfir-g.dev/blog/blogs/2026-01-10_the-ultimate-celery-internals-guide</link>
      <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
      <description>
        A deep, end-to-end breakdown of Celery’s architecture - from FastAPI task calls, AMQP routing, serialization, worker pools, retries, scheduling, and result backends. This guide explains how Celery actually works under the hood and how to build reliable distributed task systems in Python.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-01-10_the-ultimate-celery-internals-guide</guid>
    </item>

    <!-- Post 9 -->
    <item>
      <title>Understanding AMQP: The Protocol Behind Reliable Messaging</title>
      <link>https://kfir-g.dev/blog/blogs/2026-01-06_understanding-amqp-protocol</link>
      <pubDate>Tue, 07 Jan 2026 00:00:00 GMT</pubDate>
      <description>
        A practical deep dive into the AMQP protocol. Learn how brokers, exchanges, queues, and acknowledgements work together-and why AMQP quietly powers reliable backend systems at scale.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-01-06_understanding-amqp-protocol</guid>
    </item>

    <!-- Post 8 -->
    <item>
      <title>Async Tasks in Python: Why FastAPI Isn’t Enough and When You Need Celery</title>
      <link>https://kfir-g.dev/blog/blogs/2026-01-06_async-tasks-fastapi-celery</link>
      <pubDate>Mon, 06 Jan 2026 00:00:00 GMT</pubDate>
      <description>
        A backend-focused deep dive into async task execution in Python. Explains the limits of FastAPI background tasks and why mature systems rely on Celery, message brokers, and distributed workers.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2026-01-06_async-tasks-fastapi-celery</guid>
    </item>

    <!-- Post 7 -->
    <item>
      <title>Appendix - Feed Identity vs Content Integrity</title>
      <link>https://kfir-g.dev/blog/blogs/2025-12-31_feed-identity-vs-content-integrity/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate>
      <description>
        A concise explanation of the distinction between feed identity and content integrity in podcasting, highlighting their roles in ensuring listeners access the correct content.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2025-12-31_feed-identity-vs-content-integrity/</guid>
    </item> 

    <!-- Post 6 -->
    <item>
      <title>Podcasts as a Supply Chain: A Missing Security Model</title>
      <link>https://kfir-g.dev/blog/blogs/2025-12-30_podcasts-as-a-supply-chain-missing-security-model/</link>
      <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
      <description>
        Podcasting operates as a large-scale, automated content distribution system, yet lacks the security properties commonly expected from supply chains. This article examines implicit trust assumptions in podcast RSS, content provenance, integrity, and why security modeling matters as podcasts grow in influence, monetization, and scale.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2025-12-30_podcasts-as-a-supply-chain-missing-security-model/</guid>
    </item>

    <!-- Post 5 -->
    <item>
      <title>How Software Engineers Should Do Good Research: The D in R&amp;D</title>
      <link>https://kfir-g.dev/blog/blogs/2025-12-27_how-swes-should-do-daily-research/</link>
      <pubDate>Fri, 27 Dec 2025 00:00:00 GMT</pubDate>
      <description>
        Research is a daily discipline, not a one-time task. This post breaks down how strong software engineers research tools, products, topics, and trends-and why consistent, ongoing research quietly compounds over time.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2025-12-27_how-swes-should-do-daily-research/</guid>
    </item>

    <!-- Post 4 -->
    <item>
      <title>From Passive FastAPI Developer to Real FastAPI Engineer – Part 4: Lifespan, Startup, Shutdown, and State</title>
      <link>https://kfir-g.dev/blog/blogs/2025-12-25_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-4</link>
      <pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate>
      <description>
        Wrapping up advanced ASGI concepts with real-world FastAPI patterns. Focused insights on improving performance, middleware, and background tasks.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2025-12-25_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-4</guid>
    </item>

    <!-- Post 3 -->
    <item>
      <title>From Passive FastAPI Developer to Real FastAPI Engineer – Part 3: Middleware and Background Tasks</title>
      <link>https://kfir-g.dev/blog/blogs/2025-12-20_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-3</link>
      <pubDate>Fri, 20 Dec 2025 00:00:00 GMT</pubDate>
      <description>
        Exploring ASGI middleware, background tasks, and advanced request/response patterns in FastAPI. Learn how middleware intercepts requests and how background tasks enable non-blocking workloads.
      </description>
      <guid>https://kfir-g.dev/blog/blogs/2025-12-20_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-3</guid>
    </item>

    <!-- Post 2 -->
    <item>
      <title>From Passive FastAPI Developer to Real FastAPI Engineer - Part 2: Your First Raw ASGI App</title>
      <link>https://kfir-g.dev/blog/old-blogs/2025-12-08_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-2-c02de4a20dad</link>
      <pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate>
      <description>Continuing the series on FastAPI and ASGI. Advanced concepts, best practices, and performance tips.</description>
      <guid>https://kfir-g.dev/blog/old-blogs/2025-12-08_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-2-c02de4a20dad</guid>
    </item>

    <!-- Post 1 -->
    <item>
      <title>From Passive FastAPI Developer to Real FastAPI Engineer - Part 1</title>
      <link>https://kfir-g.dev/blog/old-blogs/2025-11-21_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-1--ASGI-059a588a54ae</link>
      <pubDate>Fri, 21 Nov 2025 00:00:00 GMT</pubDate>
      <description>Understanding ASGI by Breaking Down an HTTP Request. Learn how FastAPI uses ASGI for async web development.</description>
      <guid>https://kfir-g.dev/blog/old-blogs/2025-11-21_From-Passive-FastAPI-Developer-to-Real-FastAPI-Engineer--Part-1--ASGI-059a588a54ae</guid>
    </item>

  </channel>
</rss>