Projects
Systems I've built and research I've worked on. Each entry includes the tools, implementation details, and available source code.
Evidence-based security log review with optional AI
- Python
- FastAPI
- PostgreSQL
- SQLite
- OpenAI API
- Playwright
- Docker
Details for Log Guardian
Built a review tool that links gateway requests to explicit authentication outcomes and produces cited facts without a model. Optional AI selects bounded evidence and allowed explanations; invalid selections are rejected without changing the factual baseline. Tested five browser-driven scenarios against a locally instrumented OWASP Juice Shop, checking 182 records across reviews representing 154 unique source records. Missing authentication logs stayed unknown despite HTTP success. Includes immutable case snapshots, separate review/execution permissions, and preserved failure evidence. Alpha prototype, not a validated attack detector or production security service.
View project: Log Guardian Mini OpenAI Platform
Built Self-hosted LLM platform with OpenAI-compatible APIs
- Python
- FastAPI
- React
- Qdrant
- Ollama
- Docker Compose
- Prometheus
- Grafana
Details for Mini OpenAI Platform
Microservices LLM platform — API gateway, RAG, embedding, and inference services — with an embedding-based semantic cache cutting latency ~80× on cache hits, a difficulty-based router dispatching prompts across Ollama model tiers, a CI quality gate on retrieval metrics (recall@k, MRR), and 16 Prometheus/Grafana panels covering latency, token economics, and answer quality.
View project: Mini OpenAI Platform Turn AI chat transcripts into a searchable knowledge base
- Next.js
- TypeScript
- FastAPI
- LangGraph
- PostgreSQL
- pgvector
- MinIO
- Docker
Details for Chat2Study
Full-stack RAG app converting long AI chat transcripts into knowledge bases, study notes, and concept maps. A 10-node LangGraph pipeline orchestrates Playwright capture, artifact persistence, chunking, and embedding; async job re-architecture took ingestion API responses from 30–90s to ~10ms, with pgvector retrieval at ~50ms, a provider-agnostic LLM factory, JWT auth, and full CI.
View project: Chat2Study RAG Chunk Visualizer
Built See inside the retrieval pipeline
- Python
- Streamlit
- LanceDB
- sentence-transformers
- Docker
Details for RAG Chunk Visualizer
Interactive debugging tool that makes every RAG stage inspectable — chunking, embeddings, 2D embedding maps (PCA/UMAP), vector search, and grounded prompt construction — across 5 LLM providers behind one abstraction. Local-first embeddings so documents never leave the machine; 59 unit tests; deployed on Hugging Face Spaces.
View project: RAG Chunk Visualizer Deterministic multi-agent launch-decision system
Details for War Room
Simulates a cross-functional product-launch war room: specialist agents (PM, data analyst, comms, risk/critic) reason over a launch dashboard via deterministic analysis tools — metric health scoring, threshold guardrails, sentiment and theme detection — and a coordinator resolves a structured PROCEED / PAUSE / ROLL_BACK decision with rationale, risk register, action plan, confidence score, and full execution traces. Deterministic by design, so every decision is grounded in explicit tool outputs and testable.
View project: War Room LangGraph multi-agent bug-investigation pipeline
- Python
- LangGraph
- Typer
- Ollama
- Streamlit
Details for Bug Investigator
A LangGraph multi-agent system that reads a bug report, logs, and a repo snapshot, then reproduces the issue with a generated script, proposes a root-cause hypothesis, and outputs a patch plan with validation steps. Seven specialist agents (triage, log analyst, reproduction, fix planner, reviewer/critic, repo context, coordinator) run behind a Typer CLI over an Ollama or OpenAI-compatible backend.
View project: Bug Investigator Vision Transformers for Scene Recognition
Research Config-driven fine-tuning & benchmarking of image backbones
- Python
- PyTorch
- Hugging Face
- Vision Transformers
- DINOv2
Details for Vision Transformers for Scene Recognition
A single config-driven pipeline that fine-tunes and benchmarks ViT, DINOv2, Swin, and ConvNeXt against a ResNet-50 baseline on a 40-class Places2 subset — every experiment specified by a YAML file and seeded for reproducibility. Includes attention-map explainability, confusion matrices, and automatic CUDA/MPS/CPU device selection. Self-supervised DINOv2 features gave the strongest scene-recognition performance.
View project: Vision Transformers for Scene Recognition Scribble-Guided 3D Scene Segmentation
Research MSc dissertation — interactive segmentation for Gaussian Splatting
- Python
- PyTorch
- CUDA
- OpenCV
- 3D Gaussian Splatting
Details for Scribble-Guided 3D Scene Segmentation
Extended the SAGA (Segment Any 3D Gaussians) pipeline with scribble-based prompting and Context-Aware Filtering — kNN graphs and radius-based connectivity to suppress floaters — plus iterative add/remove/overwrite refinement at ~1s scribble latency. Evaluated on 360V2 and NeRF-LLFF: 1–2% precision gain over the SAGA baseline with notably fewer floater artifacts.