[{"data":1,"prerenderedAt":587},["ShallowReactive",2],{"project-46203581":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":44,"post_text":45,"what":46,"said":87,"maker_in_thread":226,"shape":236,"grid":240,"attempts":548,"same_week":549,"maker_shows":41,"maker_hidden":579,"reader_version":580,"card":581},"46203581","AlgoDrill","Interactive drills to stop forgetting LeetCode patterns","title","Show HN: AlgoDrill – Interactive drills to stop forgetting LeetCode patterns","https:\u002F\u002Falgodrill.io","algodrill.io","henwfan",1765278546,2025,178,108,380,3837,10,"notable","learning_science","coding interview prep","web_app",[24,21,25,26],"leetcode patterns","active recall","neetcode 150","roasted",-0.355,{"positive":30,"neutral":31,"mixed":31,"critical":32},3,9,21,42,{"pricing":35,"execution":38,"idea":40,"design":42,"docs":43},{"positive":36,"critical":37},0,6,{"positive":36,"critical":39},5,{"positive":41,"critical":39},1,{"positive":41,"critical":30},{"positive":36,"critical":41},[41,41,36,36,41,41,41,39,36,41,36,41,41,41,36,30,41,30,41,36,36,36,41,30,30,41,30,41,30,36,36,36,39,41,30,30,36,36,41,41],"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.\n\nAlgoDrill 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.\n\n",{"problem":47,"audience":53,"pricing":61,"motivation":73,"time_to_build":77,"stack":78,"openness":85,"stage":86,"team_size":85},{"value":48,"source":49,"evidence":50},"Forgetting LeetCode patterns after solving them once","maker",[51],{"id":52},"post",{"value":54,"source":55,"evidence":56},"Software engineers preparing for coding interviews","inferred",[57,58],{"id":52},{"id":59,"by":11,"text":60},"46204121","I mostly agree that the interview format itself is strange. I do not think people should be judged mainly on how many patterns they can recall on command. The reality for a lot…",{"value":62,"source":63,"evidence":64},"One-time lifetime purchase with launch discount; commenters also mention subscription","commenter",[65,69],{"id":66,"by":67,"text":68},"46206026","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…",{"id":70,"by":71,"text":72},"46204220","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…",{"value":74,"source":49,"evidence":75},"Kept forgetting patterns after grinding LeetCode",[76],{"id":52},null,[79],{"value":80,"source":49,"evidence":81},"Python (drills currently Python only)",[82],{"id":83,"by":11,"text":84},"46204340","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…","unknown","launched",{"praise":88,"objections":105,"requests":153,"questions":174,"alternatives":200},[89,101],{"value":90,"source":63,"evidence":91},"Drill style approach seems helpful for retention",[92,93,97],{"id":70,"by":71,"text":72},{"id":94,"by":95,"text":96},"46205971","bochoh","Solid platform - clean and useful for algorithm practice. Quick suggestions: ``` - GitHub OAuth would feel natural for devs. - Broaden language support (C#, TypeScript, Ruby). -…",{"id":98,"by":99,"text":100},"46205367","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…",{"value":102,"source":63,"evidence":103},"Clean and useful site",[104],{"id":94,"by":95,"text":96},[106,122,130,142],{"value":107,"source":63,"evidence":108},"Checker requires exact variable names and structure",[109,113,117,121],{"id":110,"by":111,"text":112},"46205300","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…",{"id":114,"by":115,"text":116},"46211178","quibono","I want to like this. But... one has to write the answer in EXACTLY the same format, down to each variable name it seems?",{"id":118,"by":119,"text":120},"46219831","davidbensoussan","Bought it but please fix the variable names issue mentioned by other people here",{"id":98,"by":99,"text":100},{"value":123,"source":63,"evidence":124},"Fake urgency marketing (claimed spots and percentages)",[125,126],{"id":66,"by":67,"text":68},{"id":127,"by":128,"text":129},"46204833","inesranzo","This project has potential but there are some issues with \"Marketing\" (I call this lying depending on how it's done) Please stop with the false urgency and borderline lying to…",{"value":131,"source":63,"evidence":132},"Only Python supported; no JavaScript, TypeScript or other languages yet",[133,134,138],{"id":70,"by":71,"text":72},{"id":135,"by":136,"text":137},"46204710","AidenVennis","The website is missing information on which languages it supports. I was hoping for Typescript, but after registering I see that it's only Python at the moment and it seems Java…",{"id":139,"by":140,"text":141},"46206782","clbrmbr","Rust version?",{"value":143,"source":63,"evidence":144},"Google-only sign in is a blocker",[145,149],{"id":146,"by":147,"text":148},"46205400","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…",{"id":150,"by":151,"text":152},"46212207","stack_framer","Is there any way to try it without signing in via Google?",[154,160,165,170],{"value":155,"source":63,"evidence":156},"Support more languages such as JavaScript and TypeScript",[157,158,159],{"id":70,"by":71,"text":72},{"id":135,"by":136,"text":137},{"id":94,"by":95,"text":96},{"value":161,"source":63,"evidence":162},"Accept user's own variable names and code structure",[163,164],{"id":110,"by":111,"text":112},{"id":118,"by":119,"text":120},{"value":166,"source":63,"evidence":167},"GitHub sign in",[168,169],{"id":146,"by":147,"text":148},{"id":94,"by":95,"text":96},{"value":171,"source":63,"evidence":172},"Dark\u002Flight mode toggle",[173],{"id":94,"by":95,"text":96},[175,182,189],{"value":176,"source":63,"evidence":177},"Is this like Anki or spaced repetition?",[178],{"id":179,"by":180,"text":181},"46204427","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…",{"value":183,"source":63,"evidence":184},"Why is text selection disabled in study mode?",[185],{"id":186,"by":187,"text":188},"46207610","skydan","Why is text selection disabled in study mode? Is this an intentional design choice?",{"value":190,"source":63,"evidence":191},"Is the value of learning LeetCode patterns real for work?",[192,196],{"id":193,"by":194,"text":195},"46212238","nialv7","Actually curious, how often do you find uses for LeetCode patterns in your actual work?",{"id":197,"by":198,"text":199},"46204035","dragochat","...the f?! why are we interviewing ppl for things like this?! you either: (a) want DEEP understanding of math and proofs behind algorithms etc. (b) can get away with very high…",[201,205,212,219],{"value":202,"source":63,"evidence":203},"NeetCode",[204],{"id":179,"by":180,"text":181},{"value":206,"source":63,"evidence":207},"Woodpecker method in chess",[208],{"id":209,"by":210,"text":211},"46203928","francoispiquard","Seems like a good idea, is it the same kind of concept as the woodpecker method in chess ?",{"value":213,"source":63,"evidence":214},"Nemorize",[215],{"id":216,"by":217,"text":218},"46208800","reverseblade2","You can do similar here for free https:\u002F\u002Fnemorize.com",{"value":220,"source":63,"evidence":221},"An Excel sheet",[222],{"id":223,"by":224,"text":225},"46205070","another_twist","This is a good product, the mechanism for me was an excel sheet. I wont sign up though, I've ground enough LC. These days I dont even prep for algorithm rounds and still manage…",{"comments":31,"answered":227,"key":228},2,[229,232,233],{"id":230,"text":231},"46207724","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…",{"id":83,"text":84},{"id":234,"text":235},"46207888","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.…",{"commenters":237,"max_depth":37,"maker_replies":31,"first_comment_mins":238,"lifespan_hours":239},80,46,182,[241,243,247,251,254,256,259,262,264,268,271,274,276,279,282,284,287,290,292,296,299,301,304,306,309,312,314,316,319,322,324,327,329,332,334,337,340,342,345,347,350,353,355,359,364,367,370,371,374,377,380,382,387,390,393,395,398,401,404,406,409,411,416,419,422,424,427,430,434,439,443,446,447,451,455,457,460,462,464,466,469,472,475,478,481,484,487,490,493,498,500,504,505,507,509,512,516,519,521,523,525,529,532,534,536,540,542,544],[66,36,30,242,67,36],"project\u002Fmixed\u002Fpricing",[244,36,41,245,246,36],"46217717","project\u002Fcritical\u002Fpricing","arein3",[248,41,36,249,250,36],"46210034","other\u002Fneutral\u002Fnone","zweifuss",[252,41,36,249,253,36],"46220443","brazukadev",[110,227,41,255,111,36],"project\u002Fcritical\u002Fexecution",[257,227,36,249,258,36],"46205638","VBprogrammer",[260,227,36,249,261,36],"46206647","marssaxman",[263,227,36,249,258,36],"46207001",[265,227,36,266,267,36],"46208991","commenter\u002Fneutral\u002Fnone","andoando",[269,227,36,249,270,36],"46209153","cloverich",[272,227,41,255,273,36],"46207243","losteric",[230,227,36,275,11,41],"maker\u002Fneutral\u002Fexecution",[277,227,30,278,111,36],"46247474","project\u002Fneutral\u002Fidea",[280,227,41,255,281,36],"46296810","djmips",[70,30,30,283,71,36],"project\u002Fmixed\u002Fidea",[285,30,41,245,286,36],"46204334","baq",[288,30,41,245,289,36],"46204906","Mars008",[83,30,36,291,11,41],"maker\u002Fpositive\u002Fnone",[293,30,39,294,295,36],"46204892","project\u002Fpositive\u002Fnone","johnhamlin",[297,30,36,266,298,36],"46204359","embedding-shape",[300,30,36,266,71,36],"46204507",[302,30,36,266,303,36],"46204943","pcthrowaway",[305,30,36,266,71,36],"46204982",[307,30,36,266,308,36],"46205868","pegasus",[310,30,36,266,311,36],"46205709","hansmayer",[313,30,41,245,128,36],"46204604",[315,30,36,266,71,36],"46205000",[317,30,36,249,318,36],"46205097","paddleon",[320,30,36,249,321,36],"46205973","kilroy123",[323,30,36,266,267,36],"46210586",[146,325,41,326,147,36],4,"project\u002Fcritical\u002Fdesign",[234,325,36,328,11,41],"maker\u002Fneutral\u002Fdesign",[330,325,41,326,331,36],"46214769","port11",[179,39,30,333,180,36],"project\u002Fneutral\u002Fdocs",[335,39,36,336,11,41],"46204645","maker\u002Fneutral\u002Fdocs",[338,37,41,339,298,36],"46204137","project\u002Fcritical\u002Fidea",[341,37,36,266,286,36],"46204210",[343,37,36,249,344,36],"46204679","mylifeandtimes",[346,37,36,249,224,36],"46205102",[348,37,36,266,349,36],"46217705","ATMLOTTOBEER",[351,37,36,249,352,36],"46205969","Vaslo",[354,37,36,249,298,36],"46206485",[356,357,30,242,358,36],"46206490",7,"999900000999",[360,361,30,362,363,36],"46204276",8,"project\u002Fneutral\u002Fnone","pxtail",[365,31,41,339,366,36],"46207097","emaro",[368,31,36,249,369,36],"46207219","notepad0x90",[209,18,30,278,210,36],[372,18,36,373,11,41],"46204180","maker\u002Fneutral\u002Fidea",[98,375,30,376,99,36],11,"project\u002Fmixed\u002Fexecution",[135,378,41,379,136,36],12,"project\u002Fcritical\u002Fdocs",[216,381,41,339,217,36],13,[383,384,36,385,386,36],"46204606",14,"other\u002Fcritical\u002Fnone","pelagicAustral",[388,384,36,385,389,36],"46204740","neilv",[391,384,36,249,392,36],"46227301","stackedinserter",[394,384,36,249,389,36],"46256998",[396,384,36,249,397,36],"46204921","noident",[399,384,36,249,400,36],"46207264","boredtofears",[402,384,36,249,403,36],"46207524","stuaxo",[405,384,36,249,224,36],"46205049",[407,384,36,249,408,36],"46209004","koakuma-chan",[410,384,36,249,392,36],"46227312",[412,413,41,414,415,36],"46207611",15,"project\u002Fcritical\u002Fnone","apt-apt-apt-apt",[94,417,39,418,95,36],16,"project\u002Fpositive\u002Fdesign",[420,417,41,255,421,36],"46207749","sumnole",[423,417,36,275,11,41],"46207842",[425,417,36,426,11,41],"46207833","maker\u002Fneutral\u002Fnone",[186,428,30,429,187,36],17,"project\u002Fneutral\u002Fdesign",[431,432,41,326,433,36],"46205148",18,"androng",[435,436,30,437,438,36],"46214027",19,"project\u002Fmixed\u002Fnone","Fire-Dragon-DoL",[440,441,41,339,442,36],"46203968",20,"kybernetyk",[444,441,36,266,445,36],"46204603","qwertytyyuu",[114,32,30,376,115,36],[448,449,36,249,450,36],"46204689",22,"dzonga",[452,453,41,255,454,36],"46207085",23,"australium",[193,456,30,278,194,36],24,[458,456,36,249,459,36],"46213234","JoeOfTexas",[118,461,30,376,119,36],25,[463,461,36,275,11,41],"46222977",[197,465,36,249,198,36],26,[467,465,36,249,468,36],"46204107","farhanhubble",[470,465,36,249,471,36],"46204269","netdevphoenix",[473,465,36,249,474,36],"46204964","ascorbic",[476,465,36,249,477,36],"46207592","MyHonestOpinon",[479,465,36,249,480,36],"46204381","bko",[482,465,36,249,483,36],"46204491","only-one1701",[485,465,36,249,486,36],"46204459","petesergeant",[488,465,36,249,489,36],"46204667","komali2",[491,465,36,249,492,36],"46207446","ivape",[494,495,39,496,497,36],"46210337",27,"project\u002Fpositive\u002Fidea","HenryQuillin",[223,499,30,437,224,36],28,[501,502,41,339,503,36],"46204099",29,"constantcrying",[59,502,36,373,11,41],[506,502,36,249,471,36],"46204300",[150,508,30,362,151,36],30,[510,508,30,362,511,36],"46212374","ohghiZai",[513,514,36,249,515,36],"46204800",31,"Surac",[517,514,36,249,518,36],"46204956","dsr_",[520,514,36,249,389,36],"46204993",[522,514,36,249,408,36],"46209053",[524,514,36,249,389,36],"46210088",[526,527,36,249,528,36],"46212263",32,"ErroneousBosh",[530,527,36,249,531,36],"46212306","linguae",[533,527,36,249,528,36],"46215432",[127,535,41,245,128,36],33,[537,538,30,283,539,36],"46204935",34,"game_the0ry",[541,538,36,266,224,36],"46205081",[139,543,30,362,140,36],35,[545,546,41,245,547,36],"46212722",36,"smetannik",[],[550,555,560,565,570,575],{"id":551,"name":552,"points":553,"category":554},"46205632","Gemini Pro 3 HN front page 2035 (future Hacker News front page)",3346,"ai",{"id":556,"name":557,"points":558,"category":559},"46220794","alpranalysis",239,"data",{"id":561,"name":562,"points":563,"category":564},"46148460","Onlyrecipe 2.0",201,"consumer_social",{"id":566,"name":567,"points":568,"category":569},"46198430","Docket",177,"productivity",{"id":571,"name":572,"points":573,"category":574},"46147329","Fanfa",154,"dev_tools",{"id":576,"name":577,"points":578,"category":569},"46144801","Kraa",127,false,"v2",{"id":582,"name":5,"line":6,"ai":579,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":583,"top":18,"kw":584,"maker":11,"domain":10,"tier":19,"attempts":36,"strip":585,"url":9,"mix":586,"praise":90,"objection":107,"sub":21},46203581,-0.35,[24,21,25,26],"1100111501011103131000133131300051330011",[30,31,31,32],1794036687055]