Frontend Engineer · Taipei

Tim Kao

About

Hi, I’m Tim. I’m a frontend engineer, and I like things that feel right.

I got into frontend because I love the feeling of things that just work: taps that respond, transitions that don’t stutter, loads that don’t keep you waiting. These details look small, but they often decide whether something feels good to use or makes you want to leave.

That mindset has shaped how I work. I like untangling things until they’re clear, and I habitually ask one more “why”. When the same problem keeps coming back, I can’t help tracing it upstream to see if something could be made fundamentally simpler.

These days I mostly build B2B SaaS, and I’m increasingly drawn to where engineering meets product. Lately I’ve spent a lot of time exploring how AI changes the way we build software. To me, the interesting part isn’t getting AI to write more code — it’s rethinking which tasks belong to tools, and which judgments are still worth my own time.

Outside of work, I build small products of my own, poke at strange-but-interesting things, and spend time lifting and playing badminton. Occasionally I’ll spend far more time on a tiny detail than it deserves — just because I believe it could be better.

Work

01 / MCP Server

● Flagship

Letting AI operate internal APIs, directly and safely

Cut the time Sales spends building forms for customers

Every new customer meant Sales hand-building an online form from a spec, field by field — repetitive, yet never regular enough to template. I wrapped our backend APIs into an MCP Server so AI can call the right tools with the right parameters through natural language; people who can’t read an API can now drive one safely.

  • stdio → SSE transport: usable by non-engineering Sales, not just a local toy
  • An agent converts Swagger into tools automatically: the tool layer keeps up with API changes without manual upkeep
  • Zod validation at the boundary: bad calls from AI are stopped before they reach the system
  • TypeScript
  • MCP
  • SSE
  • Zod
Read more: three key design decisions

02 / Architecture

From a shared Next.js to a standalone SPA

21×faster cold start

The webapp and marketing site shared one Next.js app — the site needed SEO and SSR, the webapp needed post-login interactivity, and the two kept dragging each other down. I led the architectural decoupling, proposed it to management, and executed the migration to a pure SPA on Vite 7 + TanStack Router. With each half where it belongs, it isn’t one person who got faster — it’s the whole team’s iteration loop.

  • HMR ~1075ms → ~138ms (7.8× faster)
  • Build time 96.4s → 25.2s (3.8× faster)
  • Vite 7
  • TanStack Router
  • React
The full migration story: one failure, two attempts

03 / Engineering Quality

Rebuilding the company’s internal UI library

1,627test cases · 90%+ coverage

Product components were scattered across customized MUI styles — every change began with archaeology, and one-off UI work never accumulated into an asset. I migrated the components from MUI to shadcn/ui with a wrapper pattern, rebuilt 50 components, and laid down a full testing foundation — turning one-off work into a reusable system: whoever touches a component, the tests have their back.

  • 50 components aligned with the design system
  • The whole suite runs in under 13 seconds
  • Shadcn/ui
  • Vitest
  • Testing Library

Side projects

Side project

BeeHabit

A personal project for building habits through LINE messages. One-tap logging via rich menu, progress visualized as a honeycomb — a complete side project from idea to launch.

  • LINE Bot

Side project

Formu

A coordinate-based WYSIWYG form product that reproduces paper forms 1:1. The marketing site runs on its own domain with Astro, with perfect Lighthouse scores.

  • Vite
  • Hono
  • SQLite
  • Astro
Development notes

Writing

  1. Case Study · MCP Server · June 20, 2026

    內部 MCP Server — 讓 AI 直接、安全地操作我們的 API

    我把 Sales 重複的手工建表單流程,變成 AI 能直接呼叫的工具層——而且它會隨著 API 成長自己長大。

  2. June 26, 2026

    把架構從 Next.js 換成 Vite:一次失敗兩次才成功的遷移紀錄

    將官網與 webapp 從單一 Next.js 拆成 Next + Vite SPA 的實戰紀錄——前兩次失敗、1:1 複製策略、21x 冷啟動,以及用 AI agent 加速遷移的 guardrails。

  3. Side Project · Formu · June 26, 2026

    我做了一個能 1:1 還原紙本的表單產品:Formu 開發記錄

    從想法到上線的完整記錄:技術選型、dogfooding、1:1 還原紙本的畫布編輯器、官網與產品拆網域的架構決策,以及最難的定價。

Note: posts are currently written in Chinese.

View all posts