// TRACK
AI & ML Engineering
Python and statistics through to RAG, agents and MLOps.
32 pages in this track
Foundation
4Foundation β part of the ai-ml-engineering track.
Stats eda
2Stats eda β part of the ai-ml-engineering track.
Classical ml
4Classical ml β part of the ai-ml-engineering track.
Llm apis
4Llm apis β part of the ai-ml-engineering track.
Rag
4Rag β part of the ai-ml-engineering track.
Agents
4Agents β part of the ai-ml-engineering track.
Production
5Production β part of the ai-ml-engineering track.
Specialisation
4Specialisation β part of the ai-ml-engineering track.
Portfolio
1Portfolio β part of the ai-ml-engineering track.
π€ AI & Machine Learning
Complete Learning Roadmap
From Zero to Production-Ready AI Professional β Revised & Expanded Edition
Choose Your Learning Path
π€ AI / GenAI Engineer Path
π Data Scientist / ML Engineer Path
Part 0 β How to Use This Roadmap
Reading Guide & Time Commitment
- Complete Beginner: Follow every Part sequentially. Spend extra time on Python basics before rushing to ML.
- Beginner with C/C++/Java background: Use the β‘ SKIP IF boxes. Skim modules where your existing knowledge applies directly.
- Time commitment: 1β2 hours/day = ~10 hours/week. Each week is calibrated for this pace.
- Projects: Never skip projects. They are your portfolio. Every completed project goes on GitHub.
- Resources: All resources listed are free.
Role Comparison & Salary Guide
| Role | Key Skills | India | US | Best Parts |
|---|---|---|---|---|
| Data Analyst | SQL, Python, Pandas, Visualization, Stats | 8β18 LPA | $65β90K | P0, P1, P2 |
| Data Scientist | ML algorithms, Stats, EDA, Model building | 12β25 LPA | $90β130K | P0βP3 |
| ML Engineer | ML + Software Eng., MLOps, Deployment, APIs | 15β30 LPA | $110β160K | P0βP3, P7 |
| AI/GenAI Eng. | LLMs, RAG, Prompt Eng., Agents, Vector DBs | 18β40 LPA | $120β180K | P0,P1,P4βP8 |
Math & Statistics Prerequisites
- Linear Algebra: vectors, matrices, dot product, matrix multiplication, eigenvalues
- Calculus: derivatives, partial derivatives, chain rule, maxima/minima for gradient descent
- Probability & Statistics: distributions, Bayes theorem, hypothesis testing, correlation
| Type | Resource | Category |
|---|---|---|
| Course | Khan Academy β Linear Algebra | Linear Algebra |
| Course | Khan Academy β Statistics & Probability | Statistics |
| Video | 3Blue1Brown β Essence of Linear Algebra (YouTube) | Visual Linear Algebra |
| Video | 3Blue1Brown β Essence of Calculus (YouTube) | Calculus Visually |
| Book | Mathematics for Machine Learning (Free PDF β Cambridge) | Comprehensive Math for ML |
| Video | StatQuest with Josh Starmer (YouTube) | Stats & ML Concepts |
Part 1 β Universal Foundation
Module 1: Python Programming Fundamentals
- Core Python syntax: variables, data types, type casting, string operations, f-strings
- Data structures: lists, tuples, dictionaries, sets
- Flow control: if/elif/else, for/while loops, break/continue
- Functions: parameters, return values, *args/**kwargs, lambda, list comprehensions
- File I/O: reading and writing text and CSV files
- Error handling: try/except/finally for robust code
- Intro to OOP: classes, objects, __init__, methods
- Virtual environments (venv), pip, requirements.txt
| Week | Topics Covered | Daily Task / Mini-Project |
|---|---|---|
| W1 | Install Python 3 & VS Code. Variables, data types, type casting, string methods, lists, tuples | Unit converter (kmβmiles). String palindrome checker. Shopping list app. |
| W2 | Dictionaries, sets, if/elif/else, for/while loops, break/continue/pass | Phone book using dicts. Number guessing game. Grade classifier. |
| W3 | Functions, *args/**kwargs, file I/O with CSV, try/except/finally, intro to OOP | Student Grade Calculator (file-based). CSV reader/writer. Bank Account OOP class. |
| Type | Resource | Category |
|---|---|---|
| Course | CS50P: Introduction to Programming with Python (Harvard, free) | Best free Python course |
| Video | Python for Beginners (freeCodeCamp, YouTube) | 4.5hr complete intro |
| Course | Python for Everybody (Coursera, free to audit) | Best for absolute beginners |
| Docs | Official Python Tutorial | Official reference |
| Course | Kaggle Python Course (Free, Interactive) | Hands-on exercises |
| Book | Automate the Boring Stuff with Python (Free) | Project-oriented Python |
| Video | Corey Schafer Python OOP Tutorials (YouTube Playlist) | OOP deep dive |
| Tool | Google Colab β free cloud Jupyter notebooks | Zero setup environment |
Module 2: NumPy & Pandas Data Toolkit
- NumPy: ndarray, indexing, slicing, broadcasting, vectorized operations, math functions
- Pandas Series and DataFrame β core data structures for all ML work
- Reading data: pd.read_csv(), pd.read_excel(), pd.read_json()
- Data inspection: .head(), .info(), .describe(), .shape, .dtypes
- Data cleaning: NaN handling, duplicates, type conversion
- Data manipulation: filtering, sorting, groupby, pivot tables, merge/join
- String operations and datetime handling
| Week | Topics Covered | Daily Task / Mini-Project |
|---|---|---|
| W4 | NumPy arrays, indexing, slicing, boolean masking, broadcasting, np.mean/std/sum/dot/reshape | Compute stats without loops. Matrix multiplication with np.dot. Reshape 1D sensor data. |
| W5 | Pandas Series vs DataFrame, read_csv, .head/.info, .loc/.iloc, NaN handling, drop_duplicates | Load dataset, write data health report. Handle missing values in COVID dataset. |
| W6 | groupby(), .agg()/.transform(), merge/join/concat, pivot_table, string ops, datetime | Top 5 countries by COVID cases. Merge two datasets. Extract month/year from date column. |
| Type | Resource | Category |
|---|---|---|
| Course | Kaggle Pandas Course (Free, Interactive) | Best hands-on Pandas |
| Video | NumPy for Beginners (freeCodeCamp, YouTube) | NumPy complete |
| Docs | Pandas Official Documentation User Guide | Official reference |
| Video | Corey Schafer Pandas Tutorials (YouTube Playlist) | Deep Pandas tutorials |
| Cheatsheet | Pandas Cheat Sheet β DataCamp (Free PDF) | Quick reference |
Module 3: Developer Essentials β Git, CLI, APIs & Async
- Git: init, add, commit, push, pull, branching, merging, .gitignore, GitHub repos
- CLI/Terminal: cd, ls, pwd, mkdir, rm, cat, grep, environment variables, PATH
- HTTP fundamentals: GET/POST requests, status codes (200/400/401/404/500), headers
- JSON: reading and writing, parsing API responses in Python
- Python requests library: calling any web API from Python
- Async/await: what async def and await do β critical for streaming LLMs later
Module 4: SQL Basics & FastAPI
- SQL: SELECT, WHERE, GROUP BY, JOIN, ORDER BY, basic aggregations
- FastAPI: GET/POST endpoints, path and query parameters, request bodies with Pydantic
- Running uvicorn dev server, using FastAPI /docs interface to test without writing a client
- Pydantic: data validation and schema definition
- Write Python programs that read/write files, call APIs, and handle errors cleanly
- Version your code with Git and push projects to GitHub confidently
- Navigate the terminal without hesitation
- Understand what an HTTP request is and make one in Python with requests
- Query a SQLite database with basic SQL
- Build and run a simple FastAPI app locally and test it via the /docs interface
Part 2 β Statistics, EDA & ML Workflow
Module 5: Statistical Thinking & Data Visualization
- Descriptive statistics: mean, median, mode, variance, std dev, skewness, kurtosis
- Normal distribution, outlier detection via IQR method and Z-score
- Correlation matrix: df.corr() and heatmap, Pearson vs Spearman
- Matplotlib: figures, axes, subplots, styling, labels, titles, legends
- Seaborn: histplot, boxplot, violin, pairplot, heatmap, regplot, categorical plots
| Week | Topics Covered | Daily Task / Mini-Project |
|---|---|---|
| W7 | Descriptive stats, normal distribution, skewness/kurtosis, correlation matrix, outlier detection, Matplotlib | Plot house price distribution. Compute Titanic correlation matrix. Find outliers in salary dataset. |
| W8 | Seaborn histplot/boxplot/violin/pairplot, bar charts, scatter plots with regression line, heatmaps | Full EDA report with 6+ visualizations. Pairplot for Titanic survival. Monthly sales trend chart. |
| Type | Resource | Category |
|---|---|---|
| Video | StatQuest β Statistics for Machine Learning (YouTube) | Best stats intuition |
| Course | Kaggle Data Visualization Course (Free) | Seaborn & Matplotlib |
| Course | Kaggle Feature Engineering Course (Free) | Feature engineering |
| Docs | Scikit-learn Preprocessing Guide | Scaling & encoding |
| Book | Hands-On ML with Scikit-Learn (Free Chapter 2) | End-to-end ML project |
Module 6: ML Workflow & Feature Engineering
- Label encoding vs One-hot encoding (pd.get_dummies)
- Feature binning (pd.cut/qcut), log transformation for skewed features, polynomial features
- Scaling: StandardScaler, MinMaxScaler, RobustScaler β when to use which
- Train-test split (stratified), K-Fold cross-validation with cross_val_score()
- Scikit-learn Pipeline: combine preprocessing + model in one object
- CRITICAL: Data leakage β ALWAYS split before any scaling or encoding
| Week | Topics Covered | Daily Task / Mini-Project |
|---|---|---|
| W9 | Label/one-hot encoding, feature binning, log transform, polynomial features, feature selection | Transform Titanic dataset. Apply log transform to skewed price column. One-hot encode city column. |
| W10 | StandardScaler/MinMaxScaler, train_test_split (stratified), K-Fold CV, sklearn Pipeline, leakage demo | Build full preprocessing Pipeline. Demonstrate data leakage. Compare scores with/without CV. |
- Perform complete EDA on any dataset: distributions, correlations, outliers, missing values
- Build 8+ publication-quality visualizations using Matplotlib and Seaborn
- Apply feature engineering: encoding, scaling, log transforms, new feature creation
- Build a full sklearn Pipeline combining preprocessing + model
- Understand and prevent data leakage (always scale AFTER splitting, never before)
Part 3 β Classical ML Β [Parallel Branch]
Module 7: Supervised Learning β Regression
- Linear, Multiple, Polynomial Regression
- Metrics: MAE, MSE, RMSE, RΒ² β interpretation and selection
- Ridge (L2) and Lasso (L1) Regression β regularization to control overfitting
- When to use Ridge vs Lasso, residual plotting to check model assumptions
| Week | Topics Covered | Daily Task / Mini-Project |
|---|---|---|
| W11 | Linear Regression, sklearn fit/predict API, MAE/MSE/RMSE/RΒ², Multiple & Polynomial Regression | Predict house prices with linear regression. Compare MAE vs RMSE. Plot residuals. |
| W12 | Ridge (L2) and Lasso (L1), Logistic Regression for binary classification, decision boundary | Apply Ridge vs Lasso β compare feature coefficients. Build spam classifier. |
| Type | Resource | Category |
|---|---|---|
| Course | Kaggle Intro to Machine Learning (Free) | Best beginner ML |
| Course | Andrew Ng β ML Specialization (Coursera, Audit Free) | Gold standard ML course |
| Video | StatQuest β Logistic Regression, Decision Trees, Random Forest (YouTube) | Intuition-first |
| Docs | Scikit-learn User Guide: Supervised Learning | Complete reference |
Module 8β9: Classification & Ensemble Methods
- Decision Trees, KNN, Naive Bayes, Logistic Regression
- Metrics: Accuracy, Precision, Recall, F1, ROC-AUC, Confusion Matrix
- Bias-Variance tradeoff, learning curves, SMOTE for class imbalance
- Random Forest (bagging), Gradient Boosting, XGBoost, LightGBM (boosting)
- Stacking and Voting classifiers, Optuna for automatic hyperparameter tuning
- Model explainability: SHAP values for feature importance
- GridSearchCV, RandomizedSearchCV, saving models with joblib
| Type | Resource | Category |
|---|---|---|
| Video | StatQuest β Random Forest, Gradient Boosting (YouTube) | Best visual explanation |
| Docs | XGBoost Documentation (Official) | XGBoost reference |
| Course | Kaggle ML Explainability Course (Free, SHAP) | Model interpretation |
| Course | Kaggle Intermediate ML: Pipelines, XGBoost (Free) | XGBoost practice |
Module 10: Unsupervised Learning
- K-Means: algorithm, elbow method for choosing K, inertia
- DBSCAN: density-based clustering, handles arbitrary shapes
- Hierarchical clustering: dendrograms, Ward linkage
- PCA: dimensionality reduction, explained variance ratio
- t-SNE: visualizing high-dimensional data in 2D
- Anomaly detection: Isolation Forest, One-Class SVM
- Build end-to-end regression and classification pipelines with proper evaluation
- Apply ensemble methods (Random Forest, XGBoost, LightGBM, Stacking) and know when each helps
- Tune hyperparameters automatically using Optuna
- Cluster data with K-Means and DBSCAN, reduce dimensions with PCA and t-SNE
- Explain model predictions to stakeholders using SHAP values
Part 4 β LLM API Mastery
Module 11: Prompting Fundamentals
- System vs user messages β what each controls and why the distinction matters
- Zero-shot, one-shot, few-shot prompting with examples
- Chain-of-thought (CoT) prompting β βthink step by stepβ
- Role prompting, persona assignment, XML tag structuring for reliable output control
- How small wording changes dramatically shift output quality
| Type | Resource | Category |
|---|---|---|
| Tutorial | Anthropic Interactive Prompt Engineering Tutorial | Best hands-on prompting β 9 chapters |
| Docs | Anthropic Prompt Engineering Docs | Official reference |
| Docs | OpenAI Prompt Engineering Guide | OpenAI official guide |
| Guide | promptingguide.ai β basic to advanced strategies | Comprehensive guide |
Module 12: Structured Outputs & Tool Calling
- Structured outputs: forcing the model to match a JSON schema you define
- Defining Pydantic models, passing schemas to the API, Instructor library for 15+ providers
- Tool calling: the model does NOT execute your functions β it returns a structured call
- The 5-step flow: define tools β call model β parse tool call β execute function β feed result back
- Parallel tool calls, tool_choice: βautoβ, handling no-tool-call responses
- Writing tool descriptions that get selected correctly and reliably
Module 13: Streaming & Conversation State
- Streaming: showing model output word-by-word β makes apps feel dramatically faster
- Setting stream=True, iterating over delta chunks, assembling full response from parts
- Wiring streaming into a FastAPI endpoint using StreamingResponse
- Server-Sent Events (SSE) β what is happening at the HTTP level
- LLMs are stateless β you manage conversation history. The model has no memory between calls.
- The messages array structure β why you append both user and assistant messages
- Context window limits, what happens when exceeded, basic truncation strategies
Module 14: Reliability, Cost & Security
- Token basics: ~4 chars per token, input vs output tokens priced differently
- tiktoken: count tokens before sending. Donβt use GPT-4/Opus for everything.
- LLM APIs fail: 429 rate limits, timeouts, malformed JSON. Handle gracefully.
- Tenacity library: retry logic with exponential backoff in one decorator
- Fallback strategies: retry with different model, return cached response
- Prompt injection: the #1 security risk in LLM apps
- Direct injection (jailbreaking) vs indirect injection via external content (docs, websites)
- OWASP Top 10 for LLM Apps β LLM01: Prompt Injection. Principle of least privilege.
| Type | Resource | Category |
|---|---|---|
| Course | DeepLearning.AI: Prompt Engineering for Developers | Prompt engineering course |
| Tool | Groq API β Free Fast LLM Inference (Llama, Mistral) | Free OpenAI alternative |
| Tool | Google Gemini API β Free Tier Available | Free LLM API |
- Write prompts that produce consistent, reliable outputs for a given task
- Get structured JSON data out of any model using Pydantic + Instructor
- Wire up tool calling so a model can call your Python functions
- Stream responses in real time through a FastAPI endpoint
- Manage multi-turn conversation history with proper truncation strategies
- Estimate token cost before sending requests using tiktoken
- Handle API errors, timeouts, and bad outputs without crashing using Tenacity
- Explain prompt injection and apply basic defences
Part 5 β RAG Systems
RAG is the most in-demand practical skill in AI engineering right now. Almost every real enterprise AI use case β customer support bots, internal knowledge bases, document Q&A β is built on it. Understanding it deeply is what separates good engineers from great ones.
Module 15: Embeddings & Vector Databases
- A text embedding is text projected into high-dimensional vector space β similar text ends up close together
- Cosine similarity: how we measure distance between vectors in embedding space
- Embedding models: OpenAI text-embedding-3-small/large vs HuggingFace sentence-transformers
- Vector DB options: Chroma (local dev) β Pinecone (managed) β Qdrant (open-source prod) β pgvector (if on Postgres) β FAISS
- Creating collections, inserting embeddings with metadata, querying by similarity with top_k
- Filtering by metadata at query time: source, date, category, document type
| Type | Resource | Category |
|---|---|---|
| Article | Stack Overflow Blog: Intuitive Introduction to Text Embeddings | Best beginner explanation |
| Guide | HuggingFace: Getting Started With Embeddings | Hands-on embeddings |
| Docs | OpenAI Embeddings Guide | OpenAI embedding models |
| Docs | Chroma Official Docs β in-memory, no infrastructure | Best for prototyping |
| Docs | Qdrant Documentation β best open-source vector DB for production | Production vector DB |
| Repo | pgvector β vector search inside PostgreSQL | If already on Postgres |
Module 16: Chunking & Document Ingestion
- Documents too large to embed whole β chunking breaks them into embeddable pieces
- Baseline: RecursiveCharacterTextSplitter with chunk_size=500, chunk_overlap=50
- Fixed-size, recursive, and semantic chunking β when to use each
- Core tradeoff: chunks too large = poor retrieval precision; too small = lost context
- Good starting point: ~250 tokens with 10β20% overlap to avoid losing context at boundaries
- Tag every chunk with metadata at ingestion: filename, page, section, date, category
| Type | Resource | Category |
|---|---|---|
| Guide | Weaviate: Chunking Strategies for RAG | Most practical guide |
| Docs | LangChain Text Splitters Docs | Code reference |
| Article | Unstructured: Chunking for RAG Best Practices | Technical deep-dive |
Module 17: Retrieval Quality β Filtering, Reranking & Failure Modes
- Metadata filtering: constrain retrieval by date, source, user, category before similarity search
- Two-stage pattern: embed and search (fast, approximate) β rerank top-k (slower, more accurate)
- Cohere reranker: re-scores results based on true contextual relevance, not just vector proximity
- Bi-encoder (first-stage embedding search) vs cross-encoder (reranking)
- Most RAG failures are retrieval failures, not model failures
- Failure modes: semantic drift β query rewriting; chunk boundary β increase overlap; missing metadata β filter; top-k too small β increase then rerank
- HyDE (Hypothetical Document Embeddings): generate a hypothetical answer, embed it, search β improves retrieval
| Type | Resource | Category |
|---|---|---|
| Docs | Cohere Reranking Docs β single line of code | Best place to start reranking |
| Docs | LangChain: Query Transformations | Query rewriting, HyDE, step-back prompting |
| Guide | Pinecone: Improving Retrieval Quality | Common failure modes with fixes |
Module 18: RAG Pipelines, Grounding & Hallucination Reduction
- LlamaIndex for RAG-first: 5 stages β load β index β store β query β evaluate
- LangChain for orchestration when you need multi-agent workflows or conditional chains
- Rule: use LlamaIndex for Part 5 RAG work. Move to LangChain for Part 6 agents.
- Grounding: prompt model to answer only from provided context, say βI donβt knowβ otherwise
- Citations: pass chunk metadata (source, page, URL) into prompt and surface in response
- Hallucination reduction: RAG + chain-of-thought + guardrails together beat any single approach
- Confidence thresholds: validating retrieval quality before surfacing responses
| Type | Resource | Category |
|---|---|---|
| Docs | LlamaIndex: Introduction to RAG | Official RAG guide |
| Docs | LangChain: Build a RAG Agent | From minimal to full pipeline with reranking |
| Docs | Anthropic: Giving Claude Sources | Citation prompting |
| Course | DeepLearning.AI: LangChain for LLM App Dev (Free) | LangChain fundamentals |
| Course | DeepLearning.AI: Building Advanced RAG (Free) | Advanced RAG course |
- Explain what an embedding is and why similar text produces similar vectors
- Chunk any document intelligently using the right strategy for the content type
- Store and query embeddings in a vector database with metadata filtering
- Add a reranking step using the two-stage retrieve-then-rerank pattern
- Debug common retrieval failures systematically (semantic drift, chunk boundaries, metadata issues)
- Build a complete end-to-end RAG pipeline that returns grounded, cited answers
Part 6 β Agents, Workflows & Evaluation
Module 19: Agent Loops & LangGraph
- An agent is a while loop with an LLM making the branching decisions β not magic
- The perceive β plan β act β observe cycle and how it terminates
- Build from scratch first (no framework) β gives you the foundation to understand what frameworks abstract
- LangGraph: state as a shared memory object flowing through the graph
- State schemas with TypedDict, reducers for merging parallel updates
- In-memory state vs persisted checkpointing
- Human-in-the-loop: inspect and modify state mid-execution
- Conditional edges: how the graph branches based on state values
| Type | Resource | Category |
|---|---|---|
| Article | Anthropic: Building Effective Agents | Read this FIRST before writing any agent code |
| OpenAI: A Practical Guide to Building Agents | Agent patterns and guardrails | |
| Course | LangChain Academy: Introduction to LangGraph (Free) | Official free LangGraph course |
| Docs | LangGraph State Management | State schemas reference |
Module 20: Tool Design, Workflow Patterns & When NOT to Use Agents
- Tool names: self-explanatory verbs. Descriptions: explain WHEN to call, not just what it does.
- Test every tool: βIf I had only this JSON schema, would I know exactly when and how to call this?β
- Decision framework: single LLM call β workflow β agent. Reserve agents for genuinely open-ended tasks.
- A chain of 3 fixed LLM calls is always faster, cheaper, and more debuggable than an agent that could make 3 calls
- Workflow patterns: prompt chaining, routing, parallelization, orchestrator-subagent
- Anthropic: βfind the simplest solution possible and only increase complexity when neededβ
Module 21: Failure Handling in Agents
- Agents fail differently: bad tool calls can corrupt state or cause infinite loops
- Always set maximum iteration limits β without them, a buggy tool causes an infinite loop
- Per-tool retry with exponential backoff, catch exceptions at tool execution layer
- When to surface failure to user vs retry silently
- Guardrails as layered defense: LLM-based checks + rules-based filters + moderation APIs
Module 22: Evaluation Harnesses & Task Success Metrics
- Build a golden test set of 20β50 representative inputs with expected outputs or rubrics
- Deterministic eval functions: string match, JSON schema validation
- LLM-as-judge: use a model to score outputs that resist exact matching
- Process metrics (did the agent call the right tool?) vs outcome metrics (did the task succeed?)
- DeepEval: pytest-inspired framework, 50+ built-in metrics including hallucination and answer relevancy
- Ragas: RAG-specific β faithfulness, answer relevancy, context precision, context recall
- Promptfoo: CLI for testing prompts across models, CI/CD integration, red teaming
- LangSmith: tracing, debugging, and evaluation for LangChain/LangGraph
- Explain what an agent loop is and implement one from scratch without a framework
- Write tool descriptions that get selected correctly across a wide range of inputs
- Manage agent state properly using LangGraph (schemas, reducers, checkpointing)
- Handle failures inside agent loops without crashing (iteration limits, per-tool retry, guardrails)
- Decide confidently whether a task needs an agent, a workflow, or a single prompt
- Build multi-step workflows that chain, route, and parallelize LLM calls
- Write automated evals that catch regressions when you change prompts or models
- Define and measure task success metrics for any AI system you build
Part 7 β Production & Deployment
This is where most AI engineers stall. They can build a great demo but cannot ship a product that survives contact with the real world. The skills here are what companies actually pay for: reliability, security, cost control, and the ability to keep things running.
Module 23: FastAPI Production Patterns
- Single uvicorn with --reload is fine for dev. In production it becomes the bottleneck immediately.
- Gunicorn with Uvicorn workers for multi-worker ASGI configuration
- Proper error handling middleware, health check endpoints (/health), CORS policies
- Async database pooling, Redis caching, background tasks
| Type | Resource | Category |
|---|---|---|
| Docs | FastAPI Deployment Docs | Start here |
Module 24: Docker & Background Jobs
- Docker: stop saying βit works on my machineβ. Solve dependency conflicts, consistent environments.
- Dockerfile for Python/FastAPI, multi-stage builds to keep images small, .dockerignore
- Docker Compose for multi-service setups: app + vector DB + Redis
- LLM calls are slow β background jobs let you accept immediately and process async
- FastAPI BackgroundTasks for simple fire-and-forget; Celery + Redis for heavier tasks
Module 25: Auth, Logging & Observability
- Without authentication, anyone can burn through your LLM credits β you will wake up to a large bill
- JWT tokens for user auth, API key management for service-to-service communication
- Rate limiting per user/key. Never store secrets in code β environment variables only.
- LLM-specific challenge: a 200 status code can still be a useless or hallucinated answer
- Langfuse: traces every request β prompt, response, tokens, latency, tool calls, cost per request
- Structlog: structured JSON logging that is searchable and parseable in production
- Dashboard metrics: request volume, error rates, cost per day, latency percentiles
| Type | Resource | Category |
|---|---|---|
| Docs | FastAPI Security Docs β OAuth2, JWT tokens, API keys | Auth reference |
| Guide | OWASP API Security Top 10 | Broken auth, injection, mass assignment |
| Tool | Langfuse β open-source LLM observability. Free tier. | Best LLM observability |
| Tool | LangSmith β tracing for LangChain/LangGraph | LangChain tracing |
| Library | Structlog β structured JSON logging for Python | Production logging |
Module 26: Prompt Versioning, Cost Monitoring & Caching
- In production, your prompts are code β version control, testing, and rollback are required
- Store prompts outside application code. Version every change. A/B test variants in production.
- A traffic spike or prompt bug can burn hundreds of dollars in minutes without spending limits
- Helicone: proxy-based cost tracking, one line of code β just change your base URL
- LiteLLM: unified interface for 100+ providers with budget management and rate limiting
- If 20% of users ask similar questions, you are paying for the same LLM call 20 times β cache it
- GPTCache: semantic caching using embedding similarity for similar (not just identical) queries
| Type | Resource | Category |
|---|---|---|
| Tool | Langfuse Prompt Management β versioning with rollback | Best prompt versioning |
| Tool | Helicone β proxy-based cost tracking, one line of code | Easiest cost monitoring |
| Library | LiteLLM β unified interface + budget management | Multi-provider management |
| Library | GPTCache β semantic caching | Semantic caching |
Module 27: MLOps Foundations
- Model serialization: joblib, pickle, ONNX for cross-platform serving
- MLflow: experiment tracking, model registry β log_param(), log_metric(), log_model()
- Evidently AI: data drift and model drift detection as open-source reports
- GitHub Actions: CI/CD workflow that tests code on every push
- Model monitoring: prediction distributions over time, alerting on drift
| Type | Resource | Category |
|---|---|---|
| Course | Made With ML β best free MLOps curriculum | Best free MLOps course |
| Docs | MLflow Documentation (Official) | Experiment tracking |
| Tool | Evidently AI β open-source model monitoring and drift | Data drift detection |
| Tool | Render.com β Free Docker App Hosting | Free deployment platform |
| Tool | HuggingFace Spaces β Free Hosting for ML Demos | Free ML demo hosting |
- Deploy a FastAPI + LLM app in Docker with proper production configuration (Gunicorn + Uvicorn workers)
- Handle long-running LLM tasks with background jobs and queues (Celery + Redis)
- Secure your API with auth, rate limits, and API key management (never secrets in code)
- Trace and debug every LLM call using Langfuse or LangSmith
- Manage prompts with version control, A/B testing, and rollback capability
- Monitor costs in real time and set hard spending limits (Helicone or LiteLLM)
- Cache LLM responses (exact-match Redis, semantic GPTCache) to reduce latency and cost
Part 8 β Specialization & Launch
This is the final phase. Choose the track that matches your career direction. You only need to complete ONE track β but you can explore all four. Each ends with a capstone project.
π Track A β AI Product Engineer
Best for startup jobs, shipping AI products that real users interact with
π¬ Track B β Applied ML / LLM Engineer
Best for deeper technical roles, understanding whatβs under the hood
βοΈ Track C β AI Automation Engineer
Best for building for businesses immediately, automating real workflows
π Track D β Data Scientist / Analyst
Best for data-focused roles, combining statistical rigour with AI
Track A β AI Product Engineer
- Vercel AI SDK: fastest way to build AI UIs with streaming. React, Next.js, Vue integrations.
- Streamlit: AI demos in pure Python. Ideal for internal tools and MVPs.
- Gradio: quick ML/AI interfaces, especially good for demoing on HuggingFace Spaces.
- AI UX: how to handle loading states, wrong answers, user feedback, probabilistic output
- Design for trust: users need to know when the AI is confident vs uncertain
| Type | Resource | Category |
|---|---|---|
| Docs | Vercel AI SDK β AI-powered UIs with built-in streaming | Fastest AI UI framework |
| Docs | Streamlit β AI demos in pure Python | Best for MVPs and demos |
| Docs | Gradio β quick model interfaces, HuggingFace Spaces deploy | Quick prototyping |
| Guide | Google: People + AI Guidebook | Best AI UX resource |
| Guide | Nielsen Norman Group: AI UX Guidelines | Research-backed AI interface guidelines |
Track B β Applied ML / LLM Engineer
- Fine-tuning: OpenAI API (easiest start), HuggingFace Transformers, LoRA and QLoRA
- Unsloth: 2x faster fine-tuning with 80% less memory on consumer hardware
- Ollama: run open-source LLMs locally with one command β Llama, Mistral, Gemma
- vLLM: production LLM serving, 2β4x faster than naive HuggingFace
- Quantization: GGUF, GPTQ, AWQ β reduce model size and cost for deployment
- Inference optimization: KV-cache, batching, TensorRT-LLM for NVIDIA GPUs
| Type | Resource | Category |
|---|---|---|
| Docs | OpenAI Fine-tuning Guide | Easiest fine-tuning start |
| Docs | HuggingFace Transformers Fine-tuning Tutorial | Open-source fine-tuning |
| Repo | Unsloth β 2x faster, 80% less memory | Fastest fine-tuning |
| Tool | Ollama β run open-source LLMs locally with one command | Local LLM experimentation |
| Library | vLLM β production inference, 2β4x faster | Production inference |
Track C β AI Automation Engineer
- Real business automation = chains of actions across multiple systems, not single LLM calls
- n8n: visual workflow automation with AI nodes, 400+ integrations. Free to self-host.
- Temporal: durable workflows for long-running, fault-tolerant processes that survive crashes
- High-ROI targets: email triage, document processing, CRM enrichment, support automation
- Always build human-in-the-loop approval steps for consequential automations
- Measure actual time and money saved β the ROI is how you sell it
| Type | Resource | Category |
|---|---|---|
| Docs | n8n β visual AI automation, 400+ integrations, free to self-host | Best no-code AI automation |
| Docs | Temporal β durable workflows for fault-tolerant processes | Fault-tolerant automation |
| Docs | LangGraph: Multi-Agent Workflows | Code-first multi-agent orchestration |
Track D β Data Scientist / Analyst
- Complete a full capstone project demonstrating end-to-end data science competency
- Kaggle strategy: start with Titanic (classification) and House Prices (regression)
- Aim for top 30% placement in at least one competition before applying for jobs
- Dashboard tools: Streamlit for Python-native, Tableau/Power BI for business stakeholders
Part 9 β Capstone, Portfolio & Launch
GitHub Profile Setup
- Create a profile README: github.com/username/username repository with README.md
- Pin your 6 best project repositories to your profile page
- Add a professional bio, location, LinkedIn link, and contact email
- Use consistent naming: project-name-ml, project-name-rag
- Write descriptive repository descriptions β 1β2 sentences shown on profile
- Capstone delivery must include: clean README, requirements.txt, organized folder structure (data/, notebooks/, src/, app/), working deployed app, 5-slide deck, model card, 2β3 min demo video
Portfolio Project Checklist
- Python CLI Grade Management System (Module 1) β All roles β shows Python basics
- COVID-19 Pandas Analysis (Module 2) β Data Analyst, Data Scientist
- EDA Report with 8+ visualizations (Part 2) β Data Analyst, Data Scientist
- House Price Predictor β deployed app (Module 7) β All ML roles
- Heart Disease Classifier with SHAP (Module 8) β Data Scientist, ML Engineer
- Customer Segmentation + Churn Prediction (Modules 9β10) β Data Scientist, ML Engineer
- βChat with your docsβ RAG App (Part 5) β AI/GenAI Engineer
- Agent Loop from scratch (Part 6) β AI/GenAI Engineer
- Dockerized production app with auth + observability (Part 7) β ML/AI Engineer
- Track specialization capstone (Part 8) β All roles β most important
Job-Readiness Checklist
- Technical Skills: Python β, Pandas/NumPy β, Scikit-learn β, XGBoost β, LangChain β, FastAPI β, Docker β
- GitHub: 5+ public projects with good READMEs and deployed links
- Kaggle: Contributor status, at least 1 competition submission, 2+ public notebooks
- Free certs: Kaggle ML certificates, DeepLearning.AI short courses, Google ML Crash Course
- LinkedIn: updated with skills, project links, GitHub link, and an AI/ML-focused headline
- Resume: 1-page, quantified achievements, GitHub & portfolio links in header
- Interview prep: 50 Python coding questions (LeetCode Easy/Medium), ML concept flashcards
Essential Communities & Platforms
| Type | Resource | Category |
|---|---|---|
| Tool | Kaggle β datasets, competitions, learning | Primary practice platform |
| Tool | HuggingFace β models, datasets, free hosting on Spaces | AI model hub |
| Tool | Google Colab β free GPU Jupyter notebooks | Free compute |
| Course | DeepLearning.AI Short Courses (all free) | GenAI specializations |
| Course | Google ML Crash Course | Core ML concepts |
| Course | course.fast.ai β practical deep learning top-down | Deep learning |
| Tool | Papers With Code β latest research with code | Stay current |
| Tool | MLflow β open source ML experiment tracking | ML experiment tracking |
| Docs | HuggingFace Transformers Documentation | Open-source LLMs |
| Community | AI Discord β EleutherAI & HuggingFace | Community learning |
- You now have a complete, structured, project-based roadmap from zero to industry-ready in AI/ML.
- Consistency beats intensity. 1β2 hours every day beats 10 hours on weekends.
- Build in public β post your projects, insights, and learnings on LinkedIn.
- Your first job will come from a project someone saw, not a certificate on your wall.
- The field moves fast. This roadmap is a living document. Parts 4β6 will keep expanding.