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-audit repo 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-scratch repo created

  • Dynamic 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-journey repo or Notion page created

  • 20+ 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.