<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Encore Shao&apos;s Blog</title><description>Writing on engineering, AI, and shipping software.</description><link>https://blog.icmoc.com/</link><language>en-us</language><item><title>encore-skills: Stop Re-Teaching Your AI</title><link>https://blog.icmoc.com/en/13-encore-skills-gitlab-loop/</link><guid isPermaLink="true">https://blog.icmoc.com/en/13-encore-skills-gitlab-loop/</guid><description>I kept re-teaching the same GitLab workflow to Claude Code, Cursor, and Codex, until an MR shipped with no issue number linked — so I built one skills library that talks to all three.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate></item><item><title>More Than a Decade Building a VC Intelligence Platform</title><link>https://blog.icmoc.com/en/11-vc-intelligence-platform/</link><guid isPermaLink="true">https://blog.icmoc.com/en/11-vc-intelligence-platform/</guid><description>What it actually takes to build a venture capital intelligence platform — data quality problems, 30+ integrations, and the infrastructure that makes it run at 3am.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Setting Up PostgreSQL 10 Streaming Replication the Hard Way</title><link>https://blog.icmoc.com/en/10-postgres-replication/</link><guid isPermaLink="true">https://blog.icmoc.com/en/10-postgres-replication/</guid><description>What it actually takes to get Postgres streaming replication working between two local VMs — without skipping the parts that matter.</description><pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building github-trending: From a Cron Script to a React App</title><link>https://blog.icmoc.com/en/09-github-trending/</link><guid isPermaLink="true">https://blog.icmoc.com/en/09-github-trending/</guid><description>I wanted to track what was rising on GitHub each week without manually scrolling. A Node.js script became a full React app — here&apos;s what that journey looked like.</description><pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building bamboohr-mcp: An MCP Server for HR APIs</title><link>https://blog.icmoc.com/en/01-bamboohr-mcp/</link><guid isPermaLink="true">https://blog.icmoc.com/en/01-bamboohr-mcp/</guid><description>I wanted to let any LLM talk to BambooHR&apos;s API. Three days later I had a production MCP server in TypeScript. Here&apos;s exactly what I built and what surprised me along the way.</description><pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate></item><item><title>AI-Powered Bookmark Dashboard: A Chrome Extension Story</title><link>https://blog.icmoc.com/en/03-bookmark-dashboard/</link><guid isPermaLink="true">https://blog.icmoc.com/en/03-bookmark-dashboard/</guid><description>Replacing the new tab page with something actually useful — how I built a bookmark dashboard powered by agentic AI, and what I&apos;d do differently.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Agentic AI in Production: What I Learned Building RanBOT</title><link>https://blog.icmoc.com/en/04-agentic-ai-ranbot/</link><guid isPermaLink="true">https://blog.icmoc.com/en/04-agentic-ai-ranbot/</guid><description>Autonomous workflows sound great until they hit the real world. Twelve months of running agentic systems in production, and the lessons I keep coming back to.</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Whiteboard That Fired My Video Editor</title><link>https://blog.icmoc.com/en/14-excalidraw-recording/</link><guid isPermaLink="true">https://blog.icmoc.com/en/14-excalidraw-recording/</guid><description>I kept losing forty minutes to captions and cropping after every client walkthrough, until I built a whiteboard that records, transcribes, and exports itself.</description><pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate></item><item><title>10 Years of Rails: What I Still Reach For Every Day</title><link>https://blog.icmoc.com/en/05-ten-years-rails/</link><guid isPermaLink="true">https://blog.icmoc.com/en/05-ten-years-rails/</guid><description>Not a framework review. A personal account of which Rails patterns aged well, which didn&apos;t, and what I&apos;ve built that I&apos;m still proud of.</description><pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Building TrendShop: When AI Meets Fashion Discovery</title><link>https://blog.icmoc.com/en/06-trendshop/</link><guid isPermaLink="true">https://blog.icmoc.com/en/06-trendshop/</guid><description>How we built a social fashion platform powered by AI recommendation — what worked, what the users actually wanted, and the pivot we almost didn&apos;t make.</description><pubDate>Sun, 05 Oct 2025 00:00:00 GMT</pubDate></item><item><title>WorkflowPro: Building Office Automation That Actually Gets Used</title><link>https://blog.icmoc.com/en/08-workflowpro/</link><guid isPermaLink="true">https://blog.icmoc.com/en/08-workflowpro/</guid><description>How I built an approval workflow system for an elevator manufacturer that ran three years without downtime — and what I learned about getting enterprise software right the first time.</description><pubDate>Sun, 20 Jul 2025 00:00:00 GMT</pubDate></item><item><title>ruby-office365: A Ruby Client for Microsoft Graph</title><link>https://blog.icmoc.com/en/12-office365-ruby-gem/</link><guid isPermaLink="true">https://blog.icmoc.com/en/12-office365-ruby-gem/</guid><description>Why I built a small Ruby gem for Office 365 instead of using what already existed, and what it actually looks like to pull mail, calendars, and contacts through it.</description><pubDate>Wed, 11 Dec 2024 00:00:00 GMT</pubDate></item><item><title>Building a Ruby Wrapper for the Crunchbase API</title><link>https://blog.icmoc.com/en/07-crunchbase-ruby/</link><guid isPermaLink="true">https://blog.icmoc.com/en/07-crunchbase-ruby/</guid><description>What I learned wrapping a third-party API in idiomatic Ruby — rate limits, authentication flows, model design, and the V3 to V4 migration I didn&apos;t see coming.</description><pubDate>Sun, 18 Aug 2024 00:00:00 GMT</pubDate></item><item><title>china_regions: Lessons from a Ruby Gem</title><link>https://blog.icmoc.com/en/02-china-regions/</link><guid isPermaLink="true">https://blog.icmoc.com/en/02-china-regions/</guid><description>What I learned shipping a Ruby library for Chinese administrative regions — and why documentation matters more than the code itself.</description><pubDate>Thu, 02 Dec 2021 00:00:00 GMT</pubDate></item></channel></rss>