◆ A hands-on course · free · self-paced

Python for AI Engineers

The Research hub explains AI engineering. This course puts your hands on the keyboard. I wrote it for people who can already read code but want to actually build with LLMs — in the language the whole field is written in.

Fifteen chapters, from the language basics through to a working app you ship yourself. It is free, it is self-paced, and it is honest — I teach the code you actually have to read and trust, and I flag the trade-offs instead of selling you Python as strictly better than what you already know.

15 chaptersFree foreverSelf-pacedSlides per chapterJS → Python

Who it’s for

You can read code. You want to build with LLMs.

If loops, functions and async already make sense to you, you don’t need a beginner’s programming course — you need the Python dialect and the culture the AI world runs on. That’s exactly what this is.

JS / TS devs moving into AIBackend & platform engineersPMs and analysts who want to buildAnyone who can read code

What you’ll be able to do

Read any AI codebase

Open a real agent or RAG repo and follow it — the idioms, the SDK calls, the object models — instead of bouncing off unfamiliar Python.

Call LLMs for real

Streaming, structured output with Pydantic, tool use, and retries — the patterns behind every production LLM integration.

Ship a working app

A full capstone: a Customer Feedback Analyzer wiring Streamlit → FastAPI → Gemini → SQLite into one end-to-end build you run yourself.


The curriculum

Fifteen chapters, basics to a shipped app.

Each chapter reads on its own and comes with a downloadable slide deck. Start at the top or jump to what you need — the two capstones at the end tie it all together into working software.

Chapter 01 — Why Python runs the AI world (and how to think in it as a JS dev)
Chapter 01

Why Python runs the AI world (and how to think in it as a JS dev)

Why Python won the AI race, the honest trade-offs vs Node, and the mental-model shift that trips JS devs up in week one.

Read chapter →
Chapter 02 — Environment & tooling: the Python project skeleton (npm → pip/uv mental map)
Chapter 02

Environment & tooling: the Python project skeleton (npm → pip/uv mental map)

Virtual envs, pip and uv, pyproject.toml — the Python project skeleton mapped straight onto the npm workflow you already know.

Read chapter →
Chapter 03 — The core language: values, types, and control flow
Chapter 03

The core language: values, types, and control flow

Values, types, truthiness and control flow — the everyday syntax you read in every codebase, with the JS gotchas called out.

Read chapter →
Chapter 04 — Data structures: list, tuple, dict, set (and comprehensions)
Chapter 04

Data structures: list, tuple, dict, set (and comprehensions)

list, tuple, dict and set — when to reach for each — plus comprehensions, the idiom that replaces half your map/filter reflexes.

Read chapter →
Chapter 05 — Functions, arguments, and decorators
Chapter 05

Functions, arguments, and decorators

Positional vs keyword args, *args/**kwargs, closures, and decorators — the wrapper pattern behind most framework "magic".

Read chapter →
Chapter 06 — Classes, objects, and dataclasses (OOP the Pythonic way)
Chapter 06

Classes, objects, and dataclasses (OOP the Pythonic way)

Classes, dunder methods and dataclasses — OOP the Pythonic way, and how to read the object models LLM SDKs are built on.

Read chapter →
Chapter 07 — Modules, the standard library, errors, and context managers
Chapter 07

Modules, the standard library, errors, and context managers

Imports, the standard library, exception handling, and the with-statement — how real Python projects are wired together.

Read chapter →
Chapter 08 — Type hints and data validation with Pydantic (the GenAI engineer's superpower)
Chapter 08

Type hints and data validation with Pydantic (the GenAI engineer's superpower)

Type hints and Pydantic — the validation layer that turns messy LLM output into typed, trustworthy data. The GenAI superpower.

Read chapter →
Chapter 09 — Iterators, generators, and async (how LLM streaming and concurrency actually work)
Chapter 09

Iterators, generators, and async (how LLM streaming and concurrency actually work)

Iterators, generators and async/await — the machinery under LLM streaming and concurrent API calls, demystified.

Read chapter →
Chapter 10 — Writing (and judging) Pythonic code: idioms, testing, logging, and a review checklist
Chapter 10

Writing (and judging) Pythonic code: idioms, testing, logging, and a review checklist

Idioms, pytest, logging and a concrete review checklist — how to write Python that reads well and judge code that does not.

Read chapter →
Chapter 11 — The data & HTTP layer you must be able to read (numpy, pandas, httpx)
Chapter 11

The data & HTTP layer you must be able to read (numpy, pandas, httpx)

numpy, pandas and httpx — enough of the data and HTTP layer to read (and trust) the code every AI system leans on.

Read chapter →
Chapter 12 — Calling LLMs in Python: SDKs, streaming, structured output, tools, retries
Chapter 12

Calling LLMs in Python: SDKs, streaming, structured output, tools, retries

Calling models for real: SDKs, streaming, structured output, tool use and retries — the patterns behind every LLM integration.

Read chapter →
Chapter 13 — Agentic & RAG patterns, serving, and how to read a real agent codebase (capstone)
Chapter 13

Agentic & RAG patterns, serving, and how to read a real agent codebase (capstone)

RAG and agent loops, serving, and a guided read of a real agent codebase — where all the earlier pieces snap together.

Read chapter →
Chapter 14 — Shipping it: Streamlit UIs, FastAPI from scratch, and SQLite persistence
Chapter 14

Shipping it: Streamlit UIs, FastAPI from scratch, and SQLite persistence

Streamlit for a quick UI, FastAPI from scratch, and SQLite persistence — the shortest honest path from script to shipped app.

Read chapter →
Chapter 15 — Capstone II: the Customer Feedback Analyzer (Streamlit → FastAPI → Gemini → SQLite)
Chapter 15

Capstone II: the Customer Feedback Analyzer (Streamlit → FastAPI → Gemini → SQLite)

The full build: a Customer Feedback Analyzer wiring Streamlit, FastAPI, Gemini and SQLite into one working end-to-end app.

Read chapter →

How this fits with the Research hub

The theory and the practice, side by side.

My flagship write-up, The AI Engineering Pipeline, maps the whole field — frameworks, SDKs, the Prompt / Context / Loop trichotomy, evals and agentic security. This course is the other half: the Python you need so that map turns into code you can actually write.

the honest pitch

It’s free and it always will be. If it helps and you later need someone to take GenAI from pilot to production — safely, in a regulated setting — that’s the work I do.

Ready? Start at the beginning.

Chapter 01: why Python runs the AI world, and how to retune your instincts from JavaScript.

Start chapter 01 →