Directory
Tools worth knowing
50 tools we actually reach for, each explained in one sentence. No affiliate links, no rankings - if something is here it is because a lesson uses it or we wish it did.
- tools
- 50
- categories
- 7
- open source
- 40
- tracks covered
- 2
Learn & experiment
Somewhere to run a notebook tonight without buying a GPU.
- Runs a Python notebook in the browser on a free GPU, which is enough hardware to follow along without owning any.(opens in a new tab)
Google Colab
- Hosts public datasets and free notebook sessions, so you can practise on real data instead of on a toy array you generated.(opens in a new tab)
Kaggle
- The notebook format itself - run it locally when you want your experiments on your own disk rather than someone's cloud.(opens in a new tab)
Jupyter
- A public registry of models, datasets and demos, and the fastest way to see how a paper was actually implemented.(opens in a new tab)
Hugging Face Hub
- Opens a saved model file and draws its computation graph, which is the quickest way to check the architecture is what you think it is.(opens in a new tab)
Netron
- An archived journal of interactive machine-learning explanations; no longer publishing, still the high-water mark for explaining a mechanism visually.(opens in a new tab)
Distill
Build & train
The frameworks a model is built and trained with.
- The tensor library the from-scratch modules are written in, chosen because its autograd is readable rather than because it is fastest.(opens in a new tab)
PyTorch
- The other major framework, and the one you will meet in older production code and in most enterprise ML that predates 2020.(opens in a new tab)
TensorFlow
- Composes function transformations - gradient, vectorise, compile - over NumPy-shaped code, which makes the maths in a paper unusually easy to transcribe.(opens in a new tab)
JAX
- One consistent API over hundreds of published architectures, so swapping a model is a string change instead of a rewrite.(opens in a new tab)
Hugging Face Transformers
- The array library everything else borrows its semantics from - broadcasting, shapes and strides are worth learning here first.(opens in a new tab)
NumPy
- Classical models and, more usefully, the cross-validation and metrics machinery you should be using long before you reach deep learning.(opens in a new tab)
scikit-learn
- Takes the training loop, checkpointing and multi-GPU boilerplate off your hands once you have written that loop yourself at least once.(opens in a new tab)
PyTorch Lightning
- Runs a hyperparameter search across machines and records every trial, which is the difference between tuning and guessing.(opens in a new tab)
Weights & Biases Sweeps
Track & version
Knowing which run produced the model you are about to ship.
- Logs metrics, configs and artefacts from every run so you can answer 'which change caused that' three weeks later.(opens in a new tab)
Weights & Biases
- Self-hosted experiment tracking plus a model registry, for when the runs cannot leave your own infrastructure.(opens in a new tab)
MLflow
- Plots losses, histograms and embeddings from a local log directory with no account and no network.(opens in a new tab)
TensorBoard
- Puts datasets and model files under Git-shaped version control by tracking pointers instead of gigabytes.(opens in a new tab)
DVC
- Packages a trained model and its Python dependencies into a servable, containerisable unit with one build step.(opens in a new tab)
BentoML
Serve & run models
Getting weights to answer a request, locally or on a server.
- Serves language models with paged attention and continuous batching, which is where most of the throughput on a single GPU comes from.(opens in a new tab)
vLLM
- Pulls and runs a quantised model on your laptop with one command, so you can read a model's output without an API key.(opens in a new tab)
Ollama
- Runs transformer inference in plain C++ on CPUs and consumer GPUs, and is the clearest code to read if you want to see what inference really costs.(opens in a new tab)
llama.cpp
- Executes a model exported to the ONNX graph format across CPU, GPU and mobile backends, decoupling training framework from deployment target.(opens in a new tab)
ONNX Runtime
- A desktop app for downloading and chatting with local models, useful for comparing quantisation levels without writing any code.(opens in a new tab)
LM Studio
- Serves models from several frameworks behind one endpoint with dynamic batching and per-model version control.(opens in a new tab)
NVIDIA Triton Inference Server
Retrieval & vectors
Storing embeddings and finding the near ones fast.
- A library of approximate nearest-neighbour indexes; read it to understand the recall-versus-latency dial before you buy a vector database.(opens in a new tab)
FAISS
- Adds a vector type and ANN indexes to PostgreSQL, which is usually the correct answer when you already run PostgreSQL.(opens in a new tab)
pgvector
- A dedicated vector database with payload filtering, for when metadata conditions have to be applied during the search rather than after it.(opens in a new tab)
Qdrant
- An embedded vector store that runs inside your Python process, which keeps a first RAG prototype down to one dependency.(opens in a new tab)
Chroma
- A vector database with a schema and built-in hybrid search, combining keyword and vector scoring in one query.(opens in a new tab)
Weaviate
- Handles the unglamorous half of retrieval - loading documents, chunking them, and keeping the index in step with the source.(opens in a new tab)
LlamaIndex
- Wires models, tools and retrievers into a pipeline; worth knowing, and worth outgrowing once you can see what it is doing for you.(opens in a new tab)
LangChain
Data & storage
The systems that store it, move it and keep it consistent.
- The relational database the Data Modeling module teaches against, because its documentation explains the mechanism and not just the syntax.(opens in a new tab)
PostgreSQL
- An in-memory data structure server used as a cache, a rate limiter and a queue - three different lessons, one binary.(opens in a new tab)
Redis
- A durable partitioned log that lets producers and consumers move at different speeds without either one blocking the other.(opens in a new tab)
Apache Kafka
- A wide-column store built on the Dynamo partitioning model, and the easiest place to see consistent hashing and tunable quorums in production form.(opens in a new tab)
Apache Cassandra
- A columnar database for analytical queries, and a good demonstration of how much layout on disk decides query speed.(opens in a new tab)
ClickHouse
- A complete relational engine in a single file with a famously readable codebase, which makes it the best B-tree implementation to read.(opens in a new tab)
SQLite
- A small strongly-consistent key-value store backed by Raft, used for the configuration and leader election that must never diverge.(opens in a new tab)
etcd
- A distributed inverted index with ranking, analysers and aggregations - the Search & Retrieval module in deployable form.(opens in a new tab)
Elasticsearch
- S3-compatible object storage you can run locally, so the media and file-delivery module can be practised without a cloud bill.(opens in a new tab)
MinIO
Run it in production
Shipping it, watching it, and finding out why it got slow.
- Packages a service and its dependencies into an image that runs the same on your laptop and on the server.(opens in a new tab)
Docker
- Schedules containers across machines and restarts them when they die; learn the failure modes before you adopt it, not after.(opens in a new tab)
Kubernetes
- Declares infrastructure as files so that what is running can be diffed against what was intended.(opens in a new tab)
Terraform
- Scrapes and stores time-series metrics, and gives you the query language you need to define an SLO rather than eyeball a graph.(opens in a new tab)
Prometheus
- Draws dashboards and fires alerts over metrics from Prometheus and elsewhere - the surface where reliability work becomes visible.(opens in a new tab)
Grafana
- One vendor-neutral standard for traces, metrics and logs, so instrumenting your code does not lock you to a monitoring vendor.(opens in a new tab)
OpenTelemetry
- Collects distributed traces and shows a request's full path, which is the only reliable way to find the hop that ate your latency budget.(opens in a new tab)
Jaeger
- A reverse proxy and load balancer whose config file is a compact tour of TLS termination, upstream health checks and connection limits.(opens in a new tab)
NGINX
- Generates load from a JavaScript test script and reports the percentiles, so capacity planning stops being arithmetic on a whiteboard.(opens in a new tab)
k6