<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Zhe-You Liu's Developer Blog</title><link>https://blog.zhu424.dev/</link><description>Zhe-You Liu's Developer Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>jasonliu@apache.org (Jason(Zhe-You) Liu)</managingEditor><webMaster>jasonliu@apache.org (Jason(Zhe-You) Liu)</webMaster><copyright>© 2026 Jason(Zhe-You) Liu</copyright><lastBuildDate>Thu, 28 May 2026 11:51:30 +0800</lastBuildDate><atom:link href="https://blog.zhu424.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>What Apache CommunityOverCode Asia 2025 Revealed About Open Source and Data Infrastructure in Asia</title><link>https://blog.zhu424.dev/open-source-contribution/apache-coc-asia/</link><pubDate>Thu, 28 May 2026 11:51:30 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/apache-coc-asia/</guid><description>China&amp;rsquo;s localized data stack, streaming-first infrastructure, enterprise investment in open source, open governance, and lessons for Taiwan&amp;rsquo;s tech communities.</description><media:content url="https://blog.zhu424.dev/open-source-contribution/apache-coc-asia/featured.jpeg"/></item><item><title>How Large Open-Source Projects Build Efficient CI: Apache Airflow as a Case Study</title><link>https://blog.zhu424.dev/open-source-contribution/airflow-ci-selective-checks/</link><pubDate>Tue, 13 Jan 2026 11:46:19 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/airflow-ci-selective-checks/</guid><description>A deep dive into Airflow’s CI: Docker for reproducible environments, Breeze to unify local and CI workflows, and Selective Checks to run only the tests that matter.</description><media:content url="https://blog.zhu424.dev/open-source-contribution/airflow-ci-selective-checks/featured.png"/></item><item><title>PGMQ-SQLAlchemy 0.2.0 Release: Support ACID Transactions and FastAPI Integration</title><link>https://blog.zhu424.dev/backend/pgmq-sqlalchemy-0-2-0/</link><pubDate>Tue, 06 Jan 2026 00:00:00 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/backend/pgmq-sqlalchemy-0-2-0/</guid><description>PGMQ-SQLAlchemy 0.2.0 introduces support for ACID transactions, enabling developers to handle business logic and message queue operations within the same transaction, ensuring consistency and reliability of data and messages.</description><media:content url="https://blog.zhu424.dev/backend/pgmq-sqlalchemy-0-2-0/featured.png"/></item><item><title>LFX Mentorship: CNCF - Krkn: Chaos scenario rollback feature (2025 Term 2)</title><link>https://blog.zhu424.dev/open-source-contribution/lfx-mentorship-2025-cncf-krkn/</link><pubDate>Sun, 31 Aug 2025 14:21:21 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/lfx-mentorship-2025-cncf-krkn/</guid><description>Sharing my experience designing and implementing the chaos scenario rollback feature for the CNCF Krkn project during the LFX Mentorship, including technical solutions, collaboration with the Red Hat Chaos Engineering team, and insights from the application and participation process.</description><media:content url="https://blog.zhu424.dev/open-source-contribution/lfx-mentorship-2025-cncf-krkn/featured.png"/></item><item><title>Deep Dive into Apache Airflow's Dag Processing Mechanism</title><link>https://blog.zhu424.dev/open-source-contribution/dag-processing-in-apache-airflow/</link><pubDate>Sun, 20 Jul 2025 10:39:02 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/dag-processing-in-apache-airflow/</guid><description>This article provides an in-depth exploration of Airflow 2&amp;rsquo;s Dag Processing mechanism and summarizes best practices related to Dag Processing.</description><media:content url="https://blog.zhu424.dev/open-source-contribution/dag-processing-in-apache-airflow/featured.png"/></item><item><title>External Event Driven Scheduling in Airflow</title><link>https://blog.zhu424.dev/open-source-contribution/external-event-driven-scheduling-in-airflow/</link><pubDate>Fri, 27 Jun 2025 11:43:57 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/external-event-driven-scheduling-in-airflow/</guid><description>Exploring the AIP-82 External Event Driven Scheduling proposal in Airflow 3, the implementation details and use cases of the Common Message Queue, and how to enable real-time event-driven workflow scheduling in Airflow.</description><media:content url="https://blog.zhu424.dev/open-source-contribution/external-event-driven-scheduling-in-airflow/featured.png"/></item><item><title>Apache Airflow 101</title><link>https://blog.zhu424.dev/data-engineering/apache-airflow-101/</link><pubDate>Sat, 17 May 2025 15:18:17 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/data-engineering/apache-airflow-101/</guid><description>What is Apache Airflow? What problems does it solve? Understand its common use cases, architecture, and limitations.</description><media:content url="https://blog.zhu424.dev/data-engineering/apache-airflow-101/featured.png"/></item><item><title>Becoming an Apache Airflow Committer from 0</title><link>https://blog.zhu424.dev/open-source-contribution/becoming-an-apache-airflow-committer-from-0/</link><pubDate>Sat, 15 Mar 2025 00:33:28 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/becoming-an-apache-airflow-committer-from-0/</guid><description>How a Complete Beginner in Data Engineering Became an Apache Airflow Committer in 5 Months with 70+ PRs and 300 Hours of Contributions</description><media:content url="https://blog.zhu424.dev/open-source-contribution/becoming-an-apache-airflow-committer-from-0/featured.png"/></item><item><title>Contributing to Apache Airflow from 0</title><link>https://blog.zhu424.dev/open-source-contribution/contribute-apache-airflow-from-0/</link><pubDate>Sun, 02 Mar 2025 16:48:00 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/open-source-contribution/contribute-apache-airflow-from-0/</guid><description>How a beginner with no prior Data Engineering experience managed to contribute over 50 PRs in just 3 months</description><media:content url="https://blog.zhu424.dev/open-source-contribution/contribute-apache-airflow-from-0/featured.png"/></item><item><title>Push-based CLI Workflow on MacOS</title><link>https://blog.zhu424.dev/note/push-based-cli-workflow-on-macos/</link><pubDate>Fri, 28 Feb 2025 23:56:05 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/push-based-cli-workflow-on-macos/</guid><description>How to reduce context switching in CLI workflows on Mac through push-based notifications</description><media:content url="https://blog.zhu424.dev/note/push-based-cli-workflow-on-macos/featured.png"/></item><item><title>What is an Embedded Database? A brief introduction to RocksDB</title><link>https://blog.zhu424.dev/database/what-is-embedded-database/</link><pubDate>Wed, 12 Feb 2025 00:57:41 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/database/what-is-embedded-database/</guid><description>A brief introduction to Embedded Database and concept of RocksDB</description><media:content url="https://blog.zhu424.dev/database/what-is-embedded-database/feature.png"/></item><item><title>Life Is Short Use 'uv'</title><link>https://blog.zhu424.dev/note/life-is-short-use-uv/</link><pubDate>Tue, 24 Dec 2024 15:56:36 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/life-is-short-use-uv/</guid><description>How to use &lt;code&gt;uv&lt;/code&gt; to manage Python packages and projects</description><media:content url="https://blog.zhu424.dev/note/life-is-short-use-uv/featured.png"/></item><item><title>2024 Appier Summer Internship Reflection</title><link>https://blog.zhu424.dev/intern/appier-summer-intern/</link><pubDate>Tue, 01 Oct 2024 21:21:01 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/intern/appier-summer-intern/</guid><description>Reflection on my backend summer internship in the Data Platform department at Appier</description><media:content url="https://blog.zhu424.dev/intern/appier-summer-intern/featured.png"/></item><item><title>2024 Dcard Backend Intern Assignment</title><link>https://blog.zhu424.dev/backend/dcard-backend-intern-assignment-2024/</link><pubDate>Sat, 21 Sep 2024 21:52:52 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/backend/dcard-backend-intern-assignment-2024/</guid><description>2024 Dcard Backend Intern Assignment</description><media:content url="https://blog.zhu424.dev/backend/dcard-backend-intern-assignment-2024/featured.png"/></item><item><title>2024 TSMC Summer Intern Interview</title><link>https://blog.zhu424.dev/intern/summer-intern-interview-2024-tsmc/</link><pubDate>Fri, 20 Sep 2024 10:48:57 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/intern/summer-intern-interview-2024-tsmc/</guid><description>2024 TSMC Summer Intern Interview</description><media:content url="https://blog.zhu424.dev/intern/summer-intern-interview-2024-tsmc/featured.png"/></item><item><title>2024 Dcard Summer Intern Interview</title><link>https://blog.zhu424.dev/intern/summer-intern-interview-2024-dcard/</link><pubDate>Fri, 20 Sep 2024 10:48:53 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/intern/summer-intern-interview-2024-dcard/</guid><description>2024 Dcard Summer Intern Interview</description><media:content url="https://blog.zhu424.dev/intern/summer-intern-interview-2024-dcard/featured.png"/></item><item><title>2024 Appier Summer Intern Interview</title><link>https://blog.zhu424.dev/intern/summer-intern-interview-2024-appier/</link><pubDate>Fri, 20 Sep 2024 10:48:47 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/intern/summer-intern-interview-2024-appier/</guid><description>2024 Appier Summer Intern Interview</description><media:content url="https://blog.zhu424.dev/intern/summer-intern-interview-2024-appier/featured.png"/></item><item><title>2024 Software Summer Intern Interview</title><link>https://blog.zhu424.dev/intern/summer-intern-interview-2024/</link><pubDate>Thu, 19 Sep 2024 14:20:45 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/intern/summer-intern-interview-2024/</guid><description>2024 Software Summer Intern Interview - Appier / Dcard / TSMC</description><media:content url="https://blog.zhu424.dev/intern/summer-intern-interview-2024/featured.png"/></item><item><title>Resolve `psycopg2` Install Error on MacOS</title><link>https://blog.zhu424.dev/note/resolve-psycopy2-install-error-on-macos/</link><pubDate>Fri, 13 Sep 2024 15:48:30 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/resolve-psycopy2-install-error-on-macos/</guid><description>Resolve &lt;code&gt;psycopg2&lt;/code&gt; Install Error on MacOS</description><media:content url="https://blog.zhu424.dev/note/resolve-psycopy2-install-error-on-macos/featured.png"/></item><item><title>Why Choose PGMQ? Implementing ACID Transactional Message Queues in PostgreSQL</title><link>https://blog.zhu424.dev/backend/pgmq-docker-compose/</link><pubDate>Wed, 03 Jul 2024 21:46:28 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/backend/pgmq-docker-compose/</guid><description>When your architecture only involves Postgres, why introduce an additional MQ? This article explores the advantages of PGMQ for lightweight asynchronous tasks, teaches you how to deploy it quickly with Docker, and integrates it into Python projects.</description><media:content url="https://blog.zhu424.dev/backend/pgmq-docker-compose/featured.png"/></item><item><title>Hugo Functions: Get Slice From Specific Range</title><link>https://blog.zhu424.dev/note/hugo-functions-get-slice-from-specific-range/</link><pubDate>Sat, 22 Jun 2024 22:06:42 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/hugo-functions-get-slice-from-specific-range/</guid><description>How to get a slice from a specific range in Hugo?</description><media:content url="https://blog.zhu424.dev/note/hugo-functions-get-slice-from-specific-range/featured.png"/></item><item><title>Redis Persistence: RDB and AOF</title><link>https://blog.zhu424.dev/database/redis-persistence-rdb-aof/</link><pubDate>Tue, 18 Jun 2024 23:10:43 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/database/redis-persistence-rdb-aof/</guid><description>Detailed explanation of Redis persistence settings: RDB and AOF. Pros and cons of RDB and AOF. Detailed implementation with Redis source code.</description><media:content url="https://blog.zhu424.dev/database/redis-persistence-rdb-aof/featured.png"/></item><item><title>How to use Transaction in SqlAlchemy</title><link>https://blog.zhu424.dev/note/sqlalchemy-transaction/</link><pubDate>Sun, 16 Jun 2024 22:12:17 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/sqlalchemy-transaction/</guid><description>How to transaction in SqlAlchemy</description><media:content url="https://blog.zhu424.dev/note/sqlalchemy-transaction/featured.png"/></item><item><title>Python: Read File(BinaryIO) Multiple Time</title><link>https://blog.zhu424.dev/note/python-read-file-multiple-time/</link><pubDate>Fri, 14 Jun 2024 23:43:15 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/python-read-file-multiple-time/</guid><description>Read file (&lt;code&gt;BinaryIO&lt;/code&gt;) multiple time in Python. Solution to prevent empty content in the second read.</description><media:content url="https://blog.zhu424.dev/note/python-read-file-multiple-time/featured.png"/></item><item><title>PgBouncer: Lightweight Postgres Connection Pool</title><link>https://blog.zhu424.dev/database/pgbouncer/</link><pubDate>Sun, 09 Jun 2024 11:36:24 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/database/pgbouncer/</guid><description>Solving Django backend DB connection overload with PgBouncer</description><media:content url="https://blog.zhu424.dev/database/pgbouncer/featured.png"/></item><item><title>Cloudflare Tunnel</title><link>https://blog.zhu424.dev/note/cloudflare-tunnel/</link><pubDate>Tue, 28 May 2024 17:27:04 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/cloudflare-tunnel/</guid><description>Setup Cloudflare Tunnel for NAT, an alternative to Ngrok</description><media:content url="https://blog.zhu424.dev/note/cloudflare-tunnel/featured.png"/></item><item><title>Tmux Cheat Sheet</title><link>https://blog.zhu424.dev/note/tmux/</link><pubDate>Tue, 28 May 2024 16:44:08 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/tmux/</guid><description>Common tmux commands Cheat Sheet</description><media:content url="https://blog.zhu424.dev/note/tmux/featured.png"/></item><item><title>FastAPI: Mock S3 with Moto</title><link>https://blog.zhu424.dev/backend/k8s-fastapi-mock-boto3-s3-with-moto/</link><pubDate>Tue, 28 May 2024 15:47:01 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/backend/k8s-fastapi-mock-boto3-s3-with-moto/</guid><description>FastAPI Testing: Mock AWS S3 Boto3 With Moto</description><media:content url="https://blog.zhu424.dev/backend/k8s-fastapi-mock-boto3-s3-with-moto/featured.jpeg"/></item><item><title>k8s: Extract Configmap or Secret to Env File</title><link>https://blog.zhu424.dev/devops/k8s-extract-configmap-or-secret-to-env-file/</link><pubDate>Tue, 28 May 2024 14:39:15 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/devops/k8s-extract-configmap-or-secret-to-env-file/</guid><description>Kubernetes Cheat Sheet: Extract ConfigMap or Secret to .env file</description><media:content url="https://blog.zhu424.dev/devops/k8s-extract-configmap-or-secret-to-env-file/featured.svg"/></item><item><title>NCKU CSIE Freshman First Semester</title><link>https://blog.zhu424.dev/note/csie-freshman-first-semester/</link><pubDate>Fri, 23 Jun 2023 15:32:12 +0800</pubDate><author>jasonliu@apache.org (Jason(Zhe-You) Liu)</author><guid isPermaLink="true">https://blog.zhu424.dev/note/csie-freshman-first-semester/</guid><description>What did I do in the first semester of freshman year?</description><media:content url="https://blog.zhu424.dev/note/csie-freshman-first-semester/featured.png"/></item></channel></rss>