Portfolio Ladder — Master Reference¶
Before you start building, understand what you’re building toward. This table is the single-page reference you check at the end of every month to confirm you’re on track. The columns are brutally simple: what it is, when it’s due, where it lives, whether missing it breaks the M9 story, and what “done” actually means.
Master Table¶
Rung |
Artifact Name |
Months |
Platform |
Hard Gate? |
Acceptance Criteria |
|---|---|---|---|---|---|
1 |
Complexity Audit Repo |
M1–M2 |
GitHub (public) |
No |
20+ algorithm derivations, step-by-step, no lookups, correct |
2 |
DS Library from Scratch |
M2–M3 |
GitHub (public) |
No |
7 data structures, tests pass, readable by a peer |
3 |
“Explain the Algorithm” Blog Series |
M3–M4 |
Hashnode or Dev.to |
No |
5 posts published, 3+ genuine human engagements |
4 |
LeetCode 100 Milestone |
M4–M6 |
GitHub + Blog |
No |
100 problems logged with annotations, reflection post published |
5 |
Graph Algorithm Showcase |
M6–M7 |
GitHub |
No |
5 algorithms on real/interesting data, visualized, documented |
6 |
DP Pattern Handbook |
M7–M8 |
GitHub + Community |
YES |
All 7 patterns, your own voice, 3+ community “this is helpful” responses |
7 |
Codeforces Rating ≥ 1200 |
M8–M9 |
Codeforces + Blog |
YES |
Rating ≥ 1200 OR 5+ rated contests with documented trajectory |
8 |
M9 Capstone Showcase |
M9 (last 2 weeks) |
GitHub + Blog + LinkedIn |
No |
Published, authentic, links all 7 prior artifacts |
The Two Hard Gate Rungs — Why They Are Non-Negotiable¶
Rung 6: DP Pattern Handbook¶
DP is the single topic that separates engineers who can solve medium LeetCode from engineers who can solve hard LeetCode and Codeforces Div. 2 C/D. Every competitive programming problem of consequence either is a DP problem or requires DP as a subcomponent. Writing a handbook from scratch — with your own state design reasoning, your own worked examples, your own recognition triggers — forces you to understand the mechanism of DP, not just pattern-match to solutions you’ve seen before.
If you skip this rung, the M9 pitch sentence becomes false. There is no “systematic algorithmic thinking” without evidence that you can work through DP independently. It is also the rung most at risk of being “almost done” forever. Hard gate means: ship it, even imperfect, by M8.5.
Rung 7: Codeforces Rating ≥ 1200¶
A rating cannot be constructed. You cannot write it after the fact, back-fill it, or argue that you would have achieved it with more time. It is the only artifact in the entire portfolio that requires you to perform under real competition conditions — time pressure, unfamiliar problems, no hints, no editorial until the clock stops. That is precisely what makes it irreplaceable.
The minimum bar (5 rated contests) exists because the trajectory itself is evidence: someone who competed 5 times and improved consistently has demonstrated more than someone with a static rating. Hard gate means: you participate in contests during M8–M9, period.
Phase-by-Phase Portfolio Status Tracker¶
Copy this into your own Notion/Obsidian/paper system and check it at the end of each month.
Month 1 (July 27 – August 27)¶
GitHub account set up (if not already public/professional)
complexity-auditrepo created (even if empty)First 5 algorithm derivations written and committed
Month 2 (August 27 – September 27)¶
Complexity Audit: all 20+ derivations done — Rung 1 COMPLETE
ds-from-scratchrepo createdDynamic Array + Doubly Linked List implemented and tested
Month 3 (September 27 – October 27)¶
DS Library: all 7 data structures done — Rung 2 COMPLETE
Blog platform chosen (Hashnode or Dev.to) — account created
First blog post drafted (Binary Search)
Month 4 (October 27 – November 27)¶
Blog Series: all 5 posts published — Rung 3 COMPLETE
leetcode-journeyrepo or Notion page created20+ LeetCode problems logged with annotations
Month 5 (November 27 – December 27)¶
LeetCode count at 60+ with annotations
Pattern recognition improving (note patterns you’re seeing)
Month 6 (December 27 – January 27)¶
LeetCode 100 milestone reached — Rung 4 COMPLETE
Reflection blog post published
Graph showcase repo created, BFS maze running
Month 7 (January 27 – February 27)¶
Graph Showcase: all 5 algorithms done — Rung 5 COMPLETE
DP Handbook repo created
First 3 DP patterns documented in your own words
Month 8 (February 27 – March 27)¶
DP Handbook: all 7 patterns written — draft complete
DP Handbook: submitted to r/learnprogramming — community response received
Codeforces account created, at least 1 rated contest attempted
Rung 6 COMPLETE by end of M8.5 (mid-March) — HARD GATE
Month 9 (March 27 – April 27)¶
Codeforces: minimum 5 rated contests completed
Codeforces: rating ≥ 1200 OR trajectory documented — Rung 7 attempted — HARD GATE
M9 Capstone written and published — Rung 8 COMPLETE
All 8 rungs either complete or documented with honest status
The Anti-Portfolio¶
These things feel like portfolio items but are not. Do not list them as artifacts.
“I completed NeetCode 150.” That’s a study method, not a portfolio artifact. It tells a reader nothing about what you understood or retained. The LeetCode 100 Milestone (Rung 4) is a portfolio artifact because it includes annotations, patterns identified, and a reflection. NeetCode 150 completion without that layer is a checkbox, not evidence.
“I watched the MIT 6.006 lectures.” Consumption is not production. The complexity audit (Rung 1) proves you understood complexity — watching lectures does not.
“I read CLRS.” Same as above. A book read is not a book understood. Implementing the data structures from it is Rung 2.
“I know all the LeetCode patterns.” Claimed knowledge is noise. The DP Handbook (Rung 6) is what “I know DP patterns” looks like as evidence.
A private GitHub repo. If it’s private, a reader cannot verify it. It does not count for portfolio purposes. The signal value is exactly zero.
An AI-generated blog post. The point of the blog series (Rung 3) is that explaining forces you to understand. If an LLM wrote it, you learned nothing and the artifact is empty. Readers will notice; the community engagement criterion (3 genuine responses) is specifically designed to filter AI-generated content.
Certificate screenshots. HackerRank certificates, Coursera completions, etc. These are not evidence of algorithmic thinking — they are evidence of completion of a structured course. Not wrong to list as background, but they are not portfolio rungs.