{"@attributes":{"version":"2.0"},"channel":{"title":"Peter Qian","description":"Fullstack Engineer | Building modern web applications","link":"https:\/\/peterqian.com\/","item":[{"title":"How Codex Helped Me Finish an Angular 20 to 21 Upgrade in a Monorepo","link":"https:\/\/peterqian.com\/blog\/angular-20-to-21-monorepo-codex\/","guid":"https:\/\/peterqian.com\/blog\/angular-20-to-21-monorepo-codex\/","description":"Angular migration was painful until Codex helped me find the real root cause fast.","pubDate":"Mon, 16 Feb 2026 00:00:00 GMT"},{"title":"Building Micro Frontends with Angular and Module Federation","link":"https:\/\/peterqian.com\/blog\/angular-module-federation\/","guid":"https:\/\/peterqian.com\/blog\/angular-module-federation\/","description":"How to set up Webpack 5 Module Federation with Angular for runtime code sharing between independent applications","pubDate":"Wed, 06 Nov 2024 00:00:00 GMT"},{"title":"Give Your AI More Access","link":"https:\/\/peterqian.com\/blog\/browser-agent-cdp\/","guid":"https:\/\/peterqian.com\/blog\/browser-agent-cdp\/","description":"Your AI can read text and call APIs, but the open web is still off-limits. @peteqian\/browser-agent gives it a real browser, raw Chrome DevTools Protocol, LLM decision loop, CLI + SDK + MCP.","pubDate":"Mon, 18 May 2026 00:00:00 GMT"}]}}