<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://box1401.github.io/</id><title>Kade Chen</title><subtitle>Notes on synthetic aperture radar, deep-learning object detection, and the open-source PyTorch geospatial ecosystem. M.S. Remote Sensing @ NCU CSRSR.</subtitle> <updated>2026-05-06T16:33:09+08:00</updated> <author> <name>Kade Chen</name> <uri>https://box1401.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://box1401.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://box1401.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Kade Chen </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>Shipping a LangGraph agent stack to Cloud Run with keyless GitHub-OIDC and seven failed deploys</title><link href="https://box1401.github.io/posts/cloudrun-langgraph-keyless-deploy/" rel="alternate" type="text/html" title="Shipping a LangGraph agent stack to Cloud Run with keyless GitHub-OIDC and seven failed deploys" /><published>2026-05-05T20:00:00+08:00</published> <updated>2026-05-06T02:34:33+08:00</updated> <id>https://box1401.github.io/posts/cloudrun-langgraph-keyless-deploy/</id> <content type="text/html" src="https://box1401.github.io/posts/cloudrun-langgraph-keyless-deploy/" /> <author> <name>Kade Chen</name> </author> <category term="DevOps" /> <category term="Engineering" /> <summary>Terraform-managed Cloud Run × 3 (api / web / reranker), Workload Identity Federation for keyless GitHub-OIDC deploys, Artifact Registry, Secret Manager. From gcloud projects create to a green deploy in seven iterations. Here’s what broke and how I fixed it. The target architecture browser │ ▼ [Cloud Run / web] Next.js 14 standalone, port 3000 │ NEXT_PUBLIC_API_URL ...</summary> </entry> <entry><title>Hybrid RAG with reciprocal-rank fusion and a cross-encoder — what the numbers actually look like</title><link href="https://box1401.github.io/posts/hybrid-rag-numbers/" rel="alternate" type="text/html" title="Hybrid RAG with reciprocal-rank fusion and a cross-encoder — what the numbers actually look like" /><published>2026-05-05T19:00:00+08:00</published> <updated>2026-05-06T02:34:33+08:00</updated> <id>https://box1401.github.io/posts/hybrid-rag-numbers/</id> <content type="text/html" src="https://box1401.github.io/posts/hybrid-rag-numbers/" /> <author> <name>Kade Chen</name> </author> <category term="LLM" /> <category term="Engineering" /> <summary>Three retrieval strategies on the same 5-document, 5-chunk corpus and a 20-question golden set. Hybrid + cross-encoder rerank wins by a wide margin on top-1 precision (0.99 vs 0.07 for the runner-up), at the cost of a single extra service round-trip. The corpus Tiny on purpose. Real-world equity research portfolios are not 10 M documents; they are 50–500 hand-curated thesis notes plus a stre...</summary> </entry> <entry><title>Building Compass Equity — a multi-agent equity research copilot for Taiwan stocks</title><link href="https://box1401.github.io/posts/compass-equity-multi-agent-overview/" rel="alternate" type="text/html" title="Building Compass Equity — a multi-agent equity research copilot for Taiwan stocks" /><published>2026-05-05T18:00:00+08:00</published> <updated>2026-05-06T02:34:33+08:00</updated> <id>https://box1401.github.io/posts/compass-equity-multi-agent-overview/</id> <content type="text/html" src="https://box1401.github.io/posts/compass-equity-multi-agent-overview/" /> <author> <name>Kade Chen</name> </author> <category term="LLM" /> <category term="Engineering" /> <summary>Most “equity research copilots” are single-shot RAG demos. Compass Equity is built around three product principles: multi-agent with adversarial review, hybrid retrieval (not vector-only), and full auditability. This post explains why those choices matter and how the system fits together. TL;DR One ticker in (e.g. 2330) → grounded research note out, with citations and a live agent trace. ...</summary> </entry> <entry><title>Building a Local-LLM RAG Pipeline for Taiwan Stocks</title><link href="https://box1401.github.io/posts/stock-rag-architecture/" rel="alternate" type="text/html" title="Building a Local-LLM RAG Pipeline for Taiwan Stocks" /><published>2026-05-04T19:00:00+08:00</published> <updated>2026-05-06T02:31:34+08:00</updated> <id>https://box1401.github.io/posts/stock-rag-architecture/</id> <content type="text/html" src="https://box1401.github.io/posts/stock-rag-architecture/" /> <author> <name>Kade Chen</name> </author> <category term="LLM" /> <category term="Data" /> <summary>This post is the architecture walkthrough for stock-rag, a side project I built earlier this year that produces weekly investment-style reports for ~21 Taiwan-listed stocks. Everything runs on a single laptop: news crawling, multi-source data fusion, technical indicators, and the LLM that synthesises it all into a Markdown report. There’s no cloud LLM, no SaaS pipeline, no monthly bill. I want...</summary> </entry> <entry><title>Implementing the Lee Filter as a Kornia Transform</title><link href="https://box1401.github.io/posts/lee-filter-as-kornia-transform/" rel="alternate" type="text/html" title="Implementing the Lee Filter as a Kornia Transform" /><published>2026-05-03T18:35:00+08:00</published> <updated>2026-05-06T02:31:34+08:00</updated> <id>https://box1401.github.io/posts/lee-filter-as-kornia-transform/</id> <content type="text/html" src="https://box1401.github.io/posts/lee-filter-as-kornia-transform/" /> <author> <name>Kade Chen</name> </author> <category term="SAR" /> <category term="PyTorch" /> <summary>This post is the technical walkthrough behind torchgeo PR #3655, a small contribution that adds the classic Lee (1980) speckle filter to the PyTorch geospatial stack as a Kornia augmentation. I’ll cover three things: (1) why SAR images need a speckle filter at all, (2) the math the filter is doing and how the prototype fell out of it, and (3) the design decisions involved in wrapping it as Inte...</summary> </entry> </feed>
