Founder in Residence at Antler. Former CTO of 12Go, APAC’s leading ground transportation OTA, where I spent 10 years scaling the platform to 30,000 bookings daily with a remote team of 50 engineers.
Based in Singapore. Building what’s next.
Skills don’t reliably auto-invoke. We built a three-layer system: searchable learnings files, a curation skill, and a post-commit hook that reminds you to document.
An entire infrastructure layer (CSS, JS, frameworks) is becoming optional for a growing class of consumers. Here’s how to serve markdown via HTTP content negotiation.
Your competitor uses Claude or GPT to move faster. If you don’t, you fall behind. That’s the trap.
The Best Agent Architecture Is Already in Your Terminal My project’s CLAUDE.md file had grown to 55KB—242 learnings crammed into one massive file. The problem? Claude prepends this file to every single prompt. A 55KB context file means less room for thinking and acting. Sessions hit context limits faster. Compaction happens sooner. I noticed the degradation: sessions became noticeably shorter, context compaction triggered more frequently, and the agent seemed to lose track of longer conversations. ...
Zero-Friction Database Branching with Neon, Git Hooks, and Claude Code I’ve been refining my Neon database branching setup over the past few months. Here’s the current state: fully automated branch lifecycle with zero manual cleanup. The Goal When I git checkout -b feat/x: Neon database branch created automatically .env.local updated with the new connection string Vercel preview deployment uses the same isolated database When I merge and delete the branch: ...
The iteration trap is really a clarity trap. You iterate because you don’t know what you want.
How I added an optional LLM post-processing step to clean up voice transcriptions, with lessons on prompt engineering and graceful degradation.
How a 87-line inline script became a reusable GitHub Action for AI-generated changelog summaries posted to Slack.
How to use a curated CLAUDE.md file as institutional memory for Claude Code, so your AI agent stops repeating the same mistakes every session.
How I used Claude Code to diagnose random system reboots caused by PSU power limits - and why AI assistants excel at systematic hardware debugging.