▸ Software Engineer · Developer tools · ML · Full-Stack
I build developer tools in Rust — and a dictionary for a script almost nobody can read anymore.
Aerospace engineering to CAE software to AI developer tools. I build a Rust engine, open-source it, then ship products on top — twice so far.
*KEYWORD
*KEYWORD
*TITLE
Nhat-Vu Nguyen — Software Engineer · Developer tools · ML · Full-Stack
$
$ deck: nhatvu148.dev
$ aerospace -> CAE -> full-stack -> AI
$ built 2026.08.28
$
*SUMMARY
- uptime8y 7moprojects11public8roles8skills6techs45
$ currently running
$ building supply chain simulation at SIMCEL
$ shipping vexar — a cockpit for running coding agents in parallel
$ tuning kaniscope against a hand-verified review corpus
$ maintaining nomnaviet — Hán Nôm dictionary, OCR and reader
*ENGINEER

- uid
- nv
- org
- Nhat-Vu
- shell
- /bin/full-stack
- eidnhatvu.nguyenuptime8y 7moroles8projects11statusavailable
I'm a software engineer with 7+ years of experience. Started in aerospace engineering, moved into CAE software, then full-stack web development, and now I'm building AI-powered tools.
Currently at SIMCEL building supply chain simulation software.
On the side I work to a pattern: build the hard part as a reusable Rust engine, publish it, then ship products on top of it. `pr-review-core` on crates.io became Kaniscope, a GitHub App for AI code review, and the merge gate inside Vexar. `video-transcriber-mcp-rs` became Whisgram, a commercial video-notes product. The engines stay open; the products are where the product work goes.
Plus Nôm Na Việt, a Hán Nôm dictionary with a handwriting recogniser I trained from scratch.
I like solving hard problems and shipping things that work.
*ENGINEER_STACK
- fieldlanguagesvalueTypeScript, Rust, Python, Go
- fieldfrontendvalueReact, Next.js, Angular, Svelte, Tailwind
- fieldbackendvalueNode.js, FastAPI, Axum, Tokio
- fielddesktopvalueTauri
- fieldmlvaluePyTorch, PaddleOCR, ONNX, Whisper, fine-tuning
- fieldllmvalueMCP, RAG, LangChain, OpenAI, Anthropic
- fieldinfrastructurevalueDocker, PostgreSQL, Supabase, Qdrant, Redis
$ see also
*STACK
*STACK_LANGUAGES
- nameTypeScriptlevel5/5
- nameRustlevel5/5
- namePythonlevel4/5
- nameGolevel3/5
*STACK_FRONTEND
- nameReactlevel5/5
- nameNext.jslevel5/5
- nameAngularlevel4/5
- nameSveltelevel3/5
- nameTailwindlevel4/5
*STACK_BACKEND
- nameNode.jslevel4/5
- nameFastAPIlevel4/5
- nameAxumlevel4/5
- nameTokiolevel4/5
*STACK_DESKTOP
- nameTaurilevel4/5
*STACK_ML
- namePyTorchlevel4/5
- namePaddleOCRlevel4/5
- nameONNXlevel4/5
- nameWhisperlevel4/5
- namefine-tuninglevel4/5
*STACK_LLM
- nameMCPlevel5/5
- nameRAGlevel4/5
- nameLangChainlevel3/5
- nameOpenAIlevel4/5
- nameAnthropiclevel4/5
*STACK_INFRASTRUCTURE
- nameDockerlevel4/5
- namePostgreSQLlevel4/5
- nameSupabaselevel4/5
- nameQdrantlevel3/5
- nameRedislevel3/5
*STACK_DAILY
Claude CodeVS CodeZedWarpTaskfileDockergit
$ level = self-assessed capability, 1-5 · per-project tech is listed on each *PROJECT card below
*PROJECT
*PROJECT
$ vexar — vexar.nvnv.app
A cockpit for running coding agents in parallel. Each session gets its own git worktree and terminal, so `claude`, `gemini` or `codex` work on separate branches at once without clobbering each other — then one screen to review the diff, read the findings and merge or discard. The merge gate runs on my own `pr-review-core` crate. Native Tauri app in Rust, ~10 MB signed and notarized, against 200 MB+ for an Electron equivalent.
Rust · Tauri · Svelte · Git worktrees · MCP · Claude Code · Tokio · Tailwind
$ show preview$ hide preview
![Screenshot of Vexar]()
*PROJECT
$ kaniscope — github.com/apps/kaniscope-ai-review
AI code review as a GitHub App and Marketplace Action, built on `pr-review-core`. Posts line-anchored inline findings plus a summary, with `/review`, `/ask` and `/describe` commands and an OSV.dev dependency CVE scan. Tuned for precision over volume: symbol-matched reanchoring for findings that drift off the diff, a skeptical self-critique pass, per-finding confidence thresholds, and a two-tier agentic mode that pairs a cheap exploration model with a stronger synthesis model. Measured, not assumed — a hand-verified corpus records what every review round got right, wrong and missed, scoring 80% precision across 34 rounds with false positives broken out by the severity they were filed at. Recall is deliberately not reported — a miss only enters the corpus once someone finds it later, so that column is a floor, not a rate. The harness has cut features of mine that didn't earn their keep.
Rust · GitHub Actions · Claude · OpenRouter · tree-sitter · Evaluation
*PROJECT
$ pr-review-core — crates.io/crates/pr-review-core
The open engine underneath Kaniscope and Vexar's merge gate. A reusable Rust crate that pulls a PR diff, reviews it with a Claude model via OpenRouter, and posts inline comments anchored to the diff — against GitHub, GitLab or Bitbucket, with no org API key or admin rights needed. tree-sitter structural context across five languages, and a bench harness scoring precision and recall against a ground-truth corpus so changes can be measured. Published to crates.io and docs.rs.
Rust · Claude · OpenRouter · tree-sitter · GitHub · Tokio
*PROJECT
$ whisgram — whisgram.nvnv.app
Commercial product built on my own open-source transcription engine (`video-transcriber-mcp-rs`, below), pulled in as a pinned submodule. Paste a video link and get AI study notes, an editable concept diagram, flashcards and a clickable timestamped transcript in about a minute — then ask questions across your whole library and get answers that cite the exact videos they came from. Whisper transcribes, Claude summarizes. Chrome side-panel extension plus web app, GPU workers on Modal, deployed on Fly.io, metered billing from $0.10 a video.
Rust · Chrome MV3 · Modal · Fly.io · Claude · RAG · Supabase · Tokio · Docker
$ show preview$ hide preview
![Screenshot of Whisgram]()
*PROJECT
$ video-transcriber-mcp — crates.io/crates/video-transcriber-mcp
The open engine underneath Whisgram. Video transcription MCP server in Rust on whisper.cpp — 6x faster and 2.5x lighter on memory than the Python equivalent, 1000+ platforms via yt-dlp, 90+ languages, fully offline. Whisgram consumes it as a pinned submodule, so the engine stays public while the product stays private. Published to crates.io and Homebrew with prebuilt macOS, Linux and Windows binaries.
Rust · whisper.cpp · MCP · Tokio · Homebrew
*PROJECT
$ wincrust — crates.io/crates/wincrust
Windows desktop automation for coding agents, over MCP. Drives applications through UI Automation control patterns rather than screenshots — an action is a contract with a control, not a guess about pixels — and it refuses rather than guesses when a selector matches two things. One 7 MB Rust binary and seven narrow tools running elevated, where the Python equivalent loads 95 packages and 105 native modules into a process holding an admin token. OCR fallback for applications that draw their own interface and expose no UI tree at all. Published to crates.io with prebuilt Windows binaries.
Rust · MCP · Windows · UI Automation · Tokio · OCR
*PROJECT
$ nom-na-viet — nomnaviet.com
Hán Nôm platform covering 27,900+ characters and 30+ classical texts. Eight ways to look up a character — text, handwriting, photo OCR, voice, semantic, radical — plus a handwriting recogniser trained in-house (PyTorch, exported to ONNX, benchmarked against the Columbia and Albert manuscript sets), manuscript OCR, readings in five languages, bidirectional Vietnamese ↔ Nôm conversion with LLM disambiguation, and spaced-repetition flashcards.
Next.js · PostgreSQL · FastAPI · PyTorch · PaddleOCR · ONNX · LLM · Capacitor · Tailwind · Docker
$ show preview$ hide preview
![Screenshot of Nôm Na Việt]()
*PROJECT
$ simcel — simcel.io
Supply chain digital twin platform used by Fortune 500 pharmaceutical and consumer goods companies. Simulates promotions, disruptions, and market shifts. Built multi-channel planning, integrated KPIs, and carbon emission modeling features.
Angular · TypeScript · Python · AI
$ show preview$ hide preview
![Screenshot of SIMCEL]()
*PROJECT
$ jupiter-copilot
AI helpdesk assistant for CAE software. Uses LangChain/LangGraph with RAG for intelligent Q&A and automated code execution. Supports multiple LLMs (OpenAI, Ollama, Moonshot, Zhipu) with MCP integration.
Python · LangChain · RAG · FastAPI · MCP · Qdrant · Redis · Docker
*PROJECT
$ cae-webviewer
3D/2D engineering model visualization for CAE/CAD. Upload models, view pre/post-processing results, pan/rotate/zoom - all in the browser. Built with WebGL, Ceetron SDK, and HOOPS Communicator.
React · Rust · WebGL · Socket.io
$ show preview$ hide preview
![Screenshot of CAE WebViewer]()
*PROJECT
$ digital-twin-project
Real-time ship structure monitoring app. View sensor data in tables, charts, 3D models, and route maps. Select date ranges, download PDF/Excel reports, and manage ship registrations.
React · Rust · Go · PostgreSQL · Mapbox
$ show preview$ hide preview
![Screenshot of Digital Twin Project]()
$ 11 projects defined · 8 with a public link
*CAREER_CURVE
$ a1 = year role began · o1 = cumulative years of experience at that point
*CONTACT
- fieldstatusvalueavailable
- fieldopen tovaluefull-stack · Rust · AI tooling
- fieldbasedvalueremote
- fieldchannelsvaluelinkedin, github, leetcode, codewars, hackerrank
Got something worth building?
Tell me what you are building and what is in the way. The form goes straight to my inbox.





