Projects
A collection of AI systems, web applications, and engineering solutions I've built for clients and personal exploration.
10 projects found
How well can a language model repair a bug written by a different model — or by a human? This automated-program-repair benchmark puts models on both sides of the problem. Each model injects faults into twenty curated SWE-bench Lite instances, singly or compounded on top of the existing human-written bug, and then every model — including the injector — attempts the repair, producing an injector-by-repairer matrix that measures self-bias alongside standard pass@k.
PythonSWE-benchDockerLiteLLMpytest
Leading engineering on AI-assisted bidding workflows — the retrieval, the language-model pipelines, and the platform that has to stay up around them. The interesting work is making LLM features behave in production: grounded, tested, and honest about their failure modes.
TypeScriptAWS BedrockRAGPostgreSQLNext.js
The site answers questions about Josh in his own words — a digital twin that speaks _about_ him, never _as_ him. It streams responses from Claude on AWS Bedrock through a Lambda response stream, grounded in a fixed persona plus the same public corpus that powers the rest of the site, so the twin and the portfolio can never drift apart.
Claude on BedrockAWS LambdaTypeScriptZod
Jarvis is a self-hosted personal AI assistant split between a home Mac Mini — the brain: gateway, memory, local models, voice, code sandbox, skills — and a VPS for public ingress, connected over a private Tailscale network. Local-first is the point: a Qwen3 model served through Ollama, a pgvector memory store with bi-temporal corrections (facts are superseded, never deleted), and a wake-word-to-speech voice loop with barge-in all run on hardware at home.
PythonTypeScriptLangGraphFastAPIpgvectorOllama
Mailsweep is sender-level bulk cleanup for Gmail that treats reversibility as the product invariant. It indexes metadata only — headers and a snippet, never bodies — groups the mailbox by sender, explains what looks cleanable and why, and executes reviewed sweeps as invertible label arithmetic. Every action snapshots each message's prior state, so undo restores it exactly, down to not un-archiving mail that was already archived before it was trashed.
TypeScriptNext.jsGmail APIBullMQPostgreSQLClaude Haiku
Federated learning keeps raw data on the device, but the trained model can still betray who was in the training set. This graduate research project (M.S. CS, University of Central Florida) builds the full loop — a Wide ResNet 28-4 trained on CIFAR-100 with Flower across ten simulated clients under a non-IID Dirichlet partition, then attacked with black-box membership inference from the Adversarial Robustness Toolbox to measure that leakage directly.
PyTorchFlowerOpacusAdversarial Robustness Toolbox
NutriLLaVA generates personalized recipe suggestions from a photo of the ingredients you have — a multimodal pipeline on LLaVA 1.6 that first names what it sees, then feeds that back with the user's dietary goals to produce a recipe. The zero-shot version runs the 34-billion-parameter model behind a Gradio interface.
LLaVAPyTorchQLoRATRLAWS SageMakerGradio
Retrieval-augmented generation only earns trust when it shows its work. Hybrid search, reciprocal rank fusion, a rerank pass, and numbered citations — so the model's answer points back at the source instead of asking you to take it on faith.
AWS BedrockTitan EmbeddingspgvectorReciprocal Rank Fusion
Production AI lives or dies on its failure modes. Moderation that fails open (hold, don't reject), rate limits that fail open when the limiter is down, and observability that never propagates its own errors — the boring decisions that keep a product trustworthy.
Claude on BedrockInngestPostgreSQL
This site is the portfolio — a game-quality 3D world with an AI digital twin, rebuilt in public. Built on React Three Fiber and the three.js WebGPU renderer under a strict progressive-enhancement contract: every visitor gets a working experience, down to a 2D shell that search engines and screen readers fully understand.
Three.jsWebGPUReact Three FiberRapierNext.jsTerraform