<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lessons on CZ Builds</title><link>https://cz-builds.github.io/blog/tags/lessons/</link><description>Recent content in Lessons on CZ Builds</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Sun, 12 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://cz-builds.github.io/blog/tags/lessons/index.xml" rel="self" type="application/rss+xml"/><item><title>I Built a Fully Automated AI Newsletter in 3 Days. Here's Why I'm Pivoting.</title><link>https://cz-builds.github.io/blog/post/pandabrief-retro/</link><pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate><guid>https://cz-builds.github.io/blog/post/pandabrief-retro/</guid><description>&lt;p&gt;Last week I built &lt;strong&gt;PandaBrief&lt;/strong&gt; — a fully automated daily newsletter that translates Chinese tech news into English. From RSS ingestion to LLM scoring to email delivery, zero human intervention required.&lt;/p&gt;
&lt;p&gt;The entire pipeline runs on GitHub Actions, costs $0/month, and handles everything from content curation to subscriber management to self-healing code fixes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Then I realized the product itself might not be worth building.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="what-i-built"&gt;What I Built
&lt;/h2&gt;&lt;p&gt;The system has 8 automated steps that run every day:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;RSS Fetch (16 sources) → LLM Scoring → Dedup → Translation → 
Quality Check → Render HTML → Send Email → Operator Report
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Tech stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Content pipeline&lt;/strong&gt;: Python + Groq/Gemini API (free tier, with auto-fallback)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hosting&lt;/strong&gt;: Cloudflare Pages + KV storage (free)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email&lt;/strong&gt;: Resend (free tier)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD&lt;/strong&gt;: GitHub Actions (free)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-fix&lt;/strong&gt;: LLM reads GitHub Issues → generates patches → opens PRs → emails me to review&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Total monthly cost: &lt;strong&gt;$0&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="the-interesting-engineering-problems"&gt;The Interesting Engineering Problems
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;LLM rate limits&lt;/strong&gt;: Groq&amp;rsquo;s free tier gives you 100K tokens/day. My pipeline burned through that in one run. Solution: built a provider fallback chain (Groq → Gemini → Zhipu) that automatically switches when one provider hits its limit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chinese character corruption&lt;/strong&gt;: When asking the LLM to output complete file contents for auto-fix PRs, it would corrupt Chinese characters in source configs (量子位 → 量种体). Solution: switched from &amp;ldquo;output the whole file&amp;rdquo; to &amp;ldquo;output search-and-replace patches&amp;rdquo; — the LLM copies exact text and only modifies the target section.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quality gate false positives&lt;/strong&gt;: The translation step uses full article text (3000 chars), but the quality checker only saw a 200-char snippet. It flagged 9/10 translations as &amp;ldquo;hallucinated&amp;rdquo; because it couldn&amp;rsquo;t find details that were actually in the full article. Solution: give the checker more context and tell it &amp;ldquo;the translator had access to the full article.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="why-im-pivoting"&gt;Why I&amp;rsquo;m Pivoting
&lt;/h2&gt;&lt;p&gt;The engineering was fun. But the product has fundamental problems:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Translation is no longer a moat.&lt;/strong&gt; In 2026, anyone can paste Chinese text into ChatGPT. A newsletter that translates is competing with a free, instant, universal tool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The audience doesn&amp;rsquo;t have a strong pain point.&lt;/strong&gt; &amp;ldquo;Staying updated on Chinese tech&amp;rdquo; is nice-to-have for Western devs, not must-have. Nobody&amp;rsquo;s workflow breaks without it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI Overviews are eating informational content.&lt;/strong&gt; Google&amp;rsquo;s AI Overviews now reduce click-through rates by 58% for informational queries. The trend is accelerating.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The Chinese AI narrative has a credibility problem.&lt;/strong&gt; Model distillation controversies, benchmark optimization concerns — the Western dev community is increasingly skeptical. Translating these stories doesn&amp;rsquo;t add trust, it just amplifies noise.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="what-i-actually-learned"&gt;What I Actually Learned
&lt;/h2&gt;&lt;p&gt;The project wasn&amp;rsquo;t a waste. I learned more in 3 days of building than in weeks of tutorials:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How to orchestrate multi-step LLM pipelines with fallback and retry logic&lt;/li&gt;
&lt;li&gt;Cloudflare Pages + KV as a zero-cost deployment platform&lt;/li&gt;
&lt;li&gt;GitHub Actions as a free cron + CI/CD system&lt;/li&gt;
&lt;li&gt;How to make LLMs generate safe, reviewable code changes (search-and-replace, not full rewrites)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most importantly: &lt;strong&gt;the ability to quickly build and ship automated systems is valuable, but it needs to be pointed at a real problem.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="whats-next"&gt;What&amp;rsquo;s Next
&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m an IC (integrated circuit) student with FPGA experience. The AI arms race everyone talks about is fundamentally a &lt;strong&gt;hardware&lt;/strong&gt; arms race. I&amp;rsquo;m going to explore the intersection of AI and hardware — starting with running neural network inference on my Zynq-7020 FPGA.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll document everything here. Follow along if you&amp;rsquo;re interested in where silicon meets intelligence.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;This is the first post on this blog. I&amp;rsquo;m building in public — sharing what I learn, build, and think about at the intersection of AI and hardware.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>