uses/ · last updated 2026-07-09

What I use to do the work.

The /uses pattern — named, dated, no marketing. Recruiter signal: this is a working researcher’s stack, not a 2018-era ML-engineer’s. Update cadence is quarterly or on tooling event.

Hardware

  • Primary laptop
    Apple MacBook Pro 14" (M-series)
    Runs Python + Astro + KaTeX builds comfortably; instant resume.
  • Secondary monitor
    LG 27" 4K UltraFine
    Single-column reading + multi-pane code/terminal.
  • Phone
    Standard Android
    Not on the engineering loop; for comms only.

Editor & shell

  • Editor
    Neovim (LazyVim distribution)
    Modal editing + LSP for Python / TypeScript / MDX.
  • Shell
    zsh + oh-my-zsh + starship prompt
    Fast, themeable, portable across macOS sessions.
  • Terminal
    Ghostty
    GPU-accelerated, low-latency, minimal chrome.
  • Git CLI
    git + gh + delta
    gh for the GitHub-aware workflows; delta for diff review.

Languages & frameworks

  • Python
    numpy / pandas / matplotlib / scipy-stack
    ~76.5k LOC of the public work. No TA-Lib — pure stdlib math.
  • TypeScript / JS
    Astro 5 / MDX / KaTeX
    This site. Astro static-first is the right tool for a content-heavy portfolio.
  • SQL
    postgres + sqlite + duckdb (parquet on-disk)
    DuckDB increasingly replaces pandas for parquet-native analysis.
  • Pine Script
    TradingView
    For the charting side when working with non-Python researchers.

Data & backtesting

  • Databento
    US equities + futures tick/rebar
    Point-in-time dataset with embargo-aware access.
  • Binance public klines
    BTC/USDT 1d
    For /positions paper-trade record. Public, no auth.
  • Yahoo Finance (yfinance)
    For backtesting at the OOS layer only
    Look-ahead-free is the gate; yfinance passes G22 only after revision history checks.
  • Custom numpy backtester
    No Lean / backtrader / vectorbt
    The point of the quant projects is shipping the engine from scratch.

AI / agent stack

  • Claude
    Anthropic API (Opus / Sonnet / Haiku routing)
    Tiered dispatch policy lives on /methodology. ~15× cost vs single-agent is the constraint.
  • Agent runtime
    Claude Agent SDK + MCP server (eval-mcp-server)
    Structured-output contracts gated by a mechanical validator.
  • Eval & measurement
    katex / ragas (subset) / Cohen’s κ tooling
    Eval-first discipline is the throughline; G1–G31 gates apply to LLMs.
  • Containerization
    Docker (compose, not swarm)
    Reproducible env for /projects/quant repos that have non-Python deps.

Cloud & infra

  • AWS S3
    public-bucket versioned artifacts
    For dataset snapshots + plot fixtures. Idempotent incremental pulls (PyArrow).
  • GitHub Pages
    static hosting for this site
    Free, fast, tied to the commit history. Custom domain planned.
  • GitHub Actions
    CI: build + deploy + NDA audit
    Build-time NDA guardrail (`src/utils/nda-audit.ts`) fails the build on violation.
  • No k8s / no terraform
    Not at this scale
    Reproducibility via git + requirements.txt + lock files.

Notes & writing

  • PKM
    Plain Markdown in git (no Obsidian / Notion)
    A repo is reproducible; a Notion workspace is not.
  • Long-form math
    KaTeX (client + server-side)
    Server-side for /methodology, /projects, /now. Discord-style [ ] delimiters where MDX risks eating braces.
  • Reading
    arXiv SSRN + López de Prado primary sources
    Never summarize an arXiv abstract I haven’t read; cite the primary source.
Inspired by the /uses tradition. Edit history:github commits.

Specific question about the stack?

If a JD asks for a tool I use, I'll attach the relevant /uses entry plus a runnable reproduction.