this site has two modes.

BUILD, the engineer who trains models.
BREAK, the one who attacks them.

flip the switch ↑ and everything re-frames.

// 03

The systems. The tools that break systems.

tip: any tech chip with a ? explains itself in plain words. cards open, click one.

VantaLLM

private repo flagship

A from-scratch framework for training decoder-only LLMs. I designed the architecture and made the technical calls, with AI tooling in the loop the way modern teams work. Every piece of it, I can sit down and explain: why it is there, what broke, how we fixed it. A cybersecurity-native LLM stack: my own cybersec tokenizer, adversarial eval hooks, persona-conditioned serving. I built it knowing someone like me would try to break it.

  • Ran the 567M config for 30,000 steps on a single 20GB A100. The same code scales to a 125B bring-up profile by editing a JSON file. No forks, no branches.
  • When ZeRO-3 param-gathers hung the run, we replaced a 128-expert Python loop with three batched tensors. Debugging that is where the real understanding came from.
  • KV-cache decode is bit-identical to no-cache decode, and the tokenizer round-trips SQLi payloads and CVE strings exactly. I test the boring things because the boring things break.
  • The tokenizer is trained on security corpora, so vocab covers CVE strings, payloads, and exploit syntax that general tokenizers shred into garbage.
  • Adversarial eval hooks run against every checkpoint: injection resistance, jailbreak probes, extraction attempts.
  • The multi-node launcher fails fast on NAT and duplicate-IP setups instead of hanging at 0% GPU. Paranoia as a design principle.

→ read the full case study · private · walkthrough on request

  ┌────────────────────────────────────────────┐
  │ VantaLLM · decoder-only · 567,068,416 params│
  ├────────────────────────────────────────────┤
  │ tok(151,003) → emb → 12× [ RMSNorm         │
  │   → GQA + RoPE (shared lazy cache)         │
  │   → dense FFN ⇄ MoE 16e top-2              │
  │     (batched grouped-GEMM, cap=1.25) ]     │
  │ → RMSNorm → lm_head                        │
  ├────────────────────────────────────────────┤
  │ train: DDP / DeepSpeed ZeRO-2·3 · bf16     │
  │ serve: FastAPI · SSE · persona routing     │
  └────────────────────────────────────────────┘
  ┌─────────────────────────────────────────────┐
  │ ARGUS · two gates for AI agents             │
  ├─────────────────────────────────────────────┤
  │ V1 · release gate (local-first)             │
  │  repo/config/skills → 27 canonical rules    │
  │  → live probes (opt-in) → mcp-probe         │
  │  → R = (S_base × C_env) × P_conf            │
  │  → report.json / report.md → PASS | BLOCK   │
  ├─────────────────────────────────────────────┤
  │ V2 · runtime gateway                        │
  │  agent → [request policy → approval 428     │
  │  → upstream → redact/block → audit chain]   │
  │  → model · /healthz · /metrics              │
  └─────────────────────────────────────────────┘

Project Argus

public flagship

A two-layer security platform for AI agents. V1 is a local-first release gate: it audits an agent repo, tools, permissions, secrets, MCP servers, network config, before anything ships. V2 is a runtime gateway that sits between the agent and its model, enforcing deterministic policies on every request and response. The full attack lifecycle, productised: versioned prompt-injection, jailbreak and data-extraction probes against live endpoints, read-only recon of real MCP servers, and a runtime gateway that blocks the attacks V1 predicted. Built by someone who breaks these systems by hand first.

  • 27 canonical rules with explicit capability contracts, AST analysis for Python, structured parsing for JSON/YAML/TOML, text rules for the rest. A structured rule is never silently run against the wrong file type.
  • mcp-probe inspects live MCP servers read-only: initialize + paginated tools/list, zero tool calls. It has scanned the official filesystem server and the configs of Claude Code, Codex CLI, and Gemini CLI.
  • Quality gate on every push: 53 tests, Black, Flake8, mypy, and schema checks, all green. Reports are reproducible JSON + Markdown artifacts a CI pipeline can gate on.
  • The V2 gateway blocks prompt injection with a 403 before the request ever reaches the model, holds dangerous tool calls (delete*) outright, and forces human approval (HTTP 428) on business-impacting ones like send_external_email.
  • Responses get inspected too: credential-looking output is stopped with a 502, sensitive fields are redacted, and every decision lands in a hash-chained audit log that tampering would break.
  • Real-world verification run: pointed at the official pinned MCP filesystem server, 14 tools discovered, 0 tool calls made, 2 HIGH findings, verdict BLOCK. Documented end-to-end in the repo.
MCP · stdio + streamable HTTPPrometheus metrics

→ read the full case study · github.com/aaron-631/PROJECT-ARGUS

ReconForge

public

Recon automation that turns hours of manual enumeration into one command with structured, reproducible output. The toolkit I actually use: nmap + rustscan + ffuf orchestration with intelligent FFUF calibration and wildcard-DNS auto-detection.

BashPythonNmapRustscan

$ open reconforge →

Search Arena

live

Six classical AI search algorithms you can watch think, race against each other, and play against yourself. Full-stack, shipped, and live, with a challenge-link system that validates puzzle solvability via inversion parity.

React 18ViteD3.jsFirebase

$ open search-arena →

my-planner

private

A weekly planner I actually live in: drag-and-drop scheduling on a half-hour grid, synced in real time through Firestore, with Google and Outlook calendars flowing in and Gemini turning plain English into placed events. Built the way a security person builds a personal tool: Google sign-in as federated identity, calendar scopes kept read-only, and the Gemini key is BYOK, it lives in your browser’s localStorage and never touches a server I run.

React 19Firebase Auth · FirestoreGemini 2.5 FlashGoogle Calendar API

$ open my-planner →

more in the lab: security-module · SAP BTP capstone

// 03.5 · arsenal

The toolkit.

No skill bars, no percentages. If it's listed here, I've shipped something with it.

(in terminal-speak this section is man aaron, my manual page. hover anything with a ? and it explains itself in plain words.)

ai/ml systems

  • Distributed training · DDP, multi-node NCCL
  • Training pipelines & data sharding

offensive

  • Reverse engineering · Ghidra
  • CVSS scoring & risk reporting

engineering

  • Java
  • C