Jeffrey WangAI & Software Engineer
Website for Jeff's thoughts, demo, and visualization.Featuring coffee cowork, poetry generation, and more.
AI Overlay
This page is embedded with AI functionality, from familiar chat flows to inline editor controls and command-driven async agents.
Message UIs
There are two ways to interact with the AI on this page depending on whether you want a conversational response or async execution.
Chat Interface
The familiar conversational entry point with visible assistant responses.
- ⌘J
- Open chat
Command Interface
Built for async execution. Launches agents that perform work and return tool effects instead of chat replies.
- ⌘K
- Open agent dispatch command bar
- ⌘U
- Toggle agent runtime tray
Text Editors
There is only so much you can do with a textarea. Text editors are an important part of any serious AI integration. I use the Lexical library to create advanced features in an application. Features on this page are noted below.
Hotkeys
- ⌘I
- Toggle autocomplete
- @
- Insert mention
- /
- Switch action
- Shift+Tab
- Cycle action
- Tab
- Accept completion
- Esc
- Dismiss completion
- Esc Esc
- Clear field
JavaScript & UI
Thoughts and opinions.
React
React is popular and standard. Too flexible, so harder to generate good code. I used to think agents would favor Python and JS because the training corpus is huge, but actually they do well in strongly typed, opinionated languages like Rust — probably the reinforcement learning. A more opinionated JS framework might help in theory, but TypeScript plus the React Compiler covers most of it. JSX is useful for thinking in components. Colocating backend, frontend, and dev server helps e2e.
Next.js and React Router
I'd avoid Next.js. Not necessarily bad with rules, but a lot of built-in magic, and magic encourages hallucinations. React Router 7 instead — routes, layouts, loaders, actions, UI all in one file. Not the most comfortable for humans, but agents can scan and trace. Tanstack Start I don't know as well, but strong type checks look promising.
Composability
I like shadcn and one of the ideas it's built on is composability. Predictable extension points, fewer ways for an agent to veer. Keeps the UI consistent as things grow.
Theming
Catppuccin Latte and Mocha mapped to semantic tokens. Warmth is intentional, not systemic. Toggle to see it.
Primary
Interactive elements and focus
--primary-foregroundSecondary
Supporting UI surfaces
--secondary-foregroundAccent
Hover and highlight states
--accent-foregroundMuted
Subdued backgrounds
--muted-foregroundSuccess
Positive and confirmation states
--success-foregroundDestructive
Error and danger states
--backgroundCard
Card surfaces and panels
--card-foregroundContrast
Example displays and inset panels
--contrast-background-foregroundWarm Contrast
Intentional warm accent surfaces
--warm-contrast-foregroundWarm Accent
Emphasis and warm highlight states
--warm-accent-foregroundState
The less state, the better. When you can't avoid it, colocate with the component that uses it. If state is getting crazy, it's usually a sign the database isn't doing enough. For reads — RPCs with Suspense. For writes where feedback matters — optimistic UI, a temporary guess held in state until persistence resolves.
About
Jeff Wang is a full-stack AI engineer building agentic systems and developer tooling. Currently founder & lead engineer at Nizami, Inc., shipping a React Router 7 + Supabase platform with an 11-agent orchestration network and a deterministic RAG pipeline. Previously hardened search, ingestion, and reliability on the DOD's GAMECHANGER policy-search platform at Booz Allen Hamilton, and led real-time CV and streaming work on a USCENTCOM-deployed Counter-UAS platform at MITRE.
Experience
Nizami, Inc.
Founder & Lead Full Stack AI Engineer — June 2025 - Present
Building a full-stack AI platform (React Router 7, Supabase) with an embedded browser-native runtime and an 11-agent orchestration network, backed by a deterministic RAG system using MECE taxonomy and Postgres FTS to eliminate retrieval drift. A crash-recoverable Python pipeline (FastAPI, PydanticAI) on the Gemini Batch API cuts inference costs 50%, and a custom 4-skill agentic dev framework with TDD enforcement and adversarial reviewers has 10x'd codebase velocity.
Booz Allen Hamilton
Software Engineer, SF — June 2022 - June 2025
GAMECHANGER
A DOD policy-search platform serving 6,000+ users across 50+ authoritative sources. Owned backend routes, the database layer, and the Elasticsearch/OpenSearch indexes powering hybrid search over sentence-transformer embeddings, plus bulk ingestion of user-uploaded review data — hardening spreadsheet uploads with row-level retries and corrected record mapping to take a 450s upload to 7s. Added a Llama-based extraction stage as an expensive last resort in the document pipeline, recovering OCR'd CLIN fields that regex parsing missed and clearing the full backlog of failures. Led the build modernization that cleared the Anchore security scan — migrating off an outdated Create React App that blocked dependency upgrades, surfacing leaked env vars and stripping polyfill bloat that hurt bundle size and page-load metrics — and migrated the data layer from JavaScript to TypeScript with Zod validation.
Internal prototype - ProdigAI
Internal research project into advanced document retrieval, and analysis including RAG pipeline, various RAG methods, claims extraction, contradiction analysis, and chatbot. An internal React + FastAPI platform (Docker Compose) built on OpenSearch sparse embeddings, with hybrid search, a chat interface, and a recommendation engine. Parallelized the ingestion pipeline — worker-based PDF reading, processing, embedding, and hash-checked OpenSearch upserts that skip unchanged documents to avoid full reindexing on deploy — cutting 252MB ingestion from 83s to 12s.
VA Aspire
Sole developer on an AI Tech Sprint finalist — a full-stack Next.js application on AWS that trains veterans on AI fundamentals through interactive quizzes.
MITRE Corporation
Software Engineer, Shaw AFB — Jan 2020 - June 2022
Sole AI engineer on CARPE Dronvm — a MITRE Counter-UAS platform turning any soldier's smartphone into a crowdsourced drone sensor for AFCENT and ARCENT, validated in a 50 km live field experiment from McEntire JNGB to Poinsett Range and later licensed to AeroParagon for commercial drone defense; named inventor on the issued patent with a share of the IP. Fine-tuned Detectron2/ResNet detectors on a hand-labeled dataset (Label Studio + MLflow, trained on MITRE's HPC cluster) scoring 40 mAP on a 15% held-out split, shipped a quantized Caffe2 inference server behind Flask, Nginx, and Docker with GPS-based geolocation that placed each detection on the command-center situational-awareness map, and wired Firebase push into the Android side of the Xamarin client.
Name
Rihaku is the Japanese name for Li Bai, a Tang dynasty poet. I like his poetry. I often feel the vibes of "Drinking Alone Under the Moon". There are many comparisons between programming and poetry.
"I invite the bright moon and turn to my shadow. We are now three." Late nights and Claude is like a shadow I presume.