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.
Build a data structures library that a junior could actually import and use.
Implement, from scratch (no built-in shortcuts for the core logic), with a clean public API:
1. A dynamic array with doubling resize.
2. A singly or doubly linked list with reverse.
3. A stack and a queue (queue must be O(1) at both ends).
4. A hash table with chaining.
5. A binary search tree with insert, search, delete, and inorder traversal.
6. A min-heap with push, pop, and peek.
7. (Stretch) A graph with BFS and DFS, and a trie with autocomplete.
Ship it in stages so you always have something working.
M1: Repo setup. Initialize git, add a README, choose Python (pytest) or TypeScript (Vitest), set up the test runner.
M2: Linear structures: dynamic array, linked list, stack, queue, all with tests.
M3: Hash table with chaining, set/get/delete, and a load-factor resize, with tests.
M4: Tree structures: BST (with the two-children delete) and min-heap, with tests.
M5: Stretch: graph (BFS/DFS) and trie (autocomplete), with tests.
M6: Polish: docstrings, Big O noted for each operation in the README, a usage example, CI that runs tests on every push.
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.
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.