This page is the proof-of-work layer of the portfolio. The domain pages explain how I think and operate across Trust & Safety, moderation, community, and LLM work. The projects below show what I have actually built, why I built it, how the systems are structured, and where they are useful.
An AI moderation evaluation system built to compare multiple classifiers side by side, normalize their outputs, and surface where they agree, conflict, or fail policy alignment.
ModEval runs text through eight independent AI moderation models simultaneously: enterprise APIs and open-source safety classifiers. The system normalizes every model output into a unified schema, applies AI-powered policy alignment scoring, and highlights disagreements that would otherwise stay hidden inside isolated vendor dashboards.
The core insight behind the project is that disagreements between moderation models are often the most analytically useful signal. When one model says remove, another says review, and a third says allow, that divergence tells you something important about thresholds, training data, policy interpretation, and edge-case behavior.
Runs all models side by side with graceful degradation so one timeout or failing provider does not collapse the whole evaluation pass.
Normalizes scores into a shared allow, review, remove framework, making cross-model comparison usable instead of noisy.
Claude Haiku evaluates whether each model decision matches the selected platform policy such as Reddit, Discord, Facebook, Instagram, or a custom policy.
Surfaces both action conflicts and category conflicts so the interesting edge cases become visible immediately.
ModEval was built from the perspective of someone who has spent years reviewing harmful content manually. The point is not to crown a single model as best. The point is to make disagreement visible, interpretable, and useful. That is what turns a stack of model outputs into something relevant for real Trust & Safety work and AI safety analysis.
From a production standpoint, the project also treats operational resilience as part of the product. Cloudflare proxying, Nginx rate limiting, timeout enforcement, structured logging, and sanitized errors all exist because a useful internal tool still needs to behave like a real system, not a local demo.
A corpus-grounded jailbreak research system built for AI safety practitioners who need retrieval, evidence inspection, and synthesis tied to real prompt corpora rather than generic model memory.
RedLib turns messy public jailbreak datasets into a reproducible, human-reviewed corpus and then supports grounded retrieval, source inspection, and concise synthesis over that corpus. Every answer is tied to retrieved evidence. There is no direct conceptual route where the LLM can skip retrieval and answer from general background knowledge.
That grounding decision is what makes the system useful as a research tool. The aim is not to create a general assistant for jailbreak topics. It is to help practitioners inspect real corpus evidence, study patterns, and synthesize findings without losing traceability.
A staged pipeline handles fetch, convert, audit, normalize, taxonomy discovery, classification, and ingestion with one responsibility per stage.
Combines dense and sparse retrieval inside Qdrant Cloud, then uses reciprocal rank fusion and reranking before synthesis.
Human review sits between taxonomy discovery and corpus-wide classification so the final structure is grounded before scale is introduced.
A responsible-use gate, constrained synthesis, and deliberate prompt inspection flow reduce casual misuse while preserving research value.
RedLib is built on the idea that jailbreak data is a corpus-engineering problem first and a retrieval problem second. Raw scraped prompts are noisy, inconsistent, and hard to reason about. The retrieval layer only becomes trustworthy when the underlying corpus is reproducible, inspectable, and debuggable.
The no-direct-LLM-route decision is equally intentional. If the project is meant to support evidence-based research, then every synthesis answer should remain tied to retrieved corpus material. That keeps the system grounded, auditable, and meaningfully different from a general chatbot.