The tools I reach for daily. Most of these I picked for reasons specific to how I work — feel free to disagree, but know I've usually thought about it.
Hardware
- 14" MacBook Pro (M-series).
- 27" 4K external display when I'm at the desk.
- Magic Keyboard, Logitech MX Master 3.
Editor & terminal
- Zed — fast, minimal, multiplayer when it matters.
- Ghostty terminal with the Fish shell.
- Claude Code — daily driver for AI-assisted work. Worth its weight.
Languages
- Python — ML, analysis, anything notebook-shaped. Lately reaching for
polarsoverpandas. - Rust — production services. Where I put anything I want to outlive me.
- TypeScript — front-end and anywhere I'd otherwise write Node.
- Go — historical default for one-off CLIs.
Frameworks & libraries
- Next.js for full-stack work, including this site.
- FastAPI for Python HTTP services.
- Actix-web for Rust HTTP services.
- PyTorch when I need a real DL framework; scikit-learn when I don't.
- Tailwind CSS for styling on every project.
Data & infra
- PostgreSQL for transactional data, BigQuery for analytical workloads.
- ChromaDB when I need a vector store quickly.
- Docker + Kubernetes for deployment.
- GCP primarily, AWS opportunistically, Azure for OpenAI access specifically.
ML & AI
- Claude family models. Currently mostly Claude 4.7 Opus via the API.
- GPT-4 / Azure OpenAI when the use case demands it.
- YOLO for object detection; ChromaDB for retrieval.
What this site is built with
Next.js 16, React 19, Tailwind v4, framer-motion, react-markdown + KaTeX, Pagefind for search. Full list in package.json.
Inspired by Wes Bos's /uses and the /uses movement.