Projects with constraints attached.

A few shipped systems, prototypes, and experiments. Each one is framed by the part that usually gets hand-waved: permissions, retrieval quality, cost, deployment, or the limits of the current build.

Agents

zenn_ai

deployed

A Twitch agent built for messy chat: permissions, memory, local-model fallback, and operator deploys.

TypeScriptPythonLangGraphMCPlocal LLM
Read more →

agents

polished prototype

My guardrails for coding agents: hooks, allowlists, and one contract across tools.

Node.mjs hooksAGENTS.mdallowlists

RAG / Retrieval

ZenMind

polished prototype

A notes assistant that cites while it answers and retries retrieval when the first pass looks weak.

FastAPILangGraphpgvectorbge-m3BM25+RRF
Read more →

langchain-rag-app

working prototype

A local document Q&A prototype with swappable HuggingFace models and 8-bit quantization.

PythonLangChainStreamlitChromaDBFAISS

java-spring-ai

working prototype

A Spring AI + pgvector starter for teams that need retrieval in the Java stack.

JavaSpring AIpgvectorGradle

Web

zennlogic.com

shipped

An edge-rendered Astro site with a public AI command bar that has quotas, verification, and caching.

AstroCloudflareOpenRouterSSER3F
Read more →

exile-view

working prototype

A Twitch Extension for Path of Exile 2 builds, backed by Cloudflare Worker, D1, R2, and PubSub.

TypeScriptCloudflareD1R2PubSub

zengineer.cloud

deployed

A marketing/blog site with route-aware WebGL, Sanity content, and E2E coverage.

Next.jsReact 19R3FSanity