Concepts in MLOps & Infrastructure, page 2
Feature Definition Language: Define ML Features as Code
A feature definition language is like infrastructure-as-code for ML features. It lets you define a feature's source and schema once, then use it for both offline training and online serving, ensuring consistency.
Point-in-Time Correctness: Avoiding Data Leakage in ML
A point-in-time correct join is a time-traveling lookup for ML features, grabbing the most recent values known *at the time of an event*. It's vital when building training data from feature tables that update at different rates to prevent data leakage.

Feature Governance: Taming Your ML Inputs
Feature governance treats ML inputs like code, enforcing consistency from training to production. It's a central system of record for what data your models see. This prevents training-serving skew.
Entity Embeddings: Smart Maps for Categorical Data
Entity embeddings turn categorical data like user IDs into dense vectors, creating a "map" where similar items are neighbors. This is used in neural networks to handle high-cardinality features efficiently, avoiding the memory bloat of one-hot encoding.
TensorBoard: The Dashboard for Your ML Model
TensorBoard is the dashboard for your ML model, showing what's happening inside during training. It tracks key metrics like loss and accuracy, visualizes the model's structure, and helps you debug performance. The main footgun is not logging the right data.
MLflow Tracking: A Lab Notebook for Your ML Experiments
Think of MLflow Tracking as a lab notebook for your models. It logs parameters, metrics, and artifacts for every training run, letting you compare results and find the best model. The main footgun is forgetting to set a remote server, trapping logs locally.
Model Signature: The API Contract for Your ML Model
A model signature is an API contract for your ML model, defining the exact shape and types of its inputs, outputs, and parameters. It's used by platforms like MLflow to validate requests and enable safe deployments. Forgetting it will block model registration.
Hydra: Composable Configuration for Complex Apps
Hydra treats configuration like LEGOs. Instead of one monolithic file, you compose small, reusable config pieces for each run. It's ideal for ML experiments where you override settings from the command line.
Model Lineage: The Git History for Your AI
Think of model lineage as the git log for your AI, tracking every input from data to code that created it. It's essential for reproducing models, debugging failures, and satisfying regulatory audits.
PMML: The 'Save File' for Machine Learning Models
PMML is like a universal "save file" for ML models, using XML to describe everything needed for prediction: features, preprocessing, and model structure. It enables training in Python and deploying in Java. The footgun: verbose files and partial tool support.

Python Virtual Environments: Isolate Project Dependencies
A Python virtual environment is a self-contained directory with its own Python interpreter and packages, preventing dependency conflicts between projects. The biggest mistake is checking the environment folder into source control; it's disposable and meant to…
Conda Environments: Isolate Your Project Dependencies
Think of a Conda environment as a separate workshop for each project, with its own tools (packages) and Python version. This prevents dependency conflicts when Project A needs a different library version than Project B.
Docker Bind Mounts: A Portal to Your Host Filesystem
A bind mount is a portal from your host machine's filesystem directly into a container, where changes on either side are reflected instantly. Use it for live code development, but never for production data, as it creates a major security risk.

Dev Containers: Your Dev Environment as Code
A dev container packages your entire development environment—tools, libraries, and settings—into a single, portable container. Use it to standardize team environments, simplify onboarding, and ensure consistency between local dev and CI.
Configuration as Code: Version Control for Your Settings
Configuration as Code treats your system settings like source code: defined in files, versioned, and automatically applied. It's used to manage app settings or service credentials across environments, preventing manual errors.
Multi-stage Docker Builds: Lean Images, Fast Deploys
Build your app in one container stage and run it in another, separate one. This keeps your final Docker image lean by shipping only the compiled artifact, not the entire build environment, compilers, and source code.
Secrets Management: Beyond Environment Variables
Treat secrets like cattle, not pets: they should be temporary and replaceable. Use a central vault to dynamically inject credentials into apps at runtime, especially in CI/CD and containerized environments.
Nix: Reproducible Builds Through Functional Package Management
Nix treats system configuration like pure functional programming, ensuring reproducible builds by isolating every package into a unique, immutable path. It's used for reliable CI/CD and consistent dev environments. The footgun is its steep learning curve.
NVIDIA CUDA: General-Purpose GPU Computing
CUDA unlocks a GPU's thousands of cores for general-purpose computing, not just graphics. It's key for accelerating tasks like machine learning by running the same operation on massive datasets in parallel.
Slash ML Training Costs with Spot Instances
Spot Instances are like flying standby for compute: you get a massive discount but can be 'bumped' if someone pays full price. Use them for ML training jobs that can be paused and resumed. The footgun is using them for tasks that can't tolerate interruption.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles