Can AI Actually Build a Complex Project? A Brutal RAG System Post-Mortem

Last month, I did something that, looking back, was probably the most educational practice of my year. I tried using Claude and GPT to build a complete multi-source RAG system from scratch. This wasn’t a “toy demo” for social media; it was a real internal tool for my lab designed to handle messy document data, query rewriting, hybrid search, and deployment for my team. I set a strict rule for myself: Let the AI write almost all the code, while I handle the requirements and decision-making. ...

1 March 2026 · 4 min · Zack Zhou

Improve Billing & Health Analyzer with Bedrock v2

I constantly rely on AWS Billing and Cost Management and Trusted Advisor to monitor costs and security. However, manual billing reviews are time-consuming, and raw Cost Explorer data doesn’t provide the full picture. What if an intelligent program could proactively call the Billing and Trusted Advisor APIs, retrieve the raw data, and pass it to an LLM for in-depth analysis of account health—then deliver actionable insights and AI-powered recommendations? That would save a significant amount of time and effort. ...

21 January 2026 · 6 min · Zack Zhou

Serverless Billing & Health Analyzer with Bedrock

I constantly rely on AWS Billing and Cost Management and Trusted Advisor to monitor costs and security. However, manual billing reviews are time-consuming, and raw Cost Explorer data doesn’t provide the full picture. What if an intelligent program could proactively call the Billing and Trusted Advisor APIs, retrieve the raw data, and pass it to an LLM for in-depth analysis of account health—then deliver actionable insights and AI-powered recommendations? That would save a significant amount of time and effort. ...

18 October 2025 · 4 min · Zack Zhou

Boost EKS RAG with LangChain

After building a custom RAG system on Amazon EKS, my son asked why the application could only handle one question at a time, while ChatGPT allows users to continue conversations through follow-up questions with contextual memory. That made me realize there was an opportunity to leverage the power of the LangChain framework for better abstractions, conversational memory, and access to the broader LangChain ecosystem. This post documents the journey of migrating to a LangChain-powered solution — the challenges faced, and the new capabilities and benefits gained. ...

11 October 2025 · 5 min · Zack Zhou

Bedrock-Powered RAG on EKS

The Idea I’ve previously built Local RAG and ChatBot applications using OpenWebUI, and after exploring AWS Bedrock by creating a knowledge base with an S3 data source, I saw a bigger opportunity. My existing OpenWebUI chatbot was running on AWS Fargate, and I decided it was time to level up the architecture. The goal was to migrate the solution to an Amazon EKS cluster and build a custom, self-developed RAG pipeline that leverages core AWS services. This would allow me to host two distinct AI applications on a single, scalable platform: ...

6 October 2025 · 6 min · Zack Zhou

EKS & VPC Lattice Integration for A/B Testing

For those experienced with Kubernetes, managing traffic between microservices often brings tools like Istio to mind. I had done some posts before on Istio for Distributed Tracing and Traffic Routing. This PoC explores a different approach: using AWS VPC Lattice. While the goal—in this case, A/B testing between different service versions—is the same, the implementation differs. Instead of Istio’s VirtualService and DestinationRule resources, this setup leverages the vendor-neutral Kubernetes Gateway API. This allows for a more standardized way of defining routing within the cluster, while VPC Lattice provides the power to extend this networking seamlessly across different VPCs. ...

30 September 2025 · 6 min · Zack Zhou

Claude Code with Kubernetes MCP Server

In this post, I’ll demonstrate how to install and use the Kubernetes MCP server GitHub repo with Claude Code , and then show how I migrated the previous AWS serverless OpenWebUI + Bedrock solution to run locally on Minikube. Finally, we’ll explore how to use this Kubernetes MCP server to inspect and troubleshoot the deployment. Installation & Usage Before getting started, make sure you have the following prerequisites installed: kubectl installed and available in your PATH A valid kubeconfig file with contexts configured Access to a Kubernetes cluster (e.g., Minikube, Rancher Desktop, GKE) Helm v3 installed and in your PATH (optional if you don’t plan to use Helm) By default, the server loads kubeconfig from ~/.kube/config. ...

23 September 2025 · 3 min · Zack Zhou

AWS Bedrock with Open WebUI

Recently Data team reached out, trying to build an EC2 running Open WebUI, connecting to AWS Bedrock, to offer team member AI application. This guide provides step-by-step instructions for deploying and integrating with AWS Bedrock models. . The architecture consists of two Docker containers operating on a single EC2 instance: Open WebUI serves as the user-facing chat interface, while a Bedrock Access Gateway acts as middleware. This gateway securely forwards requests from Open WebUI to the AWS Bedrock API using the EC2 instance’s attached IAM role. The containers communicate over a private Docker network, isolating traffic between them. ...

16 September 2025 · 7 min · Zack Zhou

Automate PR Review using Gemini CLI within GitHub Action

I recently found an interesting tool run-gemini-cli, a GitHub Action that integrates Gemini directly into your repositories. I was intrigued by its promise to perform pull request reviews, triage issues, and even modify code using conversational commands right inside GitHub action workflow. Let’s try it out. My goal was to see if I could use this action to get instant, automated feedback on pull requests. Instead of waiting for a human to spot simple issues, I wanted an AI to do the first pass, check for common problems, and even explain code changes on demand. ...

3 September 2025 · 4 min · Zack Zhou

AI Coding - Build an Electricity and Gas Analytic Platform

In the past few days, I got an idea from my recent electricity and gas bills—thinking about how to run data analysis to examine usage patterns and trends using the Python approach: employing Pandas for reading data, using Numpy for normalisation, and Matplotlib to create a few visualisations. However, this time I wanted to try talking to Gemini CLI via the terminal to see if it could generate a web-based analytical platform for me, as someone with no developer background. ...

14 August 2025 · 6 min · Zack Zhou