<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[Tôi là Duyệt]]></title>
        <description><![CDATA[Sr. Data Engineer. Rustacean at night]]></description>
        <link>https://blog.duyet.net</link>
        <generator>RSS for Node</generator>
        <lastBuildDate>Sun, 11 Oct 2026 13:46:50 GMT</lastBuildDate>
        <atom:link href="https://blog.duyet.net/rss.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Herdr]]></title>
            <description><![CDATA[I landed 1000+ PRs this week, and this is how I use Herdr these days to achieve that.]]></description>
            <link>https://blog.duyet.net/2026/10/herdr</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/10/herdr</guid>
            <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[I don't read code anymore]]></title>
            <description><![CDATA[It's been a year or two. Disagree or debate me all you want, but soon you'll realize and admit I was right.]]></description>
            <link>https://blog.duyet.net/2026/09/i-dont-read-code-anymore</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/09/i-dont-read-code-anymore</guid>
            <pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Grok Bot]]></title>
            <description><![CDATA[I am on SuperGrok Heavy because of Grok Bot and I am super impressed. Wow, from me, at first. The harness is surprisingly good. The UI/UX is surprisingly good.]]></description>
            <link>https://blog.duyet.net/2026/08/grok-bot</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/08/grok-bot</guid>
            <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[I am building anyrouter.dev]]></title>
            <description><![CDATA[I am building AnyRouter to solve my problem of collecting free LLM tokens from everywhere and unifying the MCP Gateway. Yes, it's another router, but this is a router of routers.]]></description>
            <link>https://blog.duyet.net/2026/07/anyrouter</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/07/anyrouter</guid>
            <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Open Managed Agents]]></title>
            <description><![CDATA[I'm building Open Managed Agents (OMA) in the open — a self-hosted control plane on Cloudflare that drives agents on any sandbox backend from one UI and one API, and stays compatible with the Claude Managed Agents API. Here's where it stands.]]></description>
            <link>https://blog.duyet.net/2026/07/open-managed-agents</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/07/open-managed-agents</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Agent Sandbox on Kubernetes]]></title>
            <description><![CDATA[I run Claude inside agent sandboxes on a home Kubernetes cluster. One consumes issue tickets into PRs, another triggers on Sentry webhooks to diagnose and patch runtime bugs. Here is the bigger loop, and where the new Kubernetes Agent Sandbox CRD fits.]]></description>
            <link>https://blog.duyet.net/2026/06/agent-sandbox-on-kubernetes</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/06/agent-sandbox-on-kubernetes</guid>
            <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Goal and Loop]]></title>
            <description><![CDATA[You've probably heard of the agent loop by now. This is just a quick note on how I actually use it day to day — a `goal` and a `loop` — to get a lot more shipped.]]></description>
            <link>https://blog.duyet.net/2026/06/goal-and-loop</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/06/goal-and-loop</guid>
            <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Cowork as Planner]]></title>
            <description><![CDATA[Using Claude Cowork as vision planner and market research]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/cowork-planner</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/cowork-planner</guid>
            <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Autonomous Claude Code Migrate Nextjs to Tanstack Start]]></title>
            <description><![CDATA[The second ultrawork run: I asked Claude Code to migrate chmonitor.dev from Next.js to TanStack Start and went to sleep. It planned the work, spawned parallel agents, and kept going for days.]]></description>
            <link>https://blog.duyet.net/2026/06/migrate-tanstack</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/06/migrate-tanstack</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Letting Claude Code work overnight, 2026]]></title>
            <description><![CDATA[A quick snapshot of where coding agents are in 2026: you can hand one a real, multi-part task, walk away, and come back to merged PRs, a live deploy, and a few issues it worked around on its own.]]></description>
            <link>https://blog.duyet.net/2026/06/coding-agent-2026</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/06/coding-agent-2026</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Cloudflare is all you need]]></title>
            <description><![CDATA[Cloudflare's Agents SDK runs stateful TypeScript agents on Durable Objects, with Workers AI, AI Gateway, AI Search, Vectorize, Browser Run, Queues, Workflows, Email, Dynamic Workers, and Sandboxes around it. Plus Flue, the open agent harness from the Astro team Cloudflare acquired.]]></description>
            <link>https://blog.duyet.net/2026/05/cloudflare-is-all-you-need</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/05/cloudflare-is-all-you-need</guid>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Claws]]></title>
            <description><![CDATA[OpenClaw, NanoBot, PicoClaw, ZeroClaw, NullClaw, NemoClaw, ...]]></description>
            <link>https://blog.duyet.net/2026/02/claws</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/02/claws</guid>
            <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Claude Code]]></title>
            <description><![CDATA[Why Claude Code is still the king among coding agents I've tried]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/claude-code</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/claude-code</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Claude Code Setup]]></title>
            <description><![CDATA[How I configure Claude Code - auto-compact, permissions, MCPs, and skills]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/claude-code-setup</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/claude-code-setup</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Claude Design]]></title>
            <description><![CDATA[Claude Design reads your codebase and builds a design system from your colors and typography]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/claude-design</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/claude-design</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[CLAUDE.md, AGENTS.md]]></title>
            <description><![CDATA[Keep your coding agent's project instructions consistent across sessions]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/claude-md-agents-md</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/claude-md-agents-md</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Coding Agents]]></title>
            <description><![CDATA[Reflect on what I'm thinking and doing in this LLM era]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[duyet/claude-plugins]]></title>
            <description><![CDATA[A collection of plugins, skills, MCPs, commands, and hooks I use for Claude Code]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/duyet-claude-plugins</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/duyet-claude-plugins</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Interview Mode]]></title>
            <description><![CDATA[Ask clarifying questions before planning complex tasks]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/interview-mode</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/interview-mode</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Long-running and self-improving coding agent]]></title>
            <description><![CDATA[Build a long-running autonomous coding agent that runs 24/7]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/long-running-agent</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/long-running-agent</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[opencode]]></title>
            <description><![CDATA[A coding agent with nice UI/UX that consolidates all your subscriptions]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/opencode</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/opencode</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Parallel Sub-Agents / Teams]]></title>
            <description><![CDATA[Lead a team of parallel agents with leader delegation to senior and junior roles]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/parallel-sub-agents</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/parallel-sub-agents</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Plan Mode]]></title>
            <description><![CDATA[Plan mode performs significantly better than just prompting directly]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/plan-mode</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/plan-mode</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[z_claude, mi_claude & or_claude]]></title>
            <description><![CDATA[Wrapper scripts to use Claude Code with alternative providers]]></description>
            <link>https://blog.duyet.net/2026/01/coding-agent/z-claude-mi-claude-or-claude</link>
            <guid isPermaLink="true">https://blog.duyet.net/2026/01/coding-agent/z-claude-mi-claude-or-claude</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ClickHouse Rust UDFs]]></title>
            <description><![CDATA[In Data Platform System with ClickHouse, rather than extracting data from ClickHouse for processing in external systems, we can perform transformations directly within ClickHouse itself. ClickHouse can call any external executable program or script to process data. My idea is using custom **User-Defined Functions (UDFs) written in Rust** to handle data transformations between tables.]]></description>
            <link>https://blog.duyet.net/2024/11/clickhouse-rust-udf</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/11/clickhouse-rust-udf</guid>
            <pubDate>Fri, 01 Nov 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ReplicatedReplacingMergeTree]]></title>
            <description><![CDATA[Learn how to set up and manage ReplicatedReplacingMergeTree in ClickHouse on Kubernetes. This comprehensive guide covers cluster setup with ClickHouse Operator, data replication, performance tuning, and best practices for high availability deployments.]]></description>
            <link>https://blog.duyet.net/2024/06/clickhouse-replicatedreplacingmergetree</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/06/clickhouse-replicatedreplacingmergetree</guid>
            <pubDate>Sun, 23 Jun 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ReplacingMergeTree]]></title>
            <description><![CDATA[My favorite ClickHouse table engine is `ReplacingMergeTree`. The main reason is that it is similar to `MergeTree` but can automatically deduplicate based on columns in the `ORDER BY` clause, which is very useful.]]></description>
            <link>https://blog.duyet.net/2024/06/clickhouse-replacingmergetree</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/06/clickhouse-replacingmergetree</guid>
            <pubDate>Sat, 01 Jun 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[MergeTree]]></title>
            <description><![CDATA[After starting this series ClickHouse on Kubernetes, you can now configure your first single-node ClickHouse server. Let's dive into creating your first table and understanding the basic concepts behind the ClickHouse engine, its data storage, and some cool features]]></description>
            <link>https://blog.duyet.net/2024/05/clickhouse-mergetree</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/05/clickhouse-mergetree</guid>
            <pubDate>Fri, 31 May 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Monitoring ClickHouse on Kubernetes]]></title>
            <description><![CDATA[Complete guide to monitoring ClickHouse on Kubernetes. Learn about built-in dashboards, Prometheus + Grafana setup, powerful system tables for monitoring queries, and the ClickHouse Monitoring UI dashboard. Includes practical examples, essential monitoring queries, and best practices for production observability.]]></description>
            <link>https://blog.duyet.net/2024/03/clickhouse-monitoring</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/03/clickhouse-monitoring</guid>
            <pubDate>Wed, 27 Mar 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ClickHouse SELECT Advances]]></title>
            <description><![CDATA[Dynamic column selection (also known as a `COLUMNS` expression) allows you to match some columns in a result with a re2 regular expression.]]></description>
            <link>https://blog.duyet.net/2024/03/clickhouse-select-advances</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/03/clickhouse-select-advances</guid>
            <pubDate>Tue, 26 Mar 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[ClickHouse on Kubernetes]]></title>
            <description><![CDATA[Complete guide to deploying ClickHouse on Kubernetes using the Altinity ClickHouse Operator. Learn how to set up your first single-node cluster, configure persistent storage, manage users, and customize ClickHouse versions. Includes practical examples and best practices from production experience managing clusters with trillions of rows.]]></description>
            <link>https://blog.duyet.net/2024/03/clickhouse-on-kubernetes</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/03/clickhouse-on-kubernetes</guid>
            <pubDate>Wed, 13 Mar 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[2023 - A Year of Moving]]></title>
            <description><![CDATA[So, I hadn't really planned on writing a summary post for this year, as lazy as I am, but somehow, here we are.]]></description>
            <link>https://blog.duyet.net/2024/02/2023-summary</link>
            <guid isPermaLink="true">https://blog.duyet.net/2024/02/2023-summary</guid>
            <pubDate>Fri, 09 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Rust: Processing JSON with serde]]></title>
            <description><![CDATA[Serialize and deserialize JSON in Rust using serde and serde_json — derive macros, field attributes, enum representations, file I/O, dynamic values, and error handling.]]></description>
            <link>https://blog.duyet.net/2023/10/rust-json-serde</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/10/rust-json-serde</guid>
            <pubDate>Sun, 15 Oct 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Apache OpenDAL in Rust to Access Any Kind of Data Services]]></title>
            <description><![CDATA[OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way such as S3, FTP, FS, Google Drive, HDFS, etc. They has been rewritten in Rust for the Core and have a binding from many various language like Python, Node.js, C, etc..]]></description>
            <link>https://blog.duyet.net/2023/09/opendal</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/09/opendal</guid>
            <pubDate>Sat, 09 Sep 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[My Neovim Setup in 2023]]></title>
            <description><![CDATA[It's been years since I first started using neovim and I've been updating it regularly ever since.]]></description>
            <link>https://blog.duyet.net/2023/09/nvim-setup-2023</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/09/nvim-setup-2023</guid>
            <pubDate>Mon, 04 Sep 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[DuckDB]]></title>
            <description><![CDATA[In this post, I want to explore the features and capabilities of DuckDB, an open-source, in-process SQL OLAP database management system written in C++11 that has been gaining popularity recently. According to what people have said, DuckDB is designed to be easy to use and flexible, allowing you to run complex queries on relational datasets using either local, file-based DuckDB instances or the cloud service MotherDuck.]]></description>
            <link>https://blog.duyet.net/2023/09/duckdb</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/09/duckdb</guid>
            <pubDate>Sun, 03 Sep 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Airflow control the parallelism and concurrency (draw)]]></title>
            <description><![CDATA[How to control parallelism and concurrency]]></description>
            <link>https://blog.duyet.net/2023/07/airflow-control-parallelism-concurrency</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/07/airflow-control-parallelism-concurrency</guid>
            <pubDate>Sun, 16 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Fossil Data Platform Rewritten in Rust 🦀]]></title>
            <description><![CDATA[My data engineering team at Fossil recently released some of Rust-based components of our Data Platform after faced performance and maintenance challenges of the old Python codebase. I would like to share the insights and lessons learned during the process of migrating Fossil's Data Platform from Python to Rust.]]></description>
            <link>https://blog.duyet.net/2023/06/fossil-data-platform-written-rust</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/06/fossil-data-platform-written-rust</guid>
            <pubDate>Sun, 18 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Running Spark in GitHub Actions]]></title>
            <description><![CDATA[This post provides a quick and easy guide on how to run Apache Spark in GitHub Actions for testing purposes]]></description>
            <link>https://blog.duyet.net/2023/05/spark-github-actions</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/05/spark-github-actions</guid>
            <pubDate>Sun, 07 May 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Migrate (again) to Next.js 13 Pro Max]]></title>
            <description><![CDATA[I've been using Gatsby since 2019 and while it's great that I can write my blogs in NeoVim, commit and push to Github, and have Cloudflare Pages build and publish to CDN, but I was becoming frustrated with the slow building times and the overall maintenance requirements.]]></description>
            <link>https://blog.duyet.net/2023/05/migrate-blog-to-nextjs</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/05/migrate-blog-to-nextjs</guid>
            <pubDate>Mon, 01 May 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why does Helm Charts interpret 0777 as 511?]]></title>
            <description><![CDATA[Why does Helm Charts interpret 0777 to 511? It took me quite some time to debug it.]]></description>
            <link>https://blog.duyet.net/2023/04/helm-charts-problem</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/04/helm-charts-problem</guid>
            <pubDate>Sat, 15 Apr 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[GPT vs Traditional NLP Models]]></title>
            <description><![CDATA[The field of Natural Language Processing (NLP) has seen remarkable advancements in recent years, and the emergence of the Generative Pre-trained Transformer (GPT) has revolutionized the way NLP models operate. GPT is a cutting-edge language model that employs deep learning to generate human-like text. Unlike conventional NLP models, which required extensive training on specific tasks, GPT is pre-trained on vast amounts of data and can be fine-tuned for various NLP tasks]]></description>
            <link>https://blog.duyet.net/2023/04/nlp-vs-gpt</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/04/nlp-vs-gpt</guid>
            <pubDate>Sat, 01 Apr 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Ask ChatGPT about 20 important concepts of Apache Spark]]></title>
            <description><![CDATA[I asked ChatGPT to explain 20 important concepts of Apache Spark. Let's see what it has to say!]]></description>
            <link>https://blog.duyet.net/2023/02/ask-chatgpt-spark</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/02/ask-chatgpt-spark</guid>
            <pubDate>Sun, 26 Feb 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Rust Data Engineering: Processing Dataframes with Polars]]></title>
            <description><![CDATA[If you're interested in data engineering with Rust, you might want to check out Polars, a Rust DataFrame library with Pandas-like API.]]></description>
            <link>https://blog.duyet.net/2023/02/rust-polars</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/02/rust-polars</guid>
            <pubDate>Sun, 19 Feb 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Data Engineering Tools written in Rust]]></title>
            <description><![CDATA[This blog post will provide an overview of the data engineering tools available in Rust, their advantages and benefits, as well as a discussion on why Rust is a great choice for data engineering.]]></description>
            <link>https://blog.duyet.net/2023/01/data-engineering-rust-tools</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/01/data-engineering-rust-tools</guid>
            <pubDate>Sun, 22 Jan 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why ClickHouse Should Be the Go-To Choice for Your Next Data Platform?]]></title>
            <description><![CDATA[Recently, I was working on building a new Logs dashboard at Fossil to serve our internal team for log retrieval, and I found ClickHouse to be a very interesting and fast engine for this purpose. In this post, I'll share my experience with using ClickHouse as the foundation of a light-weight data platform and how it compares to another popular choice, Athena. We'll also explore how ClickHouse can be integrated with other tools such as Kafka to create a robust and efficient data pipeline.]]></description>
            <link>https://blog.duyet.net/2023/01/clickhouse</link>
            <guid isPermaLink="true">https://blog.duyet.net/2023/01/clickhouse</guid>
            <pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Airflow Dataset (Data-aware scheduling)]]></title>
            <description><![CDATA[Airflow since 2.4, in addition to scheduling DAGs based upon time, they can also be scheduled based upon a task updating a dataset. This will change the way you schedule DAGs.]]></description>
            <link>https://blog.duyet.net/2022/09/airflow-dataset</link>
            <guid isPermaLink="true">https://blog.duyet.net/2022/09/airflow-dataset</guid>
            <pubDate>Tue, 27 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Cargo: Patch Dependencies]]></title>
            <description><![CDATA[There are several scenarios when you will need to override or patch upstream dependencies. Like testing a bugfix of your crates before pushing to crates.io, a non-working upstream crate has a new feature or a bug fix on the master branch of its git repository that you'd want to try, etc. In these cases, the [patch] section of Cargo.toml might be useful.]]></description>
            <link>https://blog.duyet.net/2022/09/cargo-patch-deps</link>
            <guid isPermaLink="true">https://blog.duyet.net/2022/09/cargo-patch-deps</guid>
            <pubDate>Sat, 24 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Cargo: workspace inheritance]]></title>
            <description><![CDATA[Since 1.64.0, Cargo now supports workspace inheritance, so you can avoid duplicating similar field values between crates while working within a workspace. Workspace inheritance can include things like shared version numbers, repository URLs, or rust-version.]]></description>
            <link>https://blog.duyet.net/2022/09/cargo-workspace-inheritance</link>
            <guid isPermaLink="true">https://blog.duyet.net/2022/09/cargo-workspace-inheritance</guid>
            <pubDate>Sat, 24 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Rust: Why ? is good]]></title>
            <description><![CDATA[In Rust, the question mark (?) operator is used as an alternate error propagation method for functions that yield Result or Option types. The ? operator is a shortcut that minimizes the amount of code required in a function to quickly return Err or None from the types Result<T, Err>, or Option.]]></description>
            <link>https://blog.duyet.net/2022/09/rust-question-mark-operator</link>
            <guid isPermaLink="true">https://blog.duyet.net/2022/09/rust-question-mark-operator</guid>
            <pubDate>Sat, 24 Sep 2022 00:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>