Skip to content(if available)orjump to list(if available)

Show HN: AlgoDrill – Interactive drills to stop forgetting LeetCode patterns

Show HN: AlgoDrill – Interactive drills to stop forgetting LeetCode patterns

113 comments

·December 9, 2025

I built AlgoDrill because I kept grinding LeetCode, thinking I knew the pattern, and then completely blanking when I had to implement it from scratch a few weeks later.

AlgoDrill turns NeetCode 150 and more into pattern-based drills: you rebuild the solution line by line with active recall, get first principles editorials that explain why each step exists, and everything is tagged by patterns like sliding window, two pointers, and DP so you can hammer the ones you keep forgetting. The goal is simple: turn familiar patterns into code you can write quickly and confidently in a real interview.

https://algodrill.io

Would love feedback on whether this drill-style approach feels like a real upgrade over just solving problems once, and what’s most confusing or missing when you first land on the site.

firsttracks

Some feedback: The drill style approach seems helpful, but needing the variable names to exactly match threw me off. It would be great if we could _relax_ this constraint via a toggle for drill mode. "Precision Mode" feels like it's misnamed; when it's toggled on it feels more like a "guided mode" since chunks of boilerplate are written for you. It would be great if exiting Drill mode remembered choices, such as what portions were selected.

Ended up deciding to buy a subscription, but looks like the site still says "82% claimed" and "17 spots left". I appreciate the one-time purchase model, but feel that it's a bit shady of a tactic.

arein3

still 17 spots left

I understand that it's a sales tactic, but it's lying to your users worth it?

zweifuss

AlgoDrill is so futuristic, that Gemini 3 included it in the HN front page 10 years from now (#5): https://news.ycombinator.com/item?id=46205632

null

[deleted]

brazukadev

what a terrible future

michaelmior

What threw me off is the expectation that I use the same variable names and exact same code structure. There are many ways to implement effectively the same thing. I understand that it would be very challenging to implement a way to validate solutions in this way, but memorizing exact fragments of code feels like it's optimizing for the wrong thing.

henwfan

Thanks for taking the time to try it and write this up.

You are right that the current check still leans too much toward my reference solution. It already ignores formatting and whitespace, but it is still quite literal about structure and identifiers, which nudges you toward writing my version instead of your own. There are many valid ways to express the same idea and I do not want to lock people into only mine.

Where I want to take it is two clear modes. One mode tracks the editorial solution for people who want to learn that exact version for an interview, while still allowing harmless changes like different variable names and small structural tweaks. Another mode is more flexible and is meant to accept your own code as long as it is doing the same job. Over time the checker should be able to recognise your solution and adapt its objectives and feedback to what you actually wrote, instead of pushing you into my template. It should care more about whether you applied the right logic under time pressure than whether you matched my phrasing.

There is also a small escape hatch already in the ui. If you completely blank or realise you have missed something, you can press the Stuck button to reveal the reference line and a short explanation, so you still move forward instead of getting blocked by one detail.

You are pushing exactly on the area I plan to invest in most. The first version is intentionally literal so the feedback is never vague, but the goal is for the checker to become more adaptive over time rather than rigid, so it can meet people where they are instead of forcing everyone through one exact solution.

VBprogrammer

Some might consider that a kind of commentary on the leet code interview format.

marssaxman

After hearing people complain about these fearsome "leetcode interviews" for what feels like a decade now, I have to wonder when I am finally going to encounter one. All I get are normal coding problems.

VBprogrammer

One man's leet code is another man's simple programming question which involves minimal domain knowledge...

I've had candidates describe what I'd loosely call "warm-up" questions as leet code problems. Thing like finding the largest integer in an array or figuring out if a word is a palindrome.

losteric

This by itself completely un-sold me. Requiring such rote memorization is a hard pass for me, it seems the user should just be able to self-assess whether they got it “right” (like Anki cards).

epolanski

I like the idea, and you've got yourself a customer :)

The lifetime membership + launch discount was a good marketing bait I felt for.

Not really understanding the negativity here. We know for a fact that most of the people that master intellectual problems do so via pattern recognition, not by reasoning.

You show a chess master a position, he/she can instantly tell you what the best moves are without "thinking" or "calculating" because it's mostly pattern recognition.

Maths and algorithms fall in the same category. When approaching new problems, masters don't really start processing the information and reasoning about it, instead they use pattern recognition to find what are very similar problems.

The thing I really don't like is the lack of TypeScript or at least JavaScript, which are the most common languages out there. I really don't enjoy nor use Java/Python/C++.

embedding-shape

> We know for a fact that most of the people that master intellectual problems do so via pattern recognition, not by reasoning.

Where is this fact stated, and who are "we" here? Sounds like an opinion or guess at best.

> Not really understanding the negativity here

There are two comments that could be read negativily, the rest is neutral or positive. I don't really understand the constant need for people to bring up what (they think) the rest of the comments said. Post your piece adding positivity if you want, but most of the time comments end up a fair mix so any time someone adds a snippet like that, it turns outdated in a few hours.

epolanski

There's lots of psychological and anthropological studies behind the fact that most experts in various fields excel due to pattern recognition not reasoning.

Going back to the chess example, while chess masters are incredible at analyzing complex positions they can recognize as "similar to", their advantage over normal human beings is very small when positions are completely randomized.

"Peak: Secrets from the New Science of Expertise", by Ericsson goes more in depth of the topic, but there's lots of literature on the topic.

hansmayer

> There's lots of psychological and anthropological studies behind the fact that most experts in various fields excel due to pattern recognition not reasoning.

Pattern recognition in experts comes from combination of theoretical understanding and a lot of practical problem solving experience (which translates into patterns forming in way of neural paths) - not the other way around. If you dont understand the problem you are solving, then yes maybe you'll be able to throw a pattern at it and with a bit of luck solve it (kinda like how LLMs operate), but this will not lead to understanding. Memorising patterns isolated from theoretical backgrounds is not something that will create an expert in a field.

pcthrowaway

> their advantage over normal human beings is very small when positions are completely randomized.

The book you referenced does not say they're comparable to normal players at playing from a random position.

Normal players are almost as good as them at recalling a nonsensical board of random pieces.

The suggestion that the advantage of a chess master over a normal player is "very small" at playing from a random position is laughable.

henwfan

Thank you, I really appreciate you signing up.

I agree with you on pattern recognition. AlgoDrill is built around taking patterns people already understand and turning them into something their hands can write quickly under pressure. You rebuild the solution line by line with active recall, small objectives, and first principles explanations after each step, so it is more than just memorizing code.

You are also right about the language gap. Right now the drills are Python first, but I am already working on full support for JavaScript, Java, and C++ across all problems, and I will have all of those in by the end of this year. I want people to be able to practice in the language they actually use every day, so your comment helps a lot.

johnhamlin

Another +1 for TypeScript from a new lifetime subscriber. Great site!

inesranzo

> Not really understanding the negativity here. We know for a fact that most of the people that master intellectual problems do so via pattern recognition, not by reasoning.

> The lifetime membership + launch discount was a good marketing bait I felt for.

The negativity here with me is because it feels like clickbait and like a scammy ad to manipulate me into purchasing.

It is almost lying. I find it unethical and I don't think there are 17 lifetime access spots, it's just artificial hype that doesn't make sense to me.

Marketing (at least like this) is basically lying.

epolanski

I agree fully, which is why I called it a (good) marketing bait. Worked on me.

Might be because I'm also considering finding new clients/jobs, and apparently even for 2/3 months of collaborations people are sending me through several rounds of algo questions, so it was a nice add on top of my leetcode and codewars drills.

baq

I don't know if I feel any negativity, but this is the first time I actually thought 'the price of subscription is approximately equal the price of Opus tokens needed to build a custom version of this for myself'... and got a bit scared TBH

Mars008

> approximately equal the price of Opus tokens needed to build

this is probably not accidental.

andoando

Agree with your overall message, but I don't think thats true for chess. Chess players wouldnt be spending an hour on their own move in a match where theyve been been studying the board for hours already if it were that simple

paddleon

> Not really understanding the negativity here.

In the last year or so HN seems to have attracted a lot of people (plus some bots) who seem to have been socialized on Reddit.

I don't know if these people are ignorant of what a good discussion forum can be (because they've never experienced one) or just don't care, but I do wish we could see more reflection on the second-order impacts of posting, and a move away from the reflexive negativity that mimics the outer face of good criticism while totally missing the thought and expertise good criticism requires.

kilroy123

I've been around here for over a decade. I'm telling you, this has been happening for longer than a year. I'd say the last ~4 years.

monooso

I understand the pragmatic reasons behind such a decision, but insisting that I sign up with Google (and only Google) was an unfortunate blocker.

If anything, GitHub seems like a more obvious choice for such a site.

henwfan

That is fair. I went with Google first because it let me ship the first version quickly, but for a tool aimed at developers GitHub and simple email sign in make much more sense.

I am working on both and plan to let people move their account once they are live if they would prefer not to use Google here.

port11

I was hooked, but don't have a Google account anymore. Oh well…

wodenokoto

Is it correctly understood that this is Anki for a subset of leetcode problems with study notes?

I bit more info on what NeetCode is, why I should focus on those 150 problems and how the drilling actually work would be helpful. Do I get asked to do the same problems on repeat? Is it the same problems reformulated over and over? Is there actualy any spaced repetition, or am I projecting?

henwfan

That is a good first approximation, but it is a bit more guided than a plain Anki deck. For each problem there is a structured study page and an interactive practice mode.

NeetCode 150 is a popular curated list of LeetCode problems that covers the core interview patterns people expect nowadays, like sliding window, two pointers, trees, graphs, and dynamic programming. I used that set as the base so you are not guessing which problems to focus on, and more problems and patterns are being added on top of that core set regularly.

On the study side, each problem has a consistent structure with the core idea, why that pattern applies, and a first principles walkthrough of the solution. On the practice side, the solution is broken into small steps. Each step has a clear objective in plain language, and you rebuild the code line by line by filling in the missing pieces. After you answer, you see a short first principles explanation tied to the line you just wrote, so you are actively recalling the logic instead of just reading notes.

You can repeat problems and patterns as much as you want, mark problems as solved or unsolved, and filter by pattern so you can focus on the ones you struggle with most. There is not a full automatic review schedule yet. For now you choose what to review, and the goal is to use that progress data to track weak patterns, guide what you should drill next, and add more types of focused drills over time.

embedding-shape

I learned the other day (https://news.ycombinator.com/item?id=46184676) that people who aren't students apparently use LeetCode too, for recreational purposes? I'm not sure why you'd work on someone else's imaginary problem instead of doing something for yourself, so apparently it's there and some people enjoy it, regardless of my understanding of it.

But then I don't know how to reconcile the idea that some people use LeetCode to pass interviews, some use it recreationally, but then this app seems to indicate some people use LeetCode to learn patterns to implement in the real world, which seems absolutely backwards to me. These are tiny examples, not "real programming" like you'd encounter in the world outside of computers, LeetCode can impossibly teach you how to create useful programs, it only teaches you syntax and specific problems.

So I guess take this as a word of caution, that no matter how much you grind LeetCode, nothing will prepare you to solve real world problems as practicing solving real world problems, and you don't need any platforms for that, just try to make your daily life better and you'll get better at it over time and with experience of making mistakes.

baq

> imaginary problem instead of doing something for yourself

they're doing it for themselves just like when they solve sudokus, crosswords or play fortnite

another_twist

I do codeforces in my spare time. Sometimes I implement and ML paper. Other times, I like to slog through my implementation of Raft, Paxos and VR. Not everybody wants to build generic crud app number 1,200,674. Coding is for solving problems, the problems might be engineering or just pure fun.

ATMLOTTOBEER

Idk isn’t copying someone else’s work verbatim boring to you? Usually i try to do at least 15-45minutes of novel research in physics/math with my morning coffee

mylifeandtimes

some people like to play with Rubiks Cubes, which among other things is a nice tactile way to learn some interesting advanced math

Vaslo

Seeing how other people solve problems opens up new ways for me to solve my own. Many people are not RTFM but instead want applied examples.

embedding-shape

> Many people are not RTFM but instead want applied examples.

Yeah, this is me very much to the core of my bones, and I think that's why I don't find any pleasure or enjoyment from these synthetic coding challenges, and trying to understand those that do.

999900000999

This might be the answer for me, you're breaking down all these questions into actual smaller steps and having the user write those out instead .

I dislike limited offers, because I think you're placing a bit of unfair pressure on the user to buy. But I went ahead and gave you 30 bucks.

I'm going to study this before my next interview, thank you

emaro

I feel like this is a bit backwards. It seems to be an improvement over just grinding LeetCode, but I'd never work for a company expecting me to spit out LeetCode solutions quickly (recall). If they give me a LeetCode style problem and want to see how I approach this, what I know, how I deal with what I don't, then it's fine. But I think neither LeetCode or AlgoDrill are needed for this.

Or to put it another way, if I give some applicant a coding problem to solve, and they just write down the solution, I didn't learn much about them except they memorized the solution to my problem. That most likely means I gave them the wrong (too easy) problem. It will only increase the change of me hiring them by a tiny bit.

Edit: I don't hate the player, I hate the game.

notepad0x90

this type of stuff is generally for interviews. But it does tell you that the candidate has learned the patterns in question. That particular solution isn't important, but knowing good design patterns to solutions is. Knowing how a decent number of problems are best solves gives them a good intuition of how to tackle problems. Otherwise, they would tackle it using their intuition/vibes. There are books one can read to learn this stuff as well I'm sure, but how do you prove what knowledge you've retained?

10 programmers will write 10 different ways to solve a simple problem. and that code is tech-debt other programmers have to maintain at some point. Just having coders that have the same base-level memorized problem solving patterns can ease that pain, and it can make collaboration/reviews easier down the road.

pxtail

Nice, you have identified shovel very well.

francoispiquard

Seems like a good idea, is it the same kind of concept as the woodpecker method in chess ?

henwfan

Nice comparison. It is pretty similar in spirit to the woodpecker method.

In chess you repeat the same positions until the patterns feel automatic. Here it is LeetCode problems. You keep seeing the same core patterns and rebuild the solution step by step. For each step and line there is a small objective first, and then a short first principles explanation after you answer, so you are not just memorizing code but training pattern recognition and understanding at the same time.

hinicholas

I like it. I subscribed. The check is definitely rough around the edges though. Memorizing the exact variable names is tough. I think the objectives should maybe give you the variable names it expects at least.