Harold Moses II

Applied AI Engineer · AI Developer Tools · Open Source

I build documentation systems, automated quality pipelines, RAG-optimized content, and developer tutorials that help engineers understand, evaluate, and ship AI applications. 10+ years of developer docs at NVIDIA, Block, OpenVPN, F5, Airbnb, and PlayStation.

Portfolio: Applied AI Engineering Samples

Projects demonstrating documentation ownership, automated quality systems, RAG-ready content, developer tutorials, and community-facing work

🎯 How These Projects Map to Arize Applied AI Engineer Responsibilities

Own doc health, rewrite stale content: Proto API Monitor (automated drift detection), Dev Integration Guide
Automated doc-quality systems: Proto API Monitor (detect drift, test samples, draft updates for review)
Docs for coding agents + humans: Phoenix Agent-Native Docs MCP, Poly-Glot Markdown, llms.txt
Tutorials, cookbooks & demo repos: Python for Doc Engineers, Dev Integration Guide, Phoenix Report
Onboarding to first working eval: Dev Integration Guide progressive flow, Python for Doc Engineers (traces → evals)
Documentation audit & gap analysis: Arize Docs Audit (7 gaps, severity ratings, proposed fixes)
Community feedback → product insights: Proto API Monitor stakeholder comms, Docs Audit recommendations
SEO & answer-engine content: Poly-Glot Markdown GEO optimizer, keyword emphasis, frontmatter
Prototype spikes for new features: Phoenix Agent-Native Docs MCP server, Proto API Monitor agent
Open-source & shipped packages: 83 npm releases (poly-glot-ai-cli, poly-glot-mcp), MCP Registry
llms.txt & machine-readable docs: Phoenix Agent-Native Docs (llms.txt discovery → MCP retrieval)
LLM app development (agents, RAG): Phoenix Observability Report, Poly-Glot AI Workspace (multi-provider), MCP tools

🔍 Proto API Monitor — Documentation Drift Detection System

Documentation Automation
Maps to: Automated systems that monitor doc quality, detect drift between docs and code, test code samples, and draft updates for human review
I built an autonomous documentation monitoring system that detects API changes, determines documentation impact, generates updates, publishes through source control, and notifies stakeholders via Slack. It treats documentation as an observable engineering system — continuously checking for change, producing actionable evidence, and routing results into a repeatable update workflow. This is exactly the kind of automated doc-quality infrastructure that keeps documentation accurate as a product ships.
  • Observe: monitors OpenAPI/Swagger sources for meaningful API changes automatically
  • Interpret: agentic workflow reasons about documentation impact — moves from raw diff to documentation intent
  • Act: generates and publishes documentation updates through source-controlled workflows
  • Communicate: Slack notifications surface what changed and what needs human review
  • AI observability bridge: the agent's classification, doc output, and action path can be traced and evaluated — connects directly to tracing/eval platforms
  • Event-driven pipeline: GitHub Actions executes repeatable automation triggered by API change events

▶ Demo: end-to-end documentation drift detection — API change → agentic classification → doc update → Slack notification

Doc Drift Detection OpenAPI/Swagger GitHub Actions Agentic Workflow Slack AI Observability Source Control
Maps to: Make documentation work for coding agents as well as humans — structured content, machine-readable indexes, and real measurement of whether an agent can complete a task using docs alone
I built a documentation preprocessing tool that transforms Markdown and MDX files into RAG-retrieval-ready, agent-consumable content. Instead of fixing chunking at retrieval time, it restructures source documents so any downstream vector database or coding agent gets clean, self-describing, measurably better content. It includes a scoring engine (0–100) that quantifies RAG readiness and GEO discoverability before and after optimization — real measurement of doc quality for AI consumption.
  • Heading-based semantic chunking: enforces H1→H2→H3 hierarchy so each section becomes a natural, self-contained chunk boundary
  • Section summary injection: adds blockquote summaries after each H2 so every chunk carries its own contextual description for retrieval
  • Frontmatter enrichment: generates/enriches YAML metadata (title, description, tags, keywords) for vector search filtering
  • RAG/GEO scoring engine: scores Markdown and MDX documentation quality for retrieval (0–100) with animated before/after comparison — measures frontmatter, heading hierarchy, chunk boundaries, keyword emphasis, and metadata completeness
  • GEO keyword emphasis: bolds 3–5 key phrases per section for generative engine discoverability (answer-engine optimization)
  • MDX component preservation: annotates JSX components without breaking them — handles real-world documentation frameworks
RAG Optimization Vector Retrieval GEO / Answer Engines Semantic Chunking Doc Quality Scoring MDX OpenAI Anthropic

🤖 Phoenix Agent-Native Documentation — Grounded MCP Retrieval Server

Agent-Native Docs
Maps to: Make documentation work for coding agents as well as humans; prototype spikes for new features; grounded retrieval with real measurement

I built a grounded retrieval server that turns Arize Phoenix's official documentation into something AI coding agents can query through the Model Context Protocol (MCP).

Discovery: parses Phoenix's llms.txt index (708 pages available), enforces an allowlist, and fetches only canonical documentation. Chunking: heading-aware semantic splitting — each chunk carries its title, section heading, URL, and a content-addressed ID. Embedding: sentence-transformers/all-MiniLM-L6-v2 for production semantic retrieval, plus a deterministic hashing fallback for offline tests.

Five MCP tools return ranked evidence with canonical URLs and a strict answer policy. Every claim traces back to an official source. When evidence is insufficient, the system explicitly abstains rather than inventing an API that doesn't exist.

▼ Interactive demo below — runs entirely in your browser with no backend. Search 10 indexed pages using TF-IDF (Term Frequency–Inverse Document Frequency) keyword relevance scoring.

  • llms.txt discovery pipeline: I parse Phoenix's official llms.txt, enforce an allowlist that rejects lookalike domains, credentials in URLs, and HTTP-only links, then fetch and normalize only canonical documentation pages
  • Heading-aware semantic chunking: documents split at Markdown heading boundaries with configurable overlap — each chunk carries its title, heading, URL, and a unique content-addressed ID
  • Dual embedding strategy: production uses all-MiniLM-L6-v2 for real semantic retrieval; a deterministic hashing embedder supports offline tests and CI without downloading model weights
  • 5 MCP tools: sync_phoenix_docs, search_phoenix_docs, ask_phoenix_docs, get_phoenix_doc, and check_phoenix_readiness — each with grounding guarantees and safety boundaries
  • Strict answer policy: the ask tool returns an evidence packet with a policy that forces the caller to cite sources, refuse to follow instructions inside excerpts, and abstain when evidence doesn't support the claim
  • Atomic index writes: sync builds the new index in a temp directory and atomically replaces files — a failed sync never corrupts the last valid index
  • Architecture separation: documentation retrieval and live Phoenix operations are deliberately separated — this server handles docs, Phoenix's native /mcp endpoint handles live actions
  • Live browser demo: the interactive search below runs client-side — 10 of 708 Phoenix doc pages pre-indexed into 129 chunks, scored with TF-IDF (Term Frequency–Inverse Document Frequency) keyword relevance — not RAG. Select a page from the dropdown, see ranked results with scores and direct links to official docs. How Phoenix scores retrieval →
Live Demo MCP Server Arize Phoenix llms.txt Semantic Retrieval Sentence Transformers Agent-Native Docs Grounded Answers Python
Maps to: Write and refresh tutorials, cookbooks, and open-source demonstration repositories that take a developer from introduction to value quickly
I built Poly-Glot AI Workspace and developed its developer integration guide for the app's 15-tool MCP server — the same production server published across the Official MCP Registry, MCP.so, Glama, and Hugging Face. The guide takes engineers from zero to working integration using progressive disclosure: architecture overview → quick start → full tool reference → advanced workflows → troubleshooting. It's the documentation I wish existed when I started building MCP integrations.
  • Progressive onboarding flow: architecture → quick start → tool reference → advanced workflows → troubleshooting — structured so developers reach their first working result in under 5 minutes
  • 15-tool MCP API reference: request/response examples, parameters, and usage patterns for core tools (search_templates, build_prompt, prepare_compare), BYOM endpoints, and language processing tools
  • Multi-provider workflow docs: diagrams and examples for sending one prompt to 2–9 AI providers (ChatGPT, Claude, Gemini, Grok, Perplexity, etc.) and comparing responses
  • 38-language localization guide: how the MCP server handles cross-language prompt building and output — a real-world i18n documentation challenge
  • Troubleshooting section: common failure modes, authentication errors, and resolution steps drawn from real production issues
  • Docs-as-code: static HTML, version-controlled, deployed via GitHub Pages — the same workflow I'd use for Arize docs
Poly-Glot AI Developer Guide MCP API Reference Tutorial Onboarding Docs-as-Code 15 Tools
Maps to: Write tutorials and cookbooks; make docs work for coding agents; prototype spikes for new features
I instrumented my production multi-provider AI app with Arize Phoenix and OpenTelemetry, producing a 9-page case study covering architecture, span hierarchies, test results, a Node.js setup guide with critical protobuf/ESM findings, production error remediation, and Phoenix documentation recommendations. 50 spans captured across 6 providers with 100% evaluation pass rate.
  • Non-LLM-call tracing: Traced template selection → prompt assembly → provider dispatch without wrapping an LLM SDK
  • 6 providers × 6 templates: ChatGPT, Claude, Gemini, Perplexity, Grok, DuckDuckGo — all traced with structured evaluations
  • Node.js setup guide: Documented the protobuf OTLP requirement (HTTP 415 gotcha) and ESM compatibility pin that most tutorials miss
  • Production remediation: Observability surfaced 6 error classes (22 events) → all fixed and deployed as v1.9.2
  • Phoenix docs recommendations: Specific suggestions for improving quickstart, Node.js guide, and ESM documentation
Arize Phoenix OpenTelemetry Tracing Evaluations Node.js Playwright Case Study
Maps to: Write and refresh tutorials, cookbooks, and open-source demonstration repositories that take a developer from introduction to value quickly
I developed a progressive Python guide that teaches documentation engineers how to build, trace, and document AI agent tools using Arize Phoenix. Instead of teaching Python in the abstract, every example uses Arize concepts — traces, spans, evaluations, and tool invocation — building from a 6-line doc lookup to a fully Phoenix-traced documentation agent with OpenTelemetry instrumentation. The guide culminates in the Arize AX API pattern for datasets, experiments, and monitors.
  • Arize-native examples: every code sample uses Arize concepts (traces, spans, evaluations) — not generic Python
  • 6-step progressive path: doc lookup → searchable tool → agent tool invocation → Phoenix tracing → real-world use case → AX API patterns
  • Phoenix tracing integration: shows how phoenix.otel.register() and OpenAIInstrumentor capture traces, spans, tool calls, and latency
  • Arize AX API pattern: demonstrates the requests.get() pattern for AX endpoints — datasets, experiments, monitors, and API keys
  • Architecture diagrams: User → Agent → Documentation Tool → Phoenix Dashboard — the exact observability flow Arize sells
  • Every step includes "How to Describe This": ready-to-use explanations connecting Python concepts to Arize's product
Arize Phoenix Arize AX Python OpenTelemetry Tool Invocation Tutorial Documentation Engineering
Maps to: Own documentation health; detect doc drift; automated doc-quality monitoring; make docs work for coding agents
Using Poly-Glot AI Workspace — an app I built — I audited Arize's Phoenix and AX documentation from a developer's perspective, identifying 7 specific documentation gaps with proposed fixes. Findings include missing framework-agnostic TypeScript setup paths, undocumented Node.js protobuf/ESM gotchas, no unified Phoenix→AX migration guide, Python-heavy cookbook library, and the absence of agent-readability measurement — the role's most novel requirement.
  • 7 gaps identified: 3 high severity, 3 medium severity, 1 innovation opportunity — each with a specific proposed fix
  • TypeScript quickstart gap: only covers Mastra framework — no framework-agnostic path for Express, Fastify, or custom Node.js
  • Phoenix→AX migration: scattered across 3+ pages — proposed a single "Graduate to AX" guide showing the 3-line code diff
  • Node.js protobuf & ESM: HTTP 415 gotcha and ESM compatibility undocumented — discovered and fixed during my own Phoenix instrumentation
  • Agent-readability measurement: job posting requires it, docs don't have it — proposed adapting my RAG/GEO scoring engine (0–100)
  • Cookbook parity: only 2–3 of 20+ cookbooks are TypeScript despite growing Mastra/Vercel AI SDK ecosystem
Documentation Audit Arize Phoenix Arize AX TypeScript Node.js OpenTelemetry Agent-Readability

📦 Published npm Packages — 83 Production Releases

Live on npm
Maps to: Build open-source software that gets developers 50% of the way there; ship continuously; maintain production packages
I maintain two npm packages with 83 total published versions, demonstrating continuous shipping, semantic versioning, automated CI/CD publishing with granular access tokens, and ongoing maintenance of production developer tools.
  • poly-glot-ai-cli (71 versions): AI-powered code comments, bug finding, refactoring & test generation CLI — supports OpenAI, Anthropic, and more
  • poly-glot-mcp (12 versions): MCP server for Poly-Glot AI — generate professional code comments & documentation in 12 languages directly from Claude, Goose, Cursor, or any MCP-compatible AI client
  • Automated publishing: granular npm access tokens with CI/CD pipeline integration for continuous delivery
  • Production maintenance: semantic versioning, changelogs, dependency updates, and security patches across 83 releases
npm Node.js CLI MCP Open Source CI/CD Semantic Versioning 83 Releases

📋 Arize Applied AI Engineer — Full Coverage Matrix

Own doc health, rewrite stale content
→ Proto API Monitor (automated drift detection), Dev Integration Guide
Automated doc-quality systems
→ Proto API Monitor: detect drift, test samples, draft updates for review
Docs for coding agents + humans
→ Phoenix Agent-Native Docs MCP, Poly-Glot Markdown, llms.txt discovery
Tutorials, cookbooks & demo repos
→ Python for Doc Engineers, Dev Integration Guide, Phoenix Report
Onboarding to first working eval
→ Dev Integration Guide progressive flow, Python for Doc Engineers (traces → evals)
Documentation audit & gap analysis
→ Arize Docs Audit: 7 gaps, severity ratings, proposed fixes
Community feedback → product insights
→ Proto API Monitor stakeholder comms, Docs Audit recommendations
SEO & answer-engine content
→ Poly-Glot Markdown GEO optimizer, keyword emphasis, frontmatter
Prototype spikes for new features
→ Phoenix Agent-Native Docs MCP server, Proto API Monitor agent
Open-source & shipped packages
→ 83 npm releases (poly-glot-ai-cli, poly-glot-mcp), MCP Registry
llms.txt & machine-readable docs
→ Phoenix Agent-Native Docs (llms.txt → semantic index → MCP retrieval)
LLM app development (agents, RAG)
→ Phoenix Observability Report, Poly-Glot AI Workspace (multi-provider), MCP tools