█
LastWrite
  • > Curriculum
  • > Pricing
  • > For Educators
  • > About
  • > Contact
Log InGet Started

Questions, concerns, bug reports, or suggestions? We read every message, write to us at [email protected].

More ways to reach us →
LastWrite

Structured computer science lessons for aspiring developers and security professionals.

[email protected]

(201) 785-7951

Mon–Fri, 9 AM–5 PM EST

Learn

  • Curriculum
  • Pricing

Company

  • About
  • For Educators & Schools
  • Contact Us

Legal

  • Terms of Service
  • Privacy Policy
© 2026 LastWrite. All rights reserved.
Curriculum/Computer Science Fundamentals/Data Structures/Passion Project: Data Structures Library
240 minAdvanced

Passion Project: Data Structures Library

After this lesson, you will be able to: Build a tested data structures library from scratch that implements the core structures from this sub-track, and publish it to GitHub as a portfolio piece.

Passion project per Curriculum-Upgrade.md. Implementing the structures yourself, with tests, is the single most convincing proof to an interviewer that you understand them. Pick a language (Python or TypeScript recommended) and build a small, well-tested library.

Prerequisites:Tries

Project brief

Build a data structures library that a junior could actually import and use.

  1. 1

    Implement, from scratch (no built-in shortcuts for the core logic), with a clean public API:

  2. 2

    1. A dynamic array with doubling resize.

  3. 3

    2. A singly or doubly linked list with reverse.

  4. 4

    3. A stack and a queue (queue must be O(1) at both ends).

  5. 5

    4. A hash table with chaining.

  6. 6

    5. A binary search tree with insert, search, delete, and inorder traversal.

  7. 7

    6. A min-heap with push, pop, and peek.

  8. 8

    7. (Stretch) A graph with BFS and DFS, and a trie with autocomplete.

Milestones

Ship it in stages so you always have something working.

  1. 1

    M1: Repo setup. Initialize git, add a README, choose Python (pytest) or TypeScript (Vitest), set up the test runner.

  2. 2

    M2: Linear structures: dynamic array, linked list, stack, queue, all with tests.

  3. 3

    M3: Hash table with chaining, set/get/delete, and a load-factor resize, with tests.

  4. 4

    M4: Tree structures: BST (with the two-children delete) and min-heap, with tests.

  5. 5

    M5: Stretch: graph (BFS/DFS) and trie (autocomplete), with tests.

  6. 6

    M6: Polish: docstrings, Big O noted for each operation in the README, a usage example, CI that runs tests on every push.

💡 What this demonstrates to an employer

Skills: correct Big O reasoning, clean API design, test-driven development, edge-case handling (empty structures, single elements, duplicates), and the discipline to document operation costs. A tested-from-scratch DS library on GitHub is a stronger signal than 'completed an algorithms course' because it is verifiable.

Deployment and submission

Push the repo to GitHub with a clear README: what it is, how to install, a code example, and a table listing each structure's operation costs. Add a CI workflow (GitHub Actions) that runs your test suite on every push so the green check is visible. Pin the repo on your GitHub profile. This is portfolio code, so treat the README and tests as part of the product, not an afterthought.

💡 How to talk about this in an interview

Open the repo and walk through one structure end to end: the API, the implementation, and a tricky edge case you handled (BST delete with two children, or hash-table resize). State the Big O of each operation without hesitating. Discuss one design decision honestly, for example why you chose chaining over open addressing. Five focused minutes on this proves real understanding far better than reciting definitions.

Common mistakes only candidates with offers avoid

Implementing structures with no tests, so you cannot prove they work. Skipping edge cases (empty, one element, duplicates) which is exactly where interviewers probe. Leaving it on your laptop instead of GitHub. No README and no documented Big O. Using the language's built-in (Python dict, JS Map) for the core logic instead of implementing it, which defeats the entire purpose of the project.

Sign in and purchase access to unlock this lesson.

Sign in to purchase
←Segment Trees and Fenwick Trees
Back to Data Structures
Data Structures Job Readiness→