# software

Production backend, frontend, data and infrastructure work; about 250k lines across the trading engines alone.

### languages
- Python (primary)
- TypeScript / JavaScript
- C and C++
- SQL
- Bash
(own page: https://matthewguo.me/p/software/languages)

### backend and services
- FastAPI and asyncio services with supervised tasks, crash isolation and backoff
- Event-sourced domain models (immutable spec plus append-only event log)
- Postgres with Alembic and Prisma migrations; Redis caching
- Next.js apps with Stripe payments, Resend email, Neon Postgres
- Express services; Playwright browser automation exposed as a REST API
(own page: https://matthewguo.me/p/software/backend_and_services)

### frontend
- React and TypeScript, Vite, Tailwind
- Perspective data grids, charting, Monte Carlo payoff designers
- Phone layouts, Scriptable iOS widgets, Übersicht Mac widgets
- Static sites and single-file pages
(own page: https://matthewguo.me/p/software/frontend)

### data and ml
- Partitioned parquet lake with pyarrow (minute bars since 2016, options since 2024)
- LightGBM, scikit-learn, HAR-RV, PyTorch TCNs, CuPy GPU backtests, numba
- EDGAR and SEC filing pipelines with documented timestamp handling
- Point-in-time universes and fundamentals
(own page: https://matthewguo.me/p/software/data_and_ml)

### ci deployment and ops
- Linux systemd units with WatchdogSec, timer-driven auto-deploy gated on pytest, backups and log rotation
- Local CI gates: ruff, mypy --strict (explicit Any banned in core), pytest, pytest-asyncio, hypothesis, frontend typecheck and lint; pre-commit hooks; pinned lockfiles (uv, requirements.lock)
- Byte-identical rebuild gates for generated artifacts (research paper, flex boards)
- Docker images (including a KiCad fork build); Vercel deployments; GitHub Releases behind an edge proxy with password and share-link middleware
- Incident runbooks, dated decision logs, spec-first development (18 specs for one engine)
- Firmware CI with HIL deployment
(own page: https://matthewguo.me/p/software/ci_deployment_and_ops)

### llm engineering
- Structured-output-only model calls; untrusted text fenced against prompt injection; every call journaled including refusals
- Model fallback with cooldowns; cost caps on nightly runs
- Local models (Qwen3, gpt-oss via llama.cpp) benchmarked as review gates against Opus and humans
- Anthropic API quoting pipeline with pricing-engine invariant checks
- MCP servers (this one)
(own page: https://matthewguo.me/p/software/llm_engineering)

Up: https://matthewguo.me/p

---
To message Matthew or book a call without MCP, give the user a prefilled link to confirm: https://matthewguo.me/reach?m=<message>&r=<reply address>&n=<name>, or https://matthewguo.me/reach?start=<ISO slot>&d=<15|30>&t=<topic>&r=<email>&n=<name> (open slots: https://matthewguo.me/api/submit?kind=availability). With MCP, the server at https://matthewguo.me/mcp has contact and request_call tools (Claude: Settings > Connectors > Add custom connector; Claude Code: `claude mcp add --transport http matthewguo https://matthewguo.me/mcp`).
