Skip to content
View jameswniu's full-sized avatar

Highlights

  • Pro

Block or report jameswniu

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jameswniu/README.md

James W. Niu

Sr. Staff AI/ML Engineer, 10+ years. I build multi-agent systems that ship, and I measure them before I believe them.

Built work, with receipts. Every project below runs, and every claim traces to an eval, a probe, or a logged run. The receipts that proved me wrong are here too.

A wrong number in a dashboard fails loudly. A generative system fails plausibly: a mouth trailing the audio by four frames, a cited statistic with nothing behind it. Those are invisible to a type check, obvious to a person, and different again tomorrow. So I capture human judgment as labels, compile it into thresholds, and wire it into gates that can refuse to spend.

If you want Go to
One project, read deeply The featured harness
Range across problems The table of six
How I work Principles I work by

Featured: Three hard problems in AI multimodal pipelines

autonomous-ads-pipeline-multimodal-evals

7 steps, 4 guards, 10 probes · 10 of 10 named gating thresholds derived from labelled exemplars · 48 exemplars graded by hand, 42 calibration scenes · 28 ad versions across 4 engines · 10 spec ads for real products

Three problems the field has not settled, and one loop that does all three. A multi-agent system I run in production shot thirty-eight ads with nobody watching, against metered video engines, and it could only spend when its own checks said yes.

  1. It shoots with no director. Boards, prompts, engine calls, re-rolls and delivery ran unattended, and every request landed in an append-only ledger.
  2. It grades pixels, audio and timing instead of text, against 48 exemplars I labelled by hand. The grading splits three ways.
    • Process evals check that every step ran and its gate fired before money moved.
    • Outcome evals check that every claim on screen matches the product's own live page.
    • Quality evals score taste against the golden set, re-derived for each audience.
  3. It routes each brief to the engine that wins that audience. Four engines shot the same five briefs and no single engine won all five, so the winners table picks per brief, the way Perplexity picks a model per question, here for video.

The evals overruled me, too. Ten scoring models I built were thrown out in one day for disagreeing with the human labels, and a lip-sync check that shipped backwards was caught doubling the error it was built to remove.

Six more: Production AI on real problems

Ranked by priority, one per repository, nothing listed twice.

Focus Project What it solves Who benefits
Voice AI
Speech‑to‑Speech Twilio PSTN WebSocket ElevenLabs LLM Failover Latency SLOs Eval‑Gated CI Observability
realtime-voice-agent-turn-taking-stack A production voice agent on a real phone number: SLOs met over its lifetime, incidents postmortemed, releases gated by a 61-case suite Support, scheduling, and anyone shipping voice agents
Reinforcement Learning
Multi‑Agent RL PPO PyTorch Gymnasium MAPF FastAPI Docker
multi-agent-rl-mapf-drone-navigation Many drones planning conflict free paths at once, in real time Robotics, drone, and simulation teams
LLM Evaluation
Prompt Engineering Llama 3.1 8B lm‑eval‑harness Ollama Ablation Benchmarks Wilson CI Load Testing
self-hosted-llm-evals-lab Knowing which prompt strategy actually wins, by statistics instead of vibes ML platform and LLM eval teams
Fine-Tuning
DistilBERT Hugging Face PyTorch ONNX int8 LLM‑as‑Judge FastAPI Docker
fine-tuning-turn-detection-model Knowing whether the caller is done talking before the agent speaks: 58 ms p95 on CPU, zero false interruptions on a frozen human gold set Voice AI, conversational AI, and applied ML teams
MCP Servers
Model Context Protocol FastMCP OAuth 2.1 Auth0 Self‑Hosted Atlassian Docker Audit Logging
onprem-prod-bitbucket-atlassian-mcp AI agents that cannot reach self-hosted Bitbucket, Jira, or Confluence Enterprise platform and developer experience teams
Computer Vision
OpenCV CNN PyTorch ONNX int8 Image Preprocessing Object Detection FastAPI Docker Human‑in‑the‑Loop Pytest Gates GitHub Actions
synthetic-image-recognition-cnn-harness Reading checkboxes off scanned forms where a misread box becomes a wrong decision, with the uncertain ones queued to a person Document processing, real estate, and applied computer vision teams

Two things I learned by being wrong

  1. Passing tests say nothing about what you never thought to test. Every check passed while the presenter's dark top vanished into a black background and a floating head shipped, because nobody had written that question down. Now every suite I build carries a written list of what it does not measure.
  2. A success message is not a result. Every agent reported success while the files it handed over were empty, because each one looked for the others at an address that only works on one machine. Now every handoff verifies the address and every file reports its size, so an empty one cannot pass as done.

Principles I work by

  1. Chat output is not evidence. The database write, the rendered file, and the logged artifact size are the evidence.
  2. Degrade loudly, never silently. Every fallback is logged; a green checkmark over an empty artifact is the worst bug in agentic systems.
  3. Spend where the artifact is judged. Flagship models on deliverables, fast models on hot paths; cost per accepted deliverable beats cost per token.

Skills

  • Languages: Python, SQL, TypeScript, JavaScript, Go, Bash
  • Full-stack & web: React, Node.js, TypeScript, Vite, HTML/CSS, responsive web apps, streaming chat UIs
  • APIs, RPC & streaming: REST, FastAPI, gRPC, WebSockets, Server-Sent Events (SSE), streaming APIs, webhooks, OAuth 2.1
  • LLMs & agents: Agentic AI, multi-agent systems in production, LangGraph, LangChain, Model Context Protocol (MCP), tool and function calling, prompt and context engineering, OpenAI API, Anthropic Claude API
  • Search, retrieval & RAG: RAG, vector search, semantic and hybrid search, embeddings, reranking, approximate nearest neighbor (ANN), vector databases (FAISS, Turbopuffer), relevance engineering
  • NLP: Information extraction, text classification, semantic matching, thematic and qualitative analysis
  • Evaluation & guardrails: Evaluation engineering, LLM-as-a-judge, golden datasets, groundedness and hallucination evals, multimodal evals, process, outcome and quality evals, eval-gated CI, guardrails, output validation, prompt-injection testing, PII handling, A/B testing, ablation studies, statistical analysis
  • Observability & tracing: Langfuse, LangSmith, Datadog, Prometheus, Grafana, distributed tracing, structured logging, metrics and alerting, LLM observability
  • Voice & speech: Conversational AI, voice AI, ASR, TTS, turn detection, voice cloning (ElevenLabs), Twilio, PSTN telephony
  • Video & creative AI: Text-to-video and video generation, avatar video (HeyGen), ffmpeg, ad tech, creative testing
  • Machine learning: PyTorch, deep learning, fine-tuning (Hugging Face, DistilBERT), computer vision (OpenCV, MediaPipe, CNNs), reinforcement learning (multi-agent RL, PPO), ONNX int8 quantization, generative AI
  • Infra & MLOps: MLOps, LLMOps, Docker, Kubernetes, Helm, CI/CD (GitHub Actions, Harness), AWS (EKS), Azure, self-hosted LLM serving (Ollama), PostgreSQL, Snowflake
  • Models: Claude (Anthropic), GPT (OpenAI), Llama, Voyage AI

Open to work

Sr. Staff / Principal AI engineering: agentic systems, LLM evals, and the guardrails that make them safe to run unattended. San Francisco, or remote.

Role titles I map to: Staff AI Engineer, Principal AI Engineer, Applied AI Engineer, Machine Learning Engineer, AI/ML Engineer, Forward Deployed Engineer (FDE).

The fastest way to evaluate me is to not take my word for it. No accounts, no API keys, no GPU. Needs python3 and ffmpeg:

git clone https://github.com/jameswniu/autonomous-ads-pipeline-multimodal-evals
cd autonomous-ads-pipeline-multimodal-evals && pip install -r requirements.txt
python3 evals/derive.py

It prints every gating threshold in that harness beside the labelled pass and the labelled reject that bracket it, recomputes the shipped exemplars rather than reciting them, and exits nonzero if any constant has drifted outside its own evidence.

Hiring, or want the walkthrough: LinkedIn | jameswnarch@gmail.com

Pinned Loading

  1. candidate-vector-search-rerank-semantics candidate-vector-search-rerank-semantics Public

    Semantic candidate search and information retrieval over ~200K profiles: Voyage-3 embeddings, hard/soft relevance filtering, and GPT-4o-mini reranking across 10 role configs. Exhaustive vector-data…

    Python

  2. nlp-clinical-trial-eligibility-screening nlp-clinical-trial-eligibility-screening Public

    Screens synthetic patients against 2 clinical-trial protocols and abstains instead of guessing: evidence-cited PASS/MAYBE/FAIL per criterion, confidence you can recompute by hand. Two golden tiers …

    Python

  3. agentic-whatsapp-actions-api-daemon agentic-whatsapp-actions-api-daemon Public

    WhatsApp's official API is Business-only and never touches your personal chats or groups. This wraps the WhatsApp Web protocol in a local HTTP API any client can drive: agents (OpenClaw, Claude Cod…

    Go

  4. questions-to-sql-intent-router questions-to-sql-intent-router Public

    An intent classifier routes plain-English questions to document retrieval (FAISS) or to SQL generated from the question and validated before it runs. 100 percent query validation, PII and prompt-in…

    Python

  5. customer-survey-qualitative-thematic-analysis customer-survey-qualitative-thematic-analysis Public

    Thematic coding of open-ended survey text without a predefined codebook. Claude Opus 4.5 infers each question from the answers rather than the header, clusters 3 to 5 themes, and classifies every p…

    Python

  6. meta-pixel-cookie-tracking-explorer meta-pixel-cookie-tracking-explorer Public

    Interactive exploration of how Meta's tracking pixel and cookie ecosystem works. Four dimensions: perception, structure, source, time.

    HTML