Uses
The tools I work with every day
An honest inventory of the stack I study and build my machine learning projects with: from data to model, from model to a served API and on to monitoring. With the why behind each choice, which is the part that actually takes learning.
Language and machine learning
scikit-learn for tabular and PyTorch for deep learning. XGBoost and LightGBM when gradient boosting earns its keep; logistic regression wins more often than people think.
LLM applications
Embeddings and cited retrieval for RAG, agents with bounded tools, and Ollama to run open models locally. Evaluating the pipeline is part of the stack, not an extra.
Serving and infrastructure
The same pipeline that trains is the one that serves. Pydantic validates input so a bad record returns a 422 rather than a silently wrong score.
Monitoring and data
PSI against a reference profile for drift, exposed to Prometheus and drawn in Grafana. SQLite for demos and tests; PostgreSQL when there is something serious to store.
Working environment
uv for environments and package publishing, ruff so I never argue style with myself. Neovim for fast edits, VS Code when it is time to debug calmly.
Hardware
A 4 GB laptop GPU teaches more than it seems: it forces you to think about batch size, checkpointing and whether you really need to train that or a smaller model will do. gpu-gate, one of my tools, was born from wrestling with it.
Books within reach
I study with books before courses: they hold up better under hard questions. Every concept I read, I try to land in a portfolio project.