AI Engineer · Ho Chi Minh City, Vietnam
6+ years shipping production software — iOS apps to the App Store, now LLM and retrieval systems end to end. I care about the parts that decide whether an AI system works in production: chunking and embedding strategy, gateway design with SSE streaming and fallback chains, agent observability — and the packaging that ships it.
- 🔭 Now — building jarvis, local-first code intelligence for coding agents
- 🌱 Learning — Go
- 💬 Ask me about — MCP servers, hybrid retrieval / RRF, tree-sitter chunking, SSE gateways, shipping iOS + watchOS
| Project | What it does |
|---|---|
jarvisPython LanceDB tree-sitter SCIP Zoekt |
Local-first code-intelligence MCP server — 9 tools exposing SCIP navigation (goToDefinition, findReferences, callHierarchy…), Zoekt lexical search, and semantic search fused via reciprocal rank fusion. tree-sitter AST chunking (256–512 tokens, 50 overlap), revision-pinned embeddings, and atomic index publishing (os.replace flips the pointer — no downtime window). Shipped as jarvis-mcp on PyPI (Cython wheels, cp312–cp314) and listed in the official MCP Registry, with one-command plugins for Claude Code, Cursor, and Codex. |
scip-swiftSwift SourceKit-LSP |
SCIP code-intelligence indexer for Swift — brings go-to-def / find-refs / type-hierarchy navigation to Apple-platform codebases. Prebuilt binaries via a Homebrew tap; contributed the upstream global_symbols.relationships fix to scip-code/scip so typeHierarchy resolves. |
llm-gatewayFastAPI SSE SQLite |
OpenAI-compatible gateway (/v1/chat/completions) routing 500+ models behind one key, model="auto" smart routing, passthrough for unknown names. Every request instrumented — TTFT, end-to-end latency, token usage — so model choice is a measurement, not an impression. |
BoosterSimAppSwift AppKit ScreenCaptureKit |
macOS menu-bar companion for the iOS Simulator — a floating side panel that tracks the Simulator window (CGWindowList + AXObserver), ScreenCaptureKit screenshots/recording with App Store Connect presets, 8pt-grid and safe-area overlays, a live AX-tree inspector, and network throttling via a DEBUG-only in-simulator framework. Ships as a notarized, Sparkle-updated DMG; the bundled boostersim CLI exposes simulator control to AI agents. |
StressMonitorSwiftUI watchOS HealthKit StoreKit |
Privacy-first stress scoring on the App Store (iOS + standalone watch app): five-factor score with weight redistribution for missing signals and per-factor confidence, streaming AI coach over SSE, widgets/complications, CloudKit sync, StoreKit subscriptions. Raw health samples never enter the model path. |
spm-cacheRuby SPM GitHub Actions |
SPM dependency cache proxy serving prebuilt xcframeworks — installed via a Homebrew tap, wired into CI with a GitHub Action. |
- OmniRoute — MIT-licensed AI gateway fronting 290+ providers (works with Claude Code, Codex, Cursor). Landed SSE streaming for GLM-5.3 effort tiers upstream (#11415).
- scip-code/scip — upstream converter fix so
typeHierarchyresolves (#465).
| AI & agents | MCP servers · tool calling · RAG & hybrid search (dense + lexical + symbol, RRF) · embeddings (bge-m3, e5, nomic) · SSE streaming · model routing & fallback chains · agent observability & tracing |
| Backend & data | Python (FastAPI) · TypeScript (Deno/Hono, Next.js) · PostgreSQL (RLS, pg_cron) · SQLite · LanceDB · Supabase · Redis · Docker · GitHub Actions |
| Shipping | PyPI trusted publishing · cibuildwheel · Homebrew taps · Fastlane → TestFlight · Vercel / Render / Dokploy |
| Mobile | Swift · SwiftUI · UIKit · watchOS · HealthKit · StoreKit · React Native / Expo |


