Skip to content

Free and open source

Learn software design in order. Plan it around your week.

257 topics from Java basics to system design, with 32 React machine coding problems, plus a study plan and a daily planner that fit them into the time you have.

  • 8 stages
  • 1304 source files
  • 114 diagrams
  • 17 themes
Daily planner board for this week, with today's tasks split into To do, In progress and Completed columns, each tagged with a priority, next to the grouped sidebar and topic list.

What you get

Learn it, plan it, keep it.

The handbook, the planners and the practice tools all work from one record of your progress.

  • New · Study plans

    A study plan that fits your week

    Pick the stages you need and how much time you have each day. The plan splits them into sprints and daily topics, tracks the time you spend, keeps a streak, and forecasts when you will finish. It pauses itself if you go quiet, and you can take a break in one tap. Free account required.

    Plan your prep
    Study plan page for a backend interview prep plan, showing overall progress, time spent, today's topics with three marked done, a focus timer, and the sidebar with the plan's sprints.
  • New · Daily planner

    A daily planner for everything else

    Tasks by day across the week, with priorities, estimates, repeats and a quick add that reads a line like Revise CAP @tomorrow !high 30m. Missed tasks roll forward, and the study-plan topics and revisions due that day sit alongside. Free account required.

    Open the planner
    Daily planner board for this week, with today's tasks split into To do, In progress and Completed columns, each tagged with a priority, next to the grouped sidebar and topic list.
  • Handbook

    Notes, diagrams and code you can run

    Every topic explains the idea, draws it, and ships code that runs: Java projects, SQL you can try in the browser, and React apps.

  • Practice

    Interview mode and drills

    Interview mode highlights the questions you are likely to be asked. Drill them one at a time: answer, reveal, rate yourself.

    Start a drill
  • Revision

    Reading it once is not knowing it

    Finished topics come back on a widening schedule. Still shaky? It drops back to the start.

    1. Finishday 0
    2. Review 1+1 day
    3. Review 2+3 days
    4. Review 3+7 days
    5. Review 4+21 days
    6. Review 5+60 days
  • Sync

    Two devices, no lost edits

    Notes, bookmarks and confidence ratings merge field by field, and the newer change wins. Edits made offline queue up and send when you reconnect. Your color theme and fonts follow you too.

  • Mock interviews

    Run the whole interview, not just the answers

    54 system design problems in five timed phases on a whiteboard. Score each phase against a reference answer and watch your scores over time. Free account required to run one.

    Browse the problems
  • Whiteboard

    Sketch a design before you code it

    A canvas with architecture stencils for load balancers, caches, queues and databases. Export to PNG, SVG or .excalidraw.

    Open the whiteboard
  • New · Run the code

    Read the code, then run it

    Explorer, tabs, quick open and a status bar, plus a Run button: React apps open in a live preview beside the code, and the Java designs and patterns compile and run in your browser with nothing to install. Turn on Edit to change the code first.

    Open the code
    The code editor in full page mode with a React problem open: the file explorer on the left, a tab and breadcrumbs above the JSX source, a minimap, and the status bar with the line count, language and editor settings.
  • New · React machine coding

    Frontend rounds, solved and explained

    32 problems from a toast and a modal up to a Trello board and a real-time chat. Each one starts with the problem statement, explains the solution, and runs right here in a live preview.

    Browse the problems
  • New · SQL

    Run the SQL, then check it

    Every SQL practice problem has a Try it box. Your query runs on the problem's own tables in the browser, and Check answer tells you what is off.

    Try a problem
  • New · Dashboard

    A dashboard that greets you

    It opens with a greeting by name, one list for the day's plan topics and tasks, and your headline numbers. Below sit your week day by day, a topic of the day and the track you are closest to finishing. The year heatmap and readiness live in Insights.

    Open the dashboard
    The dashboard greeting the reader with Good evening, Alex: three reviews due and a 17-day streak, stats for the streak, this week's activity, topics done and reviews due, a Continue where you left off card, and below it This week bars, a topic of the day and the next milestone.
  • New · Insights

    See where you stand

    Streaks, weekly activity, practice scores and the revision ladder, built from what you already do. Weak tags come first, with what is holding each one back.

    Open Insights
  • New · Compare

    See exactly what the refactor changed

    Patterns and SOLID topics with before and after code open in a side by side diff, file by file, with unchanged lines folded away. Press ⌥D in the editor.

    Find a project
  • New · Reading

    Read it your way

    Set the text size, line width and line spacing of every note. Hover a linked topic to see what it covers and whether you have read it. On a phone, the main actions follow you down the page.

  • New · Progress

    Finish one, start the next

    Complete a topic and open the next in one press, or step along the path with J and K. Already know a track? Mark it all done at once, with undo.

    Browse the topics
  • New · Goals

    A goal for the day or the week

    Pick a number of topics or minutes of reading and watch the ring fill. The revision queue shows how many reviews land on each of the next fourteen days.

    Set a goal
  • New · Learning map

    The whole path on one page

    Every topic in all eight stages, coloured by whether you have read it or have it due. Point at one to see what it builds on, and each note tells you what to read first.

    Open the map
    The learning map: a Continue where you left off card, a legend for not started, in progress, done, due for review and next up, and the first two stages with every topic as a dot, coloured green for done and amber for due, under Java & OOP Basics, SQL and SOLID Principles.
  • New · Practice

    Every card on its own schedule

    Rate each question Missed, Partly, Got it or Easy. The FSRS scheduler brings it back just before you would forget, at the recall target you pick, and Insights lists the cards you miss most.

    Practise what is due
  • New · Story bank

    Stories ready for behavioural rounds

    Write your stories as Situation, Task, Action and Result, see which common questions still have no story, and tell them out loud against a timer.

    Open the story bank
  • New · SQL

    A SQL sandbox to try anything

    Query a small shop database in the browser, browse its tables, save the queries you like and reset it whenever you want a clean start.

    Open the sandbox
  • New · Reading

    Listen, share and see what is left

    Press L and the browser reads the note aloud. Share a link to any passage you select, and watch the minutes left as you read.

  • New · Lists

    Lists for every goal

    Group topics into lists such as Amazon loop or Weak areas, and save any topic to one straight from its page.

    Open bookmarks
  • New · Review

    One review for the whole day

    Due cards, topics to recall, one story out loud and today's plan and planner tasks, in one pass with one progress bar. Turn off any step you want to skip.

    Start today's review
  • New · Notes

    Write beside what you read

    Press N on any topic and your note and highlights open in a panel next to the text. Type [[ to link another topic, and each topic lists the notes that link to it.

  • New · Insights

    Share how far you have come

    Get a read-only link to a card with your topics done, streak and progress per track, or download it as an image. Stop sharing and the link stops working.

    Open Insights
  • New · Mock interview

    A friend plays the interviewer

    Send a link and your partner follows your clock, reads the reference answer and scores you on their own screen. No account needed on their side.

    Start a mock interview
  • New · Practice

    Hear how you sound

    Record each interview phase or a story out loud, then play it back. Stories show how long each STAR part took against a suggested split. Recordings never leave your browser.

    Open the story bank
  • New · Whiteboard

    Draw a design from memory

    The reference stays hidden while you draw. Then check your board to see which parts you got and which ones to study.

    Try it
  • New · Practice

    Back of the envelope, on demand

    Fresh storage, traffic, bandwidth and server problems every round, graded by how close you got, with the working shown and a cheat sheet of numbers worth knowing.

    Start a round
  • New · Notes

    Turn a sentence into a card

    Select a few words and press Fill in. The sentence becomes a practice card with those words blanked out.

    Try it on SRP
  • New · Sidebar

    A sidebar that stays out of the way

    Pin the tracks you are studying and only they show under Topics, each opening to its sections. Filter by To read, In progress, Due or Saved, and hide the pages you never use.

    Pin your tracks

How it works

Three steps, then repeat.

  1. 01

    Pick a plan

    Run the setup once. After that, the plan opens on today's tasks and what is up next.

  2. 02

    Study a little each day

    Open today's topic, read it through, try the code, and mark it complete.

  3. 03

    Revise and practice

    Work through what is due for review by answering its interview questions.

Themes

Make it yours.

17 color themes, each in light and dark. Pick one here and this page changes with it; the app opens in it too. Fonts for reading and for code are in Settings.

Color theme

How a topic reads

Bad code, then the fix, side by side.

Straight from the repo: SRP - The Single Responsibility Principle. The note explains why the first version breaks down, and the diagram shows the shape that replaces it.

Beforeone class, three reasons to change

Invoice.java
public class Invoice {    private double amount;    public Invoice(double amount) {        this.amount = amount;    }    // Additional Functionality    public void generateInvoice() {        System.out.println("Invoice generated & printed for amount " + amount);    }    // this should be different class    public void saveToDatabase() {        System.out.println("Saving invoice to database");    }    // this should be different class    public void sendEmailNotification() {        System.out.println("Sending email notification for invoice");    }}

Aftereach class has one job

Invoice.java
public class Invoice {    private double amount;    public Invoice(double amount) {        this.amount = amount;    }    // Additional Functionality    public void generateInvoice() {        System.out.println("Invoice generated & printed for amount " + amount);    }}
EmailService.java
public class EmailService {    public void sendEmailNotification() {        System.out.println("Sending email notification for invoice");    }}

The path

8 stages, one order.

Every stage assumes the one before it. Start at the top, or jump straight to the one you need.

Start now

No account needed to start.

Progress is saved in your browser from the first click. Create a free account when you want it on your other devices; what you have done so far comes with you.