Yes, you can learn this

Learn AI and Data Engineering

Build the skills to work on the digital products of the present.

nieva ~ chat

Building an agent with LangGraph and running it: python -m extractor --batch reports/2026-Q3. 38 PDFs · 1,240 pages · ~4 h of manual work. pull revenue, margin and debt from every report. Before writing anything, I'll define the graph and. dry-run it over three documents.. from langgraph.graph import StateGraph, START, END. from langgraph.checkpoint.memory import InMemorySaver. from langgraph.types import interrupt, Command. class State(TypedDict):. document: str. figures: dict. review: bool. builder = StateGraph(State). builder.add_node("read", read_pdf). builder.add_node("extract", extract_figures). builder.add_node("review", ask_confirmation). builder.add_node("save", save_row). builder.add_edge(START, "read"). builder.add_conditional_edges("extract", route). builder.add_edge("save", END). agent = builder.compile(checkpointer=InMemorySaver()). graph compiled · 4 nodes · 1 branch · 1 interrupt. run the three test files. read → pdf.text("acme-q3.pdf"). extract → model(schema=Figures). acme-q3 · revenue 4.2M · margin 31% · debt 0.9M. read → pdf.text("borealis-q3.pdf"). borealis-q3 · no text layer · it's a scan. This one has no text. The branch sends it to OCR. instead of inventing the numbers.. route → ocr. ocr.read(dpi=300). borealis-q3 · revenue 1.8M · margin 12% · debt 2.4M. what if the model gets a figure wrong?. That's why nothing writes itself. The review node. halts the run and hands it back to you.. def ask_confirmation(state):. return interrupt({"figures": state["figures"]}). ⏸ interrupt · waiting for human confirmation. helios-q3 · margin 91% · confidence 0.41. That 91% doesn't match the sector. Flagged, not saved.. fix it to 19 and carry on. agent.invoke(Command(resume={"margin": 19})). resumed from checkpoint · step 3 of 4. good, run it over all 38. agent.stream(batch, config). 38/38 · 35 automatic · 3 flagged for review. 6 min 12 s · 0.42 USD in tokens. Four hours of work in six minutes, and the three. doubtful cases are flagged, not buried.

The tools you will be working with

  • Python
  • FastAPI
  • PostgreSQL
  • LangChain
  • LangGraph
  • n8n
  • Docker
  • Apache Airflow

There are already 6,833 of us learning here

Three ways to learn with us

Start where you are

Only one fits you today. Pick by where you stand, not by what we sell.

Start on my ownCourses and ecosystems
This is for you if
you want to dive in on your own and see how far you get
It is
the open catalog: complete guides and ordered ecosystems
How it runs
at your own pace, come and go as you like
I want support and reviewed workBootcamps
This is for you if
you want your work reviewed one by one, with someone on the other side
It is
the same syllabus in two formats: a dated cohort, or individual with 1:1 sessions
How it runs
both are weekly: in a group we all meet, individually the hour is yours alone
Get ready to interviewTechnical interviews
This is for you if
you have interviews coming up and want to arrive having practised out loud
It is
interviews with an AI interviewer on the material you already study, with a report scored by criterion
How it runs
by packs, no subscription: you use them when it's time to prepare

Two ways to learn

Group and individual bootcamps

Same syllabus, two formats, both meeting every week. In a cohort you move with a group that starts the same day you do and we all meet live together. Individually we book a call, pick your slot, and that weekly hour is yours alone.

Open catalog

Complete ecosystems, open end to end

Each ecosystem orders the guides from beginner to production, built from what real job postings actually ask for.

These are the ecosystems available today: