<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Jieun</title><description>deserve what you want</description><link>https://jieun.dev/</link><item><title>From a No-Traffic Startup to Global Scale: An Inversion Checklist</title><link>https://jieun.dev/en/blog/no-traffic-startup-to-global-scale-an-inversion-checklist/</link><guid isPermaLink="true">https://jieun.dev/en/blog/no-traffic-startup-to-global-scale-an-inversion-checklist/</guid><description>How do you get from a small no-traffic company to a global-scale service? Don&apos;t ask &quot;how do I get there&quot; — ask &quot;how do I guarantee I stay stuck.&quot; Six traps, each as problem → fix.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Designing a Generation Pipeline — A 4-Axis Content Model, Queue-Based Scheduling, 3-Layer Attribution</title><link>https://jieun.dev/en/blog/designing-a-generation-pipeline-a-4-axis-content-model-queue-based-scheduling-3-layer-attribution/</link><guid isPermaLink="true">https://jieun.dev/en/blog/designing-a-generation-pipeline-a-4-axis-content-model-queue-based-scheduling-3-layer-attribution/</guid><description>Part 2 of an engineering log on building a Threads marketing agent: a content model decomposed into four axes, an idempotent publish worker, and 3-layer attribution where 90% of clicks were bots.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Designing a Crawler That Beats Three Tiers of Anti-Bot — From TLS Fingerprints to CDP Detection</title><link>https://jieun.dev/en/blog/designing-a-crawler-that-beats-three-tiers-of-anti-bot-from-tls-fingerprints-to-cdp-detection/</link><guid isPermaLink="true">https://jieun.dev/en/blog/designing-a-crawler-that-beats-three-tiers-of-anti-bot-from-tls-fingerprints-to-cdp-detection/</guid><description>Part 1 of an engineering log on building a Threads marketing agent: the bottleneck was never LLM generation — it was crawling. Tiering the strategy by which signal the anti-bot actually inspects.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Scaling QPS 10x in Production: 3 Strategies That Actually Move the Needle</title><link>https://jieun.dev/en/blog/scaling-qps-10x-in-production-3-strategies-that-actually-move-the-needle/</link><guid isPermaLink="true">https://jieun.dev/en/blog/scaling-qps-10x-in-production-3-strategies-that-actually-move-the-needle/</guid><description>&quot;Make it faster&quot; sounds vague. It isn&apos;t — it comes down to the same three moves: caching, database optimization, and pulling non-essential work out of the request.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate></item><item><title>There Was a Deadlock Hiding in AI-Generated Code — How We Replaced `unreadCount` with `lastReadAt`</title><link>https://jieun.dev/en/blog/there-was-a-deadlock-hiding-in-ai-generated-code-how-we-replaced-unreadcount-with-lastreadat/</link><guid isPermaLink="true">https://jieun.dev/en/blog/there-was-a-deadlock-hiding-in-ai-generated-code-how-we-replaced-unreadcount-with-lastreadat/</guid><description>42.8% HTTP error rate, 9 minutes into a load test, at 12% of the target TPS. The culprit was a single updateMany line written during AI-assisted coding.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Building a Reusable Load-Test Environment for a Messenger Service — Make-based IaC, Observability, and Auth Seeding</title><link>https://jieun.dev/en/blog/building-a-reusable-load-test-environment-for-a-messenger-service-make-based-iac-observability-and-auth-seeding/</link><guid isPermaLink="true">https://jieun.dev/en/blog/building-a-reusable-load-test-environment-for-a-messenger-service-make-based-iac-observability-and-auth-seeding/</guid><description>How many TPS can a messenger&apos;s send API survive, and where exactly does it break? A 7-node mirror of production, rebuilt on demand from a single Makefile target.</description><pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate></item><item><title>Why You Should Never Use KeyDB as a Pub/Sub Broker for Centrifugo</title><link>https://jieun.dev/en/blog/why-you-should-never-use-keydb-as-a-pub-sub-broker-for-centrifugo/</link><guid isPermaLink="true">https://jieun.dev/en/blog/why-you-should-never-use-keydb-as-a-pub-sub-broker-for-centrifugo/</guid><description>KeyDB&apos;s active-replica mode looked perfect for a symmetric dual-stack chat at 100K WebSocket connections. Then I found five years of hang and deadlock issues, most still open.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Building a Crash-Resilient, End-to-End Meeting Recording Pipeline in the Browser</title><link>https://jieun.dev/en/blog/building-a-crash-resilient-end-to-end-meeting-recording-pipeline-in-the-browser/</link><guid isPermaLink="true">https://jieun.dev/en/blog/building-a-crash-resilient-end-to-end-meeting-recording-pipeline-in-the-browser/</guid><description>A one-hour browser recording could push the JS heap past 300 MB, and a tab crash meant losing everything. Rebuilding it as a six-stage pipeline with five-minute savepoints.</description><pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate></item></channel></rss>