Uses · The Stack

Uses — My Stack & Setup

The /uses tradition: what I actually reach for, honestly. Not the aspirational stack — the one that ships. Every pick comes with one line of opinion, because a tool you can't have a take on is a tool you haven't used.

I build agents and AI systems on a foundation of classic data science and first-principles ML. This is the toolbox, roughly in the order I reach for it.

01

AI & Agents

LangGraphagent orchestration

Opinion: Explicit graphs beat implicit chains — when the flow is a graph, you can see it, test it, and fix it, instead of trusting a loop you can't inspect.

Function-calling + structured outputstool interface

Opinion: The model should return a schema I can validate, not prose I have to parse — I trust a typed contract over a natural-language promise every time.

MCPtool integration

Opinion: A single protocol beats a pile of bespoke adapters — the whole point is that tools plug in without my agent knowing their internals.

Evaluation harnessesverification

Opinion: Environment-grounded verifiers over LLM-judge theater — check the side effect actually happened, because a model will narrate work it never did.

02

Languages

Pythonprimary

Opinion: Primary, unapologetically — the ecosystem and the ecosystem's momentum are worth more than any language's elegance, and I'm fluent enough to see inside the math.

TypeScriptoccasional

Opinion: Occasional, and only where the front-end forces my hand — the types are welcome, the ecosystem sprawl is not.

03

Data Science

Jupyterexploration

Opinion: The best thinking environment ever built for interrogating data — a notebook is a conversation, and conversations are where insight lives.

scikit-learnmodeling

Opinion: Boring in the best way — reliable, documented, and it refuses to hide the model's assumptions behind a shiny API.

PyTorchdeep learning

Opinion: Tensors you can grab and inspect beat a black box — I can see every gradient, and seeing is how I trust a model at all.

pandasdata wrangling

Opinion: Nobody loves it, everybody needs it — and the moment you fight it instead of using it, your data is wrong anyway.

04

Infrastructure

Dockerpackaging

Opinion: It works on my machine is an excuse, and containers are the polite way to retire that excuse forever.

Kubernetesorchestration

Opinion: Overkill until the day it isn't — I reach for it when the system gets big enough that manual babysitting costs more than the learning curve.

Raydistributed compute

Opinion: Parallelism without the ceremony — it turns a single-machine prototype into a distributed job without rewriting the logic I already trust.

05

Hardware & Workspace

M-series Macsilicon

Opinion: Fast, quiet, and it sips power while a GPU box screams — for everything short of heavy training, it's simply enough.

Mechanical keyboardinput

Opinion: A genuinely shallow vanity pick — I keep one because the tactile feedback makes long writing sessions feel physical instead of abstract.

Dark IDE themeenvironment

Opinion: Less glare, more focus — and honestly, it's the closest thing to a uniform that software work has.

Yours is probably different — and that's the fun part.

The stack is a means to an end, not a personality. This list changes as I learn — it's a living document by design. If something here looks wrong to you, it probably is, and I'd like to hear why.

Let's talk!