USES · STACK · LAST UPDATED 2026-08-09QUARTERLY · NO MARKETING · THIS AND NOT THAT

What I use to do the work.

A working researcher's stack. not a 2018-era ML engineer's. Updated quarterly.

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. Every row is `tool name` · `category tag` · `why this and not that`.

CHRISTIAN.T.MACIONUTC+8UPDATED 2026-08-09QUARTERLYOWNER-VERIFIED

Hardware

The metal. Two screens, one keyboard, one phone for comms only.

  • MacBook Pro 14" (M-series)
    computePrimary laptop
    Apple silicon compiles Python + Astro + KaTeX in seconds; battery + instant resume are non-negotiable.
  • LG 27" 4K UltraFine
    displayExternal display
    Single-column reading at 1× and a multi-pane code/terminal at 2× to the only monitor spec that matters.
  • Standard Android
    commsPhone
    Not on the engineering loop; a phone is a comms device, not a workstation.

Editor & OS

Modal editing, GPU terminal, themeable shell. Nothing in this section is new since 2024.

  • Neovim (LazyVim)
    editorEditor
    LSP for Python / TypeScript / MDX, modal editing, and zero startup tax. the only editor that has never broken a flow.
  • Ghostty
    terminalTerminal
    GPU-accelerated, low-latency, minimal chrome. iTerm2 was good until Ghostty was free.
  • zsh + oh-my-zsh + starship
    shellShell + prompt
    Portable across macOS sessions, themeable, and fast. the shell is upstream of the prompt.
  • git + gh + delta
    vcsVersion control CLI
    gh for GitHub-aware workflows (PRs, releases, issue triage); delta for diffs that are actually readable.

Language toolchain

Python + TypeScript + SQL + Pine Script. No TA-Lib, no Lean, no backtrader. the point of the projects is shipping the engine from scratch.

  • Python
    pythonnumpy / pandas / matplotlib / scipy
    ~76.5k LOC of the public work. Pure stdlib math. no TA-Lib, no Lean, no backtrader.
  • TypeScript / JavaScript
    typescriptAstro / MDX / KaTeX
    This site. Astro static-first is the right tool for a content-heavy portfolio with no runtime needs.
  • SQL
    sqlpostgres + sqlite + DuckDB (parquet on-disk)
    DuckDB increasingly replaces pandas for parquet-native analysis; sqlite remains the local default.
  • Pine Script
    dslTradingView
    For the charting side when working with non-Python researchers; not a research language, a sharing format.

Data vendors (free / open)

Every artifact in /projects and /positions is reproducible from the sources below. No proprietary data.

  • Yahoo Finance (yfinance)
    equitiesEquities & ETFs
    Free, point-in-time after revision-history check. Passes G22 of the eval stack with the embargo pattern.
  • CoinGecko / Binance public klines
    cryptoBTC/USDT 1d (and 18 altcoins)
    For the /positions paper-trade record. Public, no auth, deterministic on a symbol seed.
  • FRED (St. Louis Fed)
    macroMacro series
    VIX percentile, fed funds, CPI. the macro overlay inputs. Free, public, revision-history-aware.
  • EDGAR / SEC filings
    fundamentalsIssuer fundamentals
    Primary-source fundamentals when the artifact needs them. XBRL is ugly; the truthfulness is the point.
  • Public CME / CBOE chains
    derivativesOptions chains
    Where options data is needed. Free, no auth, but chain histories are patchy. G22 gates it accordingly.

Hosting & CDN

Free tier, fast, tied to the commit history. Custom domain planned.

  • Cloudflare Pages
    hostingPrimary hosting (CDN edge)
    Primary live URL is the Cloudflare Pages mirror; CDN edge is reliable in PH/sandbox where GH Pages is not.
  • GitHub Pages
    hostingSecondary / fallback
    Kept as a fallback for redundancy; not the primary live URL after the regional edge incident.
  • GitHub Actions
    ciCI: build + deploy + NDA audit
    Build-time NDA guardrail (`src/utils/nda-audit.ts`) fails the build on any violation. the guardrail is the CI step.

Monitoring & analytics

None. By design.

  • No third-party analytics
    privacyNo Google Analytics, no Plausible, no Fathom
    Privacy-by-default; the audience signal that matters (recruiter / founder email) is captured by direct contact, not by JS pixels.
  • No uptime monitor
    privacyNo external pinger
    Static site on a CDN edge. when it goes down, the CDN itself is the canary. Adding a third-party monitor would defeat the privacy posture.
  • No error tracking
    privacyNo Sentry, no LogRocket
    There is no client runtime to throw client errors. The only errors that matter are build-time and NDA-audit catches those.

MDX / Astro toolchain

The build pipeline for this site. Static-first; zero JS by default.

  • Astro 7
    frameworkStatic site generator
    Static-first, zero-JS by default, content-collections + MDX for the /projects corpus. The right tool for a content-heavy portfolio.
  • KaTeX
    mathMath typesetting (server + client)
    Server-side for /methodology, /projects, /now; client-side for inline use. Discord-style [ ] delimiters where MDX risks eating braces.
  • Inter + JetBrains Mono
    typeUI/body + data/math typefaces
    Inter for UI, JetBrains Mono for data and code. Two typefaces, two roles, no third family.
  • sharp + astro-expressive-code
    pipelineAsset pipeline + code blocks
    sharp for image optimization; expressive-code for the syntax-highlighted code blocks in the /proof artifacts.
  • Vanilla CSS (tokens.css + global.css)
    stylesNo Tailwind, no CSS-in-JS
    Design tokens are CSS custom properties; the dark-mode flip is a media query, not a JS library. Total CSS budget < 12KB.
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.