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.

registered students
6,771
cohorts already taught
4

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 catalogue: complete guides and ordered ecosystems
How it runs
at your own pace, come and go as you like
Explore the catalogue
I want dates and supportBootcamps
This is for you if
you want a calendar, work reviewed one by one, and someone on the other side
It is
intensive live programs, by cohort, with a start date
How it runs
live, twice a week, in a cohort with a start date
Explore Bootcamps
I want to get interview-readyInterview Club
This is for you if
you already code and you are job hunting
It is
technical interview practice, with a live session every month
How it runs
at your own pace, with a live session every month
Discover the Club

Intensive Programs

Bootcamps with Live Mentoring

Cohorts with live programs and weekly progress. 9-week mini-bootcamps and full 21-week programs.

Open catalogue

Complete ecosystems, open end to end

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

  • Every available course
  • A fortnightly live with an instructor to discuss the courses and where the market is heading
  • A dedicated WhatsApp group
Discover the Club

These are the ecosystems available today: