<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Harry Le · Blog</title><description>Notes from building backends, platforms and AI agent tooling.</description><link>https://nqcdan.com/</link><language>en</language><item><title>Running coding agents for hours without babysitting: notes on harness engineering</title><link>https://nqcdan.com/blog/agent-harness/</link><guid isPermaLink="true">https://nqcdan.com/blog/agent-harness/</guid><description>The guards, gates, loop detectors and state files I put around a coding agent so long background jobs stay safe, and what I could and could not verify.</description><pubDate>Wed, 11 Nov 2026 00:00:00 GMT</pubDate><category>ai-agents</category><category>claude-code</category><category>harness-engineering</category><category>developer-tools</category></item><item><title>Change data capture with Debezium and Kafka: what I learned running it in production</title><link>https://nqcdan.com/blog/cdc-debezium-kafka/</link><guid isPermaLink="true">https://nqcdan.com/blog/cdc-debezium-kafka/</guid><description>When CDC is worth it, the outbox pattern, and the traps I hit with slots, snapshots, ordering and duplicate events on PostgreSQL and SQL Server.</description><pubDate>Wed, 04 Nov 2026 00:00:00 GMT</pubDate><category>kafka</category><category>debezium</category><category>cdc</category><category>event-driven</category><category>postgresql</category></item><item><title>Building an MCP server so an LLM agent can read my inbox</title><link>https://nqcdan.com/blog/mcp-imap-server/</link><guid isPermaLink="true">https://nqcdan.com/blog/mcp-imap-server/</guid><description>How I wrapped IMAP in a small TypeScript MCP server: the tool design, where the safety line sits (drafts, never send), and what I would change.</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><category>mcp</category><category>typescript</category><category>email</category><category>ai-agents</category></item></channel></rss>