03 — The DSA Rabbit Hole¶
Failure mode: Raghul over-invests in LeetCode / Codeforces / competitive programming. What starts as “just NeetCode 150 for study prep” becomes 3 months of grinding, contest weekends, LC premium, HackerRank Gold badges. Meanwhile P3 (concurrency), P4 (systems), P5 (ML integration) never happen. He lands at M13 with a 2000+ LC rating and no applied portfolio.
Probability: 15%
Lower than most modes because the roadmap explicitly targets applied-ML C++, not FAANG-DSA C++. But the pull is real — DSA feels like measurable progress (rating goes up), while systems and ML integration feel murky and open-ended.
Why It Happens¶
Measurable progress dopamine. LC rating, streak count, contest rank — these give clear numeric feedback. Systems work gives you “the profiler now shows 2% less time in
malloc” which does not scratch the same itch.India tech culture bias. DSA is the default study meta in Indian tech; recruiters at Amazon/Google India, and most product companies, still lead with DSA rounds. It feels rational to over-index on it.
Confidence rebuild loop. After a hard week fighting CMake, solving 5 LC easy problems in an evening feels great. The rebuild-morale side is legit; the trap is not stopping.
The “one more contest” seduction. Codeforces contests are 2 hours, Sunday evenings. A single contest becomes 6 hours (contest + upsolve + editorial). That is a whole day of applied ML integration that didn’t happen.
Early Warning Signals¶
>70% of a week’s coding hours are on LC / CF by any week after W16 (end of M4).
P3 (concurrency) or P4 (systems programming) has been “starting next sprint” for 3+ sprints while LC volume rises.
Contest weekends are consistently non-negotiable on the calendar, but applied-ML weekends get skipped.
The blog / posts have become “LC editorial-style” writeups instead of the applied C++ topics in
../13_discipline/05_teach_to_learn.md.Anki / spaced repetition deck is 80%+ DSA cards vs. C++ language & applied concepts.
Mitigation — Hard Caps¶
Two numeric caps, non-negotiable:
60 LeetCode/CF problems per month, maximum. No exceptions. Contest problems count. Editorial-solve counts.
When P2.1 (NeetCode 150 pass) hits 150 problems solved OR when M5 ends — whichever comes first — DSA volume drops to 20 problems/month maintenance mode. Regardless of “unsolved problem count.” You are done with the intensive DSA phase.
Additional guardrails:
No Codeforces contests until M4. M1–M3 is language rebuild; contests scatter attention.
From M4–M5, at most 1 CF contest per fortnight, and only if the current sprint’s core target is on track.
From M6 onward, contests are a treat, not a habit. Max 1/month.
Sunday audit adds a fourth question during M4–M5: “Did LC/CF hours exceed my applied work hours this week?” If yes for 2 weeks running, cut LC by half.
The Bigger Trade Being Made¶
DSA gets you past the first study filter. It does not get you offers, and it does not get you paid what you’re worth. In 2026, C++/ML study loops are 5-stage: DSA screen → language deep-dive → systems/perf design → applied ML integration → behavioral. DSA is stage 1 of 5.
A candidate at 1800 LC rating with a shipped Eigen MLP + a tiny inference server that serves real requests will beat a candidate at 2400 LC rating with no applied portfolio, 4 times out of 5, in applied ML C++ loops. That is the specific job Raghul is targeting. The DSA rating is a filter he passes at “good enough”, not “elite.”
Elite DSA is a different job. It is worth pursuing if the target is HFT (Jane Street, Optiver, Citadel). It is not worth pursuing for applied ML.
Escalation Trigger¶
If, at the end of any M4/M5 sprint retro, LC hours > applied-work hours for that sprint AND P3/P4 core target was missed:
Immediate 2-week LC ban. Zero problems. Sanity break.
Use the reclaimed hours to unblock the P3 or P4 target that was missed.
Sunday audit entry: what was the LC pulling me away from, and why did it feel more attractive?
What Success Looks Like¶
~150 LC problems solved by end of M5, spread across NeetCode 150 topic patterns.
LC rating in the 1600–1900 range (good enough to pass DSA screens at most product companies including Zoho-tier, Flipkart, Amazon India, and mid-tier global remote).
P3, P4, P5 shipped on schedule. The Eigen MLP + pybind11 (rung 6, M9) is the hard gate — DSA cannot be the reason it slips.
LC drops to 20/month maintenance from M6.