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
Use ⌘K to open dispatch editor and /guide to toggle tools and prompts related to the dynamic website tutorial. The agent will highlight parts of the page for you! Every submission is a human-in-the-loop mechanism that sends a tool result message for multi-stepped help. The tutorial agent was built with a fast AOM tree for context to interact with the DOM. Try asking it to give you a rundown of the app. If you get confused about a specific page selection you can highlight text -> ⌘K and add page context to the message.

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-foreground

Secondary

Supporting UI surfaces

--secondary-foreground

Accent

Hover and highlight states

--accent-foreground

Muted

Subdued backgrounds

--muted-foreground

Success

Positive and confirmation states

--success-foreground

Destructive

Error and danger states

--background

Card

Card surfaces and panels

--card-foreground

Contrast

Example displays and inset panels

--contrast-background-foreground

Warm Contrast

Intentional warm accent surfaces

--warm-contrast-foreground

Warm Accent

Emphasis and warm highlight states

--warm-accent-foreground

State

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.

Activity