Skip to content

Type to search titles, headings, and body text.

Practice

Projects

Project 1 · Nodes and Edges by Hand

Beginner · 15–20 minutes

You keep a running list of books you mean to read — nothing fancy, just titles you've jotted down somewhere. A friend asks who wrote the one at the top of your list, and you realize the list itself doesn't say. You know the answer, but only because it's in your head, not because anything you wrote down captures it.

Project 2 · The Ratchet

Beginner–Intermediate · 45–60 minutes

You're hand-tuning a toy scoring formula for a personal "what to play next" tool. It ranks two candidate songs at a time using three weighted signals — how well the genre matches, how recent the track is, how often it's been skipped — and you're adjusting the three weights to see how often the formula's top pick matches what the listener actually chose, across a small fixed set of past sessions.

Project 3 · Extract Your First Ten Facts

Intermediate · 30–45 minutes

Below is the changelog for a small note-taking app called Fernbank, across three releases. It's the kind of document a support agent, a release-notes bot, or a curious user might skim in thirty seconds — bullet points, no fixed shape, mixing new features, bug fixes, and one policy change into the same list format.

Project 4 · Merge Without Losing the Trail

Intermediate–Advanced · 45–60 minutes

A small plant shop's support inbox has five tickets that each sign off with some variant of the same-looking name. Different agents typed what they heard or read differently — a full name here, a nickname there, an abbreviation somewhere else. Your job is to work out which of these five mentions actually refer to the same person, using something more solid than "the names look alike," and to do it in a way that could be undone later if you turn out to be wrong.

Project 5 · Give Every Edge a Receipt

Intermediate · 30–45 minutes

Hollowmere Apiary Collective, a small volunteer-run beekeeping cooperative, has been logging hive-condition claims into a shared file for a season. Nobody attached a source to any of them — the claims exist, but nothing says which inspection produced which finding, or under which version of the inspection checklist. A new volunteer coordinator wants to trust the file enough to schedule follow-up visits from it, and can't, because there's no way to tell a carefully logged finding from a guess someone typed in from memory.

Project 6 · Feed a Worker a Subgraph, Not the Graph

Intermediate · 45–60 minutes

Fernglade Systems runs an internal IT helpdesk with an automated routing graph: every ticket gets a routed-to edge pointing at the team currently handling it, and teams have escalates-to edges recording which team a ticket goes to next if the first team can't resolve it. Two different sources have also each attached a diagnosis claim to one specific ticket, and the two claims disagree about what's actually wrong.

Project 7 · Catch a Lie with a Checker

Advanced · 45–60 minutes

Cascade Media Group ships two deployments in the same release window. Each deployment's manifest gets run through an extraction pass that records, as restarts edges, exactly which services that deployment brings down and back up — not a guess about what the deployment "probably" touches, a fact pulled straight from the manifest itself.

Project 8 · Wire Two Loops Together (Capstone)

Capstone · 90–120 minutes

Emberlynn Transit Co-op runs two automated loops that both write to a shared route-status graph for its bus network.

Practice Projects

Eight original, hands-on projects, easy to capstone. Each one exercises exactly one idea from the 17-step course by putting it to work on a scenario invented for that project — not the worked example from the step page itself. Every project ships with a reference solution under solutions/ so you can check your own attempt once you've made one.

Throwaway repo, small data first. Every project here is meant to be run in a repo you're willing to delete afterward, against data small enough to read end to end in one sitting. That's not a limitation of the exercises — it's the whole point. A graph you can hold in your head while you build it is the fastest way to learn what a graph actually does.

Work through Projects 1–4 alongside Steps 1–13 (the core path); save 5–8 for the second read, once Parts 3–5 are behind you.

Index

#ProjectDifficultyTimeConceptsMaps to
1Nodes and edges by handBeginner15–20 minnode, edge, direction, label specificityStep 2, Part 1
2The ratchetBeginner–Intermediate45–60 minratchet, durable history, non-improving attempts loggedStep 4, Part 2
3Extract your first ten factsIntermediate30–45 minfixed schema, extraction, rejecting out-of-schema itemsStep 6, Part 3
4Merge without losing the trailIntermediate–Advanced45–60 minresolution, reversible merges, evidence over similarityStep 7, Part 3
5Give every edge a receiptIntermediate30–45 minprovenance, source records, schema-version trackingStep 8, Part 3
6Feed a worker a subgraphIntermediate45–60 minsubgraphs, bounded context, task-scoped retrievalStep 9, Part 4
7Catch a lie with a checkerAdvanced45–60 mingrounding, rejecting claims the graph can't back upStep 10, Part 4
8Wire two loops together (capstone)Capstone90–120 mingovernance graph, arbitration, anchors, frozen nodesSteps 11–13, Part 5

Each project page names its step(s) again up top and points to the course-wide docs guide for the exact link — that guide's roadmap is the single place step links are kept, so it's the one place they won't drift out of date.

How to use these

  1. Read the step(s) a project maps to first — the project assumes you've already met the concept, and won't re-explain it. Use the docs guide's roadmap to jump to the right page.
  2. Set up the throwaway repo the project's banner asks for, and pull in only the small starting material the project provides (if any).
  3. Do the project yourself before opening its reference solution. The solution shows one concrete, checkable answer to that project's own scenario — not the only correct answer, but one you can compare your work against.
  4. If your result diverges from the solution, that's not automatically wrong — check whether the divergence still satisfies the project's "done when" criteria before assuming you made a mistake.

Solutions

Every project's reference solution lives under solutions/, at the path matching its own filename — Project 1's solution sits alongside Project 1's page, and so on down the list. Each project page links directly to its own solution at the bottom.