Jeffrey WangAI & Software Engineer

Website for Jeff's thoughts, demo of AI/UI, and visualization into agent tools.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 built React UI for the DOD's GAMECHANGER AI 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

Built the React UI for DOD's GAMECHANGER AI platform, enabling 6,000+ stakeholders to query policy documents, and cut document processing from 450s to 7s through data chunking and parallelized async calls. Accelerated 252MB PDF embedding pipelines from 83s to 12s via optimized batching, and deployed a VA Aspire AI Tech Sprint finalist — a Llama 2 extraction service with strict parsing guardrails.

MITRE Corporation

Software Engineer, Shaw AFB — Jan 2020 - June 2022

Led AI development in 5-person team building a real-time Counter-UAS detection platform (Kafka, Docker) deployed by USCENTCOM, stabilizing command-center UI state for zero-latency threat tracking during live 50km field experiments. Also deployed custom CV models (Detectron2/ResNet) on crowdsourced drone imagery, achieving 40 mAP (COCO).

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.

Rihaku is also a sake brand.

Activity