<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Jee-eun Kang — Writing</title>
    <link>https://www.jee-eun-k.dev/writing</link>
    <description>Frontend engineering insights and thoughts</description>
    <language>en-us</language>
  <item>
    <title>From 8 Minutes to 90 Seconds: Optimizing a Docker Build Pipeline on GitHub Actions</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260427</link>
    <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
    <description>How I reduced a Next.js Docker build from 5-8 minutes to under 2 minutes on GitHub Actions by fixing a single cache tag, removing dead config, and separating build from push.</description>
  </item>
  <item>
    <title>What Actually Happened When We Migrated to Auth.js v5 -- Blueprint vs Reality</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260420</link>
    <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
    <description>Implementation retrospective of migrating from keycloak-js to Auth.js v5. Covers what the blueprint predicted correctly, where reality diverged, and the planning lesson: external research is not enough for migration epics.</description>
  </item>
  <item>
    <title>A Playbook for Retrofitting Test Automation into a Legacy Next.js Codebase</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260410</link>
    <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
    <description>A phased strategy for adding test automation to a legacy Next.js codebase: from measuring the baseline, through blocking PR checks, to E2E smoke tests and removing build bypasses. Real configs, real code, real tradeoffs.</description>
  </item>
  <item>
    <title>Building a Two-Layer Logging Pipeline for Next.js on Kubernetes</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260409</link>
    <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
    <description>How we built a complete logging pipeline that captures browser errors, API failures, and server events through a single pino-based JSON pipeline — with batching, PII redaction, circuit breakers, and rate limiting.</description>
  </item>
  <item>
    <title>Migrating from keycloak-js to Auth.js v5 — A Hybrid SSR Auth Blueprint for Next.js</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260408</link>
    <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
    <description>A complete migration blueprint from client-side keycloak-js to server-side Auth.js v5 with PKCE, httpOnly cookies, and hybrid token pattern. Covers architecture, security tradeoffs, PKCE deep-dive, and multi-pod considerations.</description>
  </item>
  <item>
    <title>Why Pino Logs Disappeared in Kubernetes — and the Three PRs It Took to Get Them Back</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260406</link>
    <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
    <description>How structured logging with pino silently failed in a Next.js standalone Docker build on AKS, and the three-PR debugging journey to fix it — from devDependencies to worker-thread transport tracing.</description>
  </item>
  <item>
    <title>Sprint Planning for a Team of One: Building a Solo Engineering Workflow with AI Agents</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260401</link>
    <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
    <description>How a solo frontend engineer built a sprint planning and backlog management system using AI multi-agent workflows, GitHub Issues, and structured story specs — for a team of one.</description>
  </item>
  <item>
    <title>How I Built a Full CI/CD Safety Net for a Financial Platform — Solo, in 3 Weeks</title>
    <link>https://www.jee-eun-k.dev/writing/post_20260330</link>
    <pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
    <description>A personal retrospective on building a 4-stage test automation pipeline for a Next.js financial platform, fixing 313 type errors, and removing all build bypasses — as a solo developer.</description>
  </item>
  <item>
    <title>My Grand Adventure: Taming PKCE and Keycloak in Next.js</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250801_my-grand-adventure-t</link>
    <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
    <description>A solo frontend engineer&apos;s journey implementing SSO with Keycloak and PKCE on client-side rendered Next.js projects, battling infinite loops, memory-hungry ghost sessions, and achieving victory</description>
  </item>
  <item>
    <title>Next.js 15 &amp; React 19 Upgrade: A Complete Migration Guide</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250801_nextjs-15-react-19-u</link>
    <pubDate>Fri, 01 Aug 2025 00:00:00 GMT</pubDate>
    <description>Comprehensive guide to upgrading from Next.js 14 to 15 with React 19, including breaking changes, migration strategies, and real-world implementation experience</description>
  </item>
  <item>
    <title>React Query Caching Struggles with Server-Side Pagination</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250723</link>
    <pubDate>Wed, 23 Jul 2025 00:00:00 GMT</pubDate>
    <description>Learn how to handle React Query caching with server-side pagination and avoid common pitfalls</description>
  </item>
  <item>
    <title>Dynamic Route Validation in Next.js: Preventing Invalid Page Renders with Backend-Driven Navigation</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250714</link>
    <pubDate>Mon, 14 Jul 2025 00:00:00 GMT</pubDate>
    <description>A follow-up on our authentication system adoption, this post details how we built a robust, centralized route validation system in Next.js to prevent invalid page renders.</description>
  </item>
  <item>
    <title>Frontend Keycloak Adoption: A Journey from JWT to SSO</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250713</link>
    <pubDate>Sun, 13 Jul 2025 00:00:00 GMT</pubDate>
    <description>Sharing lessons learned while transitioning to Keycloak SSO for an MSA architecture.</description>
  </item>
  <item>
    <title>Why MUI and shadcn/ui Shouldn&apos;t Coexist</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250415</link>
    <pubDate>Mon, 21 Apr 2025 00:00:00 GMT</pubDate>
    <description>Learn why mixing Material-UI and shadcn/ui is problematic and what alternatives exist</description>
  </item>
  <item>
    <title>Next.js State Management: Preserving URL Parameters Between Client and Server Components</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250401</link>
    <pubDate>Tue, 01 Apr 2025 00:00:00 GMT</pubDate>
    <description>Learn how to preserve URL parameters during navigation in Next.js without using external libraries</description>
  </item>
  <item>
    <title>The Mystery of the 404: Debugging Nginx and Next.js Routing Conflicts</title>
    <link>https://www.jee-eun-k.dev/writing/post_20250301</link>
    <pubDate>Sat, 01 Mar 2025 00:00:00 GMT</pubDate>
    <description>How I solved a tricky production 404 error caused by Nginx configuration</description>
  </item>
  </channel>
</rss>