What is Repcode?

Repcode is a platform built to empower software engineers to excel in Leetcode-style technical interviews. It helps you achieve this in three main ways:

  1. Organize, Catagorize, and Analyze: The intuitive UI/UX makes it simple to organize and categorize problems. In addition, a detailed statistic breakdown of every problem you add to Repcode is available, helping you target your weaknesses and identify your strengths. You can also store notes and commented solutions with each problem, allowing you to refer back to them at any time for further review
  2. Spatial Repetition Review: A built-in spatial repetition algorithm ensures you don't forget what you've learned, intelligently scheduling reviews of past problems to reinforce your understanding
  3. AI-Powered Feedback: Integrated AI (trained on the problem and its optimal solution) provides instant feedback on your solutions, helping you identify mistakes and areas for improvement in real-time.

We will expand on each of these features in more detail below. But first, let's clarify how Repcode is meant to be used and what it is not designed for.

What Repcode is not

Repcode is not intended to replace Leetcode but rather to complement it. Think of Leetcode as your textbook and Repcode as your personalized notebook for problem-solving. Repcode helps you organize, review, and receive feedback on your work, making the learning process more structured and effective.

To master Leetcode, it's important to understand that simply tackling random problems without focus or strategy isn't the best approach. Technical interviews often test your grasp of key data structures and algorithms, so building a strong foundation is critical. For example, trying to solve complex backtracking or binary search problems before you fully understand arrays and two-pointer techniques isn't productive. Mastering Leetcode requires solving problems in patterns, progressing from fundamental concepts to more complex ones. Roadmaps like the Neetcode 150 guide you through this process by organizing problems into patterns. Once you grasp the patterns, you're better equipped to solve a wide variety of new, unseen problems.

collections image

The top part of the Neetcode 150 roadmap

So then, where does Repcode factor in? Repcode provides a way to create custom collections to group problems by pattern or concept. For instance, if you're studying linked lists, you can create a collection called "Linked Lists" and store all your Leetcode problems, notes, and solutions for that pattern in one place. This allows you to easily revisit problems, review your thought processes, and reinforce your learning over time.

Additionally, every problem you add to a collection is automatically included in Study Mode, which leverages the spatial repetition algorithm. This ensures you review problems at the optimal time for retention, so you won't lose track of what you've learned.

To further enhance your study process, Repcode integrates with an AI-Powered Assistant that provides instant feedback when you're stuck on a solution, giving you helpful hints and corrections in real-time.

In short, Repcode addresses three major challenges when it comes to mastering Leetcode: Organization, Review, and Feedback — all with the help of collections, Study Mode, and AI integration.


🔑Key Takeaways:

  • Leetcode = Problem source (textbook)
  • Repcode = Learning tool (notebook)
  • Use both together for maximum benefit.

Part 0: Exploring the Platform

Before we dive into the specifics of how Repcode works, let's first explore the platform itself. When you login, you will see an expandable sidebar on the left. Use this to navigate to the different parts of the platform. Each symbol in the sidebar will take you to a seperate page:

  • styleCollections: View and manage your collections. Here, you can see a grid layout showing all the collections you have made so far, and you can click into any one of them to access the problems stored within. You can also edit, delete, and create new collections from this page.
  • local_libraryStudy Mode: Review problems using spacial repetition. A more detailed breakdown of how this works can be found in the following sections.
  • settingsSettings: Customize various aspects of the spatial repetition algorithm. Again, a detailed breakdown of these settings can be found in the following sections.
  • credit_card Profile/Billing: Manage your Repcode subscription and account information here. Currently, Repcode is completely free to use, so no billing information will be available.
  • home Homepage: Exit the application and return to the main landing page.
  • question_mark Help: Opens a new window to the guide page (where you are right now!)
  • logout Logout: Sign out of your account.

Part 1: Organization and Customization

The first part of this guide will cover how to use Repcode to effectively organize and customize your Leetcode problems. As mentioned earlier, the best way to improve at Leetcode is to break down problems into patterns and focus on practicing within those specific patterns. Repcode makes this easy by allowing you to create collections.

Each collection can hold multiple problems, and you can customize these collections as needed. For example, you can rename a collection at any time by clicking on the three dots in the top left corner of the collection card. You can also delete a collection from this menu, but keep in mind that doing so will permanently delete all the problems within it, and this action cannot be undone.

collections image

An example dashboard showing some collections

From the dashboard view, which shows all your collections, you can quickly access key information at a glance. This includes when the last problem was added to a collection, as well as a breakdown of the problems by type — categorized into New, Learning, and Review stages. The color bar at the bottom gives you an instant snapshot of your progress within each collection. The more green the bar, the better your understanding of that pattern, as it means more problems are in the Review stage, indicating strong familiarity.

When creating a new problem in a collection, you will be prompted to fill out a form with all sorts of information about the problem, such as:

FieldDescription
NameThe problem's name as listed on Leetcode.
QuestionThe actual problem itself.
SolutionThe code solution to the problem.
Function Signature (optional)The boilerplate code associated with the solution. On Leetcode, if you select any random problem you will notice there is already some boilerplate code in the code editor: this is the function signature. We ask for it so that we can mimic this in our own code editor.
Programming LanguageThe programming language you will use to solve the problem. Used for syntax highlighting/AI integration purposes.
Link to Problem (optional)The URL that will direct to the problem's page on Leetcode.
Additional Notes (optional)Any notes you wish to make for yourself about the problem.
Problem DifficultyThe problem's difficulty as shown on Leetcode (easy, medium, or hard).

And that's it — organizing your problems is that simple! Once a problem is logged into a collection, you can easily return to it at any time to re-solve it, view your solution, and receive feedback all within the platform. No need to maintain Excel spreadsheets or juggle multiple browser tabs—Repcode keeps everything organized in one place for you.

collections image

What the problem view looks like

When you add a problem to a collection, it will also automatically be integrated into Study Mode, which leverages the spatial repetition algorithm mentioned earlier. This ensures that you review problems at the optimal time to reinforce your learning. If you delete a problem from a collection, it will also be removed from Study Mode. For more information about this, refer to the next section.


🔑Key Takeaways:

  • Collections: Organize your problems by patterns using collections
  • Customization: Personalize every detail of the problems you add
  • All-in-one: Repcode tracks everything for you

Part 2: The Spatial Repetition Algorithm

One of the unique aspects of Repcode is its ability to not only help you store and organize problems, but also review them efficiently through Study Mode, powered by a fully customizable spatial repetition algorithm. This algorithm, similar to the one used by Anki, ensures that you never forget what you've learned by spacing out your review sessions. As of this writing, Repcode is the only actively maintained platform that offers this feature out of the box.

What is spatial repetition? In short, it's a learning technique that schedules review sessions at increasing intervals to improve long-term retention. It's based on the idea that the brain retains information best when it's reviewed at strategic points, rather than in one sitting. This section will be split into two sub-parts:

  1. How to use Study Mode
  2. How the spatial repetition algorithm works under the hood

Part 2.1: How to use Study Mode

First, the easy part: how to use it. The great thing about Study Mode is that it's largely automatic — the spatial repetition algorithm updates and manages itself. Whenever you add a problem to a collection, it's automatically included in Study Mode and factored into the algorithm. Your role is minimal: just navigate to the Study Mode section and, when you have problems due for review, a "Study Now" button will appear. Clicking this button will prompt you to solve the problems assigned for that day.

After solving each problem, head to the Solutions tab and choose the button that best reflects how difficult you found the problem:

If certain buttons aren't available for a problem, don't worry — this is intentional. Based on factors such as the problem's difficulty and current type, the algorithm may restrict some options to ensure more accurate feedback. Here's a quick guide on when to choose each option:

ButtonDescription
AgainPress this one if you had no idea how to even approach the problem.
HardPress this one if you were able to at least come up with a solution that passed some test cases, but was not optimal.
GoodPress this one if you could come up with and thoroughly explain the optimal approach to solving this problem.
EasyPress this one if you could optimally solve the problem very quickly with little thought.

Each day, the algorithm will assess the feedback you've given on the problem and other factors to decide when you should review it again.

collections image

A bar graph showing future review session workloads

It is important to use Study Mode consistently — daily practice is ideal to keep your workload manageable. But don't worry if you miss a few days; the algorithm won't break. Problems you miss will simply be pushed to future days. However, keep in mind that delaying too many days will increase your workload in the future, so try to stay on top of your reviews to avoid falling behind.

You might also notice that each problem in Repcode has an associated Type. These types help the spatial repetition algorithm determine how often you should review each problem based on how well you know it. The types are:

TypeDescription
NewA problem is classified as New when it's first added. You haven't given any feedback yet, so the algorithm doesn't know how well you understand it. A problem cannot revert to the New state once it leaves it.
LearningA problem that's in the process of becoming a Review problem. You can solve it, but the algorithm has determined that your grasp is not yet strong enough.
RelearningA problem that was previously categorized as Review, but due to poor recent feedback, it has returned to a state where more practice is needed.
ReviewA problem you are confident in and can solve without much effort. These problems will appear less frequently in Study Mode, as the algorithm considers them well-understood.

🔑Key Takeaways:

  • Automatic: Just create problems and give feedback and let Repcode do the rest
  • Feedback: Use the appropriate button based on how well you solved the problem
  • Daily practice: Staying consistent will prevent future overload

Part 2.2: How the Spatial Repetition Algorithm Works

Second, let's now delve into how the spatial repetition algorithm works, how the different settings are related to it, and how you can tweak them to make the algorithm more tailored to your learning style. Keep in mind that the default settings are not arbitrary; they were carefully chosen because they represent what works best for most users. However, if you'd like to tailor the algorithm to better suit your needs, this section will explain the settings in detail and how to adjust them.

While entire books have been written about the spatial repetition algorithm, we'll keep it concise here. To get a deeper understanding of the technical aspects, I highly recommend watching the two videos below. Both were extensively referenced when we implemented the algorithm in Repcode. Although these videos discuss Anki, the algorithm used in Repcode is identical.

If you plan on using Repcode long term, and truly want to understand how the algorithm works and how to make it work best for you, I highly recommend watching the above two videos. For now, let's discuss the settings, how they relate to the algorithm, and how you can customize the settings to match your needs. But first, some key terms:

TermDefinition
IntervalThe interval represents how long the algorithm waits before showing a problem for review again, in days. Based on your feedback (via the buttons: Again, Hard, Good, Easy), the current interval, problem type, and other factors, the algorithm will calculate the next review interval.
Ease FactorThis percentage indicates how easy the algorithm believes a problem is for you to solve. The easier a problem has been in the past, the greater the Ease will be, and the longer the intervals between reviews will be. Initially, all problems start with the same ease factor, but it adjusts based on your performance.

Alright, so with that vocabulary out of the way, let us now talk about each of the settings in detail, what they do, along with examples so you can fully understand how they all work in relation to the spatial repetition algorithm. Again, to truly understand how everything works, please watch the above two videos in full.

SettingDefault ValueDescription
Learning steps10m, 1dThese apply to New/Learning problems. The first number (10m) represents how soon you'll see the problem again if you press Again. Every time you press Good, the problem advances to the next step (e.g., if the next step is 1d, you'll see it in 1 day).
Graduating interval3dAfter a problem has gone through all its learning steps and you press Good, it "graduates" from a Learning problem to a Review problem. The graduating interval determines when it will be shown to you again right after it becomes a Review problem.
Easy interval4dIf you press Easy during the learning steps, the problem skips all remaining steps and immediately graduates to a Review problem. The easy interval determines when it will next appear.
Relearning steps10mWhen you press Again on a Review problem, it changes to a Relearning problem. It must then go through the Relearning steps before it can become a Review problem again. These steps function similarly to Learning steps.
New interval0.75A percentage (less than 100%) that will be applied to the ease factor of Relearning problems once they graduate and become Review problems again. It ensures that even though a problem is back in Review, it's reviewed more frequently to reinforce your knowledge.
Maximum interval180 (in days)This is the maximum number of days a Review problem can go without being shown again. It prevents overly long gaps between reviews.
Starting ease2.5This is the starting ease factor for newly created problems. A higher number results in longer intervals, while a lower number shortens the intervals.
Easy bonus1.3When you press Easy on a problem, this multiplier is applied to the interval, increasing it significantly more than it would have if you pressed Good.
Interval modifier1.00An extra multiplier that is applied to all review problems. At its default of 1.00 it does nothing. If you set it to 0.80, for example, intervals will be generated at 80% of their normal size (so a 10 day interval would become 8 days). You can thus use the multiplier to make your reviews less or more frequent. In other words, make the algorithm more or less aggressive.
OpenAI keynullEnter your OpenAI API key here to be able to use the AI Feedback feature. This setting is unrelated to the spatial repetition algorithm but is required for enabling AI-generated feedback.

🔑Key Takeaways:

  • The algorithm: Watch the above videos to fully understand how it works
  • Customizable: You can customize the algorithm by changing various settings

Part 3: AI Feedback

The final key feature of Repcode is its AI-powered feedback system. For every problem, you'll find an "AI Feedback" button that opens a chat window where the AI analyzes your solution. In a few sentences, the AI will determine if your solution is correct, and if not, it will highlight specific areas of your code that are flawed and explain why.

collections image

An example of the AI giving feedback on a classic Leetcode problem

Before generating feedback, the AI is provided with the problem statement and the optimal solution for context. It compares your solution to the optimal one and offers detailed feedback, including a comparison of runtimes between the two solutions. Additionally, the AI provides a brief explanation of the optimal approach to solving the problem.

At present, the AI feedback is designed to be one-way: the AI provides feedback, but users cannot respond or ask for further clarification. This allows for quick feedback without needing to test your solution against multiple cases on Leetcode. In Study Mode, this feature becomes particularly useful as the AI can quickly and accurately validate your solution. In future updates, the feedback system will expand to allow for follow-up questions and more interactive feedback sessions.

To use the AI feedback feature, ensure that you have entered a valid OpenAI API key on the Settings page. For security reasons, once you input your API key, it will be hidden from view in the input field but will remain active.


🔑Key Takeaways:

  • AI Feedback: Provides instant, automated feedback on your solutions
  • Quick Validation: Useful for reviewing your solutions quickly, especially in Study Mode
  • API Key Required: Ensure a valid OpenAI API key is entered in the Settings page