I got tired of grinding LeetCode alone, so I built the companion I actually wanted
1. Story — the algorithm as a scene you live through, not a wall of constraints. 2. Watch It Run — pointers move, cells light up, the trick…
I got tired of grinding LeetCode alone, so I built the companion I actually wanted
- Story — the algorithm as a scene you live through, not a wall of constraints.
- Watch It Run — pointers move, cells light up, the trick happens in front of you.
- Code Walkthrough — the same run, synced line by line to the actual solution.
- Every Variant — brute force to optimal, in six languages, so you see the lineage.
- Spaced Revisits — a nudge when it’s actually time to forget-check, not a guilt trip.
- Curate Your Way — Blind 75, NeetCode, or study by target company.
Layer 1: the Story

Every problem opens with a short narrative, not a wall of constraints. A concrete scene, the real problem hiding inside it, the slow-and-obvious way to solve it, the moment the clever trick clicks, and a one-line payoff — written so a curious ten-year-old could feel their way through it. No jargon, no variable names, no Big-O.

Two Sum isn’t “an array problem,” it’s the two cards that make ten. Contains Duplicate isn’ts the sticker seen twice. The “fast way” in the story has to match the actual code beat forbeat — the metaphor is load-bearing, not decorative. Once a pattern has a scene attached to it, it’s a lot harder to lose under interview pressure.
Layer 2: watch it run
Reading that the two-pointer technique closes in from both ends is one thing. Watching two markers actually converge on an array is another. Preporium has a built-in visualizer — arrays, trees, grids, graphs, timelines — that animates the algorithm step by step: pointers moving, cells highlighting, ton flips a decision.

Layer 3: the code walkthrough
The same player that runs the animation shows the solution source with the active line highlin-English line for what that step is actually doing. You’re not just watching shapes move — you’re watching the code that produces them, one line at a time, until the animation and the syntax stop feeling like two different things.
Layer 4: every variant, not just the answer
The optimal solution is never the whole story. Where it’s relevant, Preporium also carries the brute-force instinct, and for DP problems, both the memoized and tabulated versions — so you see the lineage of a solution, not just its destination. Every variant is available in six languages (JavaScript,, because the algorithm should survive a language switch and so should your understanding ofit.

Layer 5: spaced revisits, not guilt
Mark a problem, and an hourly job emails you a digest of what’s due for revisit — timed to your own local hour, elapsed-based, so “come back in 3 days” actually means 3 days, not a random 3am ping. Review shows up like a nudge, not a scoreboard you’re failing.
Layer 6: curate the way you actually study

Pick a built-in list — Blind 75, NeetCode 150, NeetCode 250 — set your own daily pace, recalculates as you go instead of guilt-tripping you the first week life gets in the way. Or switch curation modes entirely and study by target company, so your practice lines up with the interview you actually have coming up, not a generic order.


What it’s built on
Preporium is a Next.js App Router app with Supabase for auth and Postgres, styled with Tailwind and shadcn/ui. Auth supports email/password and Google sign-in. Progress tracking is manual and optimistic — mark a problem solved and the UI updates before the round trip finishes, because nothing kills momentum like a spinner. There’s a free tier scoped to a real handful of topics — no trial-and-expire countdown, just real access to a real subset.
What’s next
I’m currently extending the Story layer into read-aloud narration, so you can listen to a problem instead of reading it — useful for commute review, and for anyone who retains a told story better than a read one. After that: an email-first progressive login, cutting signup down to “enter your email”the account around that, instead of front-loading a full form before anyone’s decided the app is worth it.
If the problems themselves aren’t the part that’s stalling you — if it’s the why this technique, why now — that’s what Preporium is built for.
preporium.com (https://preporium.com/)
메타데이터
- post_id
- 46a2d41a2480
- slug
- i-got-tired-of-grinding-leetcode-alone-so-i-built-the-companion-i-actually-wanted-46a2d41a2480
- url
- https://medium.com/@thyagarajupathur/i-got-tired-of-grinding-leetcode-alone-so-i-built-the-companion-i-actually-wanted-46a2d41a2480
- canonical_url
- https://medium.com/@thyagarajupathur/i-got-tired-of-grinding-leetcode-alone-so-i-built-the-companion-i-actually-wanted-46a2d41a2480
- author_url
- https://medium.com/@thyagarajupathur
- status
- ok
- fetched_at
- 2026-08-08 15:12:19