<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://blog.fnil.net/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;blog.fnil.net</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>Think and Act as One</tabi:current_section>
    </tabi:metadata><title>Think and Act as One</title>
        <subtitle>CEO &amp; Founder of Greptime. Writing about systems, distributed computing, AI &amp; Programming.</subtitle>
    <link href="https://blog.fnil.net/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://blog.fnil.net" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2026-09-02T00:00:00+00:00</updated><id>https://blog.fnil.net/atom.xml</id><entry xml:lang="en">
        <title>LLMs Already Understand Observability. What Is Left for the Database?</title>
        <published>2026-09-02T00:00:00+00:00</published>
        <updated>2026-09-02T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/what-is-left-for-the-database/" type="text/html"/>
        <id>https://blog.fnil.net/what-is-left-for-the-database/</id>
        <summary type="html">The last post in this series. The time for unified observability has come, so what should a database actually do about it? My answer is probably smaller than you expect, and &quot;doing less&quot; is what I arrived at after thinking it through.</summary>
        </entry><entry xml:lang="en">
        <title>Twenty Years of S3: How It Became the Default Persistence Layer for Modern Data Infrastructure</title>
        <published>2026-08-20T00:00:00+00:00</published>
        <updated>2026-08-20T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/s3-at-twenty/" type="text/html"/>
        <id>https://blog.fnil.net/s3-at-twenty/</id>
        <summary type="html">S3 launched twenty years ago as a simple object store with eventual consistency. Strong consistency, conditional writes, and Express One Zone turned it into the durable source of truth for warehouses, streaming systems, databases, and now Git hosting.</summary>
        </entry><entry xml:lang="en">
        <title>Bigtable at Twenty: What Stayed and What Got Rebuilt</title>
        <published>2026-07-31T00:00:00+00:00</published>
        <updated>2026-07-31T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/bigtable-at-twenty/" type="text/html"/>
        <id>https://blog.fnil.net/bigtable-at-twenty/</id>
        <summary type="html">SIGMOD Companion &#x27;26 has a 13-page paper by 50+ Google authors revisiting Bigtable two decades on. 10 EB, 7 billion QPS, and an architecture that barely moved. This is my reading of why.</summary>
        </entry><entry xml:lang="en">
        <title>Why Now: The Eight-Year Wait for Unified Observability</title>
        <published>2026-07-16T00:00:00+00:00</published>
        <updated>2026-07-16T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/observability-unification-why-now/" type="text/html"/>
        <id>https://blog.fnil.net/observability-unification-why-now/</id>
        <summary type="html">An idea someone had fully worked out back in 2018, yet it took eight years before it could actually be built. This piece is about one thing: why now.</summary>
        </entry><entry xml:lang="en">
        <title>When Agents Go to Production: What Actually Breaks</title>
        <published>2026-07-09T00:00:00+00:00</published>
        <updated>2026-07-09T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/when-agents-go-to-production/" type="text/html"/>
        <id>https://blog.fnil.net/when-agents-go-to-production/</id>
        <summary type="html">When agents go to production, they break the four assumptions today&#x27;s infrastructure was built on: deterministic, human-driven, request-response, stateless. A first-principles walk through what actually breaks.</summary>
        </entry><entry xml:lang="en">
        <title>I Burned 23 Billion Tokens to &quot;Rewrite&quot; Langfuse</title>
        <published>2026-06-26T00:00:00+00:00</published>
        <updated>2026-06-26T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/openfuse-23-billion-tokens/" type="text/html"/>
        <id>https://blog.fnil.net/openfuse-23-billion-tokens/</id>
        <summary type="html">A migration retro: forking Langfuse to swap its analytics store from ClickHouse to GreptimeDB, run mostly by two AI agents. Most of the work was paying down the debt of one decision — make a single database both the source of truth and the analytics layer.</summary>
        </entry><entry xml:lang="en">
        <title>The Three Pillars of Observability: The Unification That Never Quite Arrived</title>
        <published>2026-06-16T00:00:00+00:00</published>
        <updated>2026-06-16T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/observability-unification-history/" type="text/html"/>
        <id>https://blog.fnil.net/observability-unification-history/</id>
        <summary type="html">Part 1 was about how the three pillars split apart. This part is about how many smart people, starting in 2018, tried to put them back together — what they actually built, and why none of it quite reached the finish line.</summary>
        </entry><entry xml:lang="en">
        <title>The Three Pillars of Observability: A History No One Planned</title>
        <published>2026-06-10T00:00:00+00:00</published>
        <updated>2026-06-10T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/observability-three-pillars-history/" type="text/html"/>
        <id>https://blog.fnil.net/observability-three-pillars-history/</id>
        <summary type="html">Today we treat metrics, logging, and tracing as the natural structure of observability. But it wasn&#x27;t designed; it grew. Part 1, on how it split apart (2010–2017).</summary>
        </entry><entry xml:lang="en">
        <title>When Systems Turn Uncertain: How Datadog Sees Observability in the AI Era</title>
        <published>2026-05-31T00:00:00+00:00</published>
        <updated>2026-05-31T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/datadog-ai-observability/" type="text/html"/>
        <id>https://blog.fnil.net/datadog-ai-observability/</id>
        <summary type="html">Datadog&#x27;s Investor Day deck quietly redefines observability: the object of observation turns probabilistic, AI agents become operators, and the reader of the data shifts from human to model.</summary>
        </entry><entry xml:lang="en">
        <title>TMA1 v2: Making the Agent Loop actually loop</title>
        <published>2026-05-23T00:00:00+00:00</published>
        <updated>2026-05-23T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/tma1-v2-agent-loop/" type="text/html"/>
        <id>https://blog.fnil.net/tma1-v2-agent-loop/</id>
        <summary type="html">TMA1 v2 adds an MCP server, enhanced hooks that auto-inject build&#x2F;session&#x2F;anomaly context, and cross-agent context sharing between Claude Code and Codex.</summary>
        </entry><entry xml:lang="en">
        <title>Observing my coding agents without leaving localhost</title>
        <published>2026-03-18T00:00:00+00:00</published>
        <updated>2026-03-18T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/local-observability-tool-for-coding-agents/" type="text/html"/>
        <id>https://blog.fnil.net/local-observability-tool-for-coding-agents/</id>
        <summary type="html">TMA1: a local observability tool for AI coding agents with full session trace, tool decision breakdown, latency tracking, and SQL-queryable storage.</summary>
        </entry><entry xml:lang="en">
        <title>Six Ways to Make Your Infrastructure Agent-Friendly</title>
        <published>2026-03-05T00:00:00+00:00</published>
        <updated>2026-03-05T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/agent-friendly-infrastructure/" type="text/html"/>
        <id>https://blog.fnil.net/agent-friendly-infrastructure/</id>
        <summary type="html">Have we been building infrastructure for humans this whole time, without ever treating agents as users? Six principles for agent-friendly infrastructure, rooted in Unix philosophy.</summary>
        </entry><entry xml:lang="en">
        <title>Is Database MCP Just Unnecessary Overhead?</title>
        <published>2026-01-20T00:00:00+00:00</published>
        <updated>2026-01-20T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/database-mcp-unnecessary/" type="text/html"/>
        <id>https://blog.fnil.net/database-mcp-unnecessary/</id>
        <summary type="html">My colleague called Database MCP &#x27;pulling your pants down to fart.&#x27; After thinking about it, I mostly agree—but we built one anyway.</summary>
        </entry><entry xml:lang="en">
        <title>My AI Coding Experience: Three Principles</title>
        <published>2025-12-17T00:00:00+00:00</published>
        <updated>2025-12-17T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/vibe-coding-experience/" type="text/html"/>
        <id>https://blog.fnil.net/vibe-coding-experience/</id>
        <summary type="html">AI Coding doesn&#x27;t fundamentally make you a better programmer. It&#x27;s an amplifier—amplifying your strengths and your weaknesses.</summary>
        </entry><entry xml:lang="en">
        <title>Using AI ≠ AI Native: What It Really Means to Transform How Teams Work</title>
        <published>2025-12-11T00:00:00+00:00</published>
        <updated>2025-12-11T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/ai-native-team/" type="text/html"/>
        <id>https://blog.fnil.net/ai-native-team/</id>
        <summary type="html">The difference between using AI as a tool you pick up occasionally versus treating AI as infrastructure you don&#x27;t know how to work without.</summary>
        </entry><entry xml:lang="en">
        <title>Rethinking Software Design Principles in the Age of Vibe Coding</title>
        <published>2025-11-28T00:00:00+00:00</published>
        <updated>2025-11-28T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/vibe-coding-principles/" type="text/html"/>
        <id>https://blog.fnil.net/vibe-coding-principles/</id>
        <summary type="html">When AI can rewrite an entire module in seconds, do the design principles built for &#x27;humans maintaining code&#x27; still apply?</summary>
        </entry><entry xml:lang="en">
        <title>The AI Productivity Divide: From 10x to 100x Engineers</title>
        <published>2025-11-27T00:00:00+00:00</published>
        <updated>2025-11-27T00:00:00+00:00</updated>
        <author>
            <name>Dennis Zhuang</name>
        </author>
        <link rel="alternate" href="https://blog.fnil.net/100x-engineer/" type="text/html"/>
        <id>https://blog.fnil.net/100x-engineer/</id>
        <summary type="html">AI&#x27;s real value isn&#x27;t in producing the final output—it&#x27;s in creating Builders. Whether you can create Builders is what separates the 2x from the 100x.</summary>
        </entry>
</feed>
