## stack
Tools I reach for
Opinions earned the hard way. I care more about boring-correctness than novelty - but I'll swap any of these
for a better fit.
languages
Python (primary, ML/backend, NumPy/SciPy, Pydantic, AsyncIO) · SQL (window
funcs, CTEs, optimization) · Bash (automation, CI/CD) · C++
ml / dl
PyTorch (training, fine-tuning) · MLflow (tracking, registry) · TensorFlow ·
scikit-learn, XGBoost, LightGBM · RNN / LSTM · Optuna · Causal Inference · HF Transformers (NLP,
RAG, LLM fine-tuning) · Model Optimization (ONNX, TensorRT, quantization)
data
Apache Spark (PySpark) · Apache Kafka (streaming) · Polars, pandas,
NumPy, SciPy · Airflow orchestration · dbt · ETL/ELT
platforms
Kubernetes (+ Kubeflow) · Docker · Terraform · AWS (SageMaker, S3, EC2, Lambda,
Athena) · GCP (Vertex AI, BigQuery, Cloud Run, GCS)
ml ops
MLflow tracking + registry · Airflow · CI/CD (GitHub Actions, GitLab CI) · Pydantic
contracts
databases
Snowflake / BigQuery (ELT, analytics, feature stores) · Redis (real-time
features) · DynamoDB (metadata)
vector / llm
ChromaDB, Pinecone · RAG and agentic workflows · fine-tuning LLMs
observability
Prometheus + Grafana · Cloud Monitoring · structured logging · model + data drift
alerts
development ecosystem
Ruff, Black, Mypy, Pytest · Git (branching, collaborative workflows) · type-first,
test-first, review-first · design patterns
# how I actually pick tools
def choose(problem):
if problem.is_novel:
return "proven tool, novel composition"
if problem.is_standard:
return "the team's most-loved standard tool"
return "Ops transparent, optimized for fast debugging at 3am"