skip to content

./projects

build log

Selected things I've built across security, AI/ML, and backend — production services, hackathon prototypes, and research projects.

2026

WraithRun: Local-First AI Incident Triage

Agentic ReAct loop in Rust that runs host-level investigations on a local LLM.

securityai-ml

An incident-response runtime that triages host evidence on the analyst's machine using a local LLM (ONNX, GGUF, or SafeTensors). An agentic ReAct loop iteratively picks investigation tools (logs, listeners, persistence, accounts, processes) and synthesizes severity-scored findings with full audit trails. Supports multiple backends (CPU, CUDA, DirectML, CoreML, TensorRT, QNN, Vitis) and falls back to a deterministic dry-run so triage never stalls when inference fails.

  • Bring your own model. No cloud APIs, no data exfiltration, no vendor lock-in.
  • Evidence bundles with SHA-256 chain-of-custody and a JSON adapter for SOAR / CI gating.
  • Deterministic fallback when live inference fails, with machine-readable reason codes.
RustONNX RuntimeGGUFSafeTensorsReActSQLite

2026

MemoryRoots: Offline AI for Indigenous Knowledge

Offline-first Gemma agent that interviews village elders and builds a searchable knowledge graph.

ai-mlfullstack

A fully offline system to preserve endangered indigenous knowledge in communities where cloud AI isn't an option. A single Gemma model runs voice-guided interviews with elders, identifies plants, tools, and artifacts from photos, and uses native function calling to turn transcripts into structured knowledge-graph entries. Retrieval blends FTS5 keyword search with ChromaDB semantic search, and every answer cites the elder it came from and surfaces safety warnings. Ships an Unsloth LoRA fine-tuning recipe and a Gemma Edge fallback for mobile-class hardware.

  • 100% offline inference. No cloud APIs or keys; one Gemma model handles reasoning, vision, and extraction.
  • Hybrid retrieval (FTS5 keyword + ChromaDB semantic) with per-elder attribution and safety surfacing.
  • Offline speech-to-text (Whisper) and text-to-speech in 100+ languages (espeak-ng).

2025

pyfaest: Python Bindings for FAEST

PyPI-published CFFI bindings to the NIST-PQC FAEST signature scheme. All 12 parameter sets, prebuilt wheels.

security

A Python wrapper around the C reference implementation of FAEST, a NIST post-quantum signature candidate built on symmetric primitives (AES-VOLE) instead of structured lattices. Ships all 12 FAEST parameter sets with automatic memory-clearing of private keys. Prebuilt wheels for Linux x86_64/aarch64 and macOS arm64/x86_64 across Python 3.8 to 3.13, so consumers don't need a C toolchain.

  • All 12 FAEST parameter sets (128/192/256-bit, fast vs small variants, EM mode).
  • Prebuilt wheels. No compilation step for end users.
  • Pythonic API with typed exceptions for keygen / sign / verify failure paths.

2026

Civic-Aid Navigator: Multi-Channel Disaster Aid

Government disaster-aid intake across web, SMS, and a caseworker dashboard, powered by IBM watsonx Granite agents.

ai-mlfullstack

A disaster-relief intake platform built for IBM's AI Experiential Learning Lab that meets citizens wherever their connectivity allows. Three surfaces share one agent workflow: a universal web intake form, an SMS path for low-bandwidth and feature-phone users, and a caseworker triage dashboard. An agentWorkflow service layer wraps IBM watsonx.ai Granite models and Orchestrate skills behind a deterministic mock mode, so demos stay reliable with zero credentials while real models drop in via env vars.

  • Three intake channels (web, SMS, agency dashboard) over a single agent workflow.
  • watsonx Granite + Orchestrate hooks with a credential-free mock mode for reliable demos.
  • Netlify serverless deployment with a live public POC.
ReactTypeScriptViteNetlify FunctionsIBM watsonx.aiGranite

2024

SAARANSH: AI Minutes of Meeting

Fine-tuned BART-large for long-transcript meeting summarization.

ai-mlfullstack

Led a 4-person team to build an end-to-end AI meeting-minutes generator. Fine-tuned BART-large on AMI and ICSI datasets and extended the effective context from 1024 to 8000+ tokens using n-gram overlap stitching. Deployed as microservices behind a Node.js/Puppeteer bot that joins Google Meet calls and streams transcripts in real time.

  • Context extension from 1024 to 8000+ tokens via n-gram overlap.
  • Autonomous Google Meet bot (Node + Puppeteer).
  • 2 copyrights + merit position at Aavishkar Research Convention 2024.
PythonPyTorchBARTNode.jsPuppeteerReact

2022

Tracing E-Messages via Digital Stamping

Elliptic-curve signatures + smart contracts to attribute electronic messages.

security

Smart India Hackathon prototype. Built a system for law enforcement to trace the origin and propagation of flagged electronic messages using ECDSA digital signatures anchored to a blockchain. Wrote the API gateway for smart-contract integration and a React dashboard for forensics analysts.

  • ECDSA-signed envelopes anchored on-chain.
  • API gateway bridging Node and Solidity contracts.
  • Poster at Conference on Technologies for Future Cities 2022.
SolidityNode.jsReactEthereumECDSA