Haitham AssoliRead this in Arabicاقرأ هذه الصفحة بالإنجليزية
Back to the sheet

Web2026

DevCards

Spaced-repetition flashcards for engineering interviews.

Hundreds of multiple-choice questions across thirteen topics, each with a full explanation, scheduled by a Leitner system so the cards you get wrong keep coming back until they stick. Entirely frontend: no backend, no account, no network calls.

Production
DevCards
Role
Solo: content and app
Year
2026
Status
Live
Format
Web
Built with
Next.jsTypeScriptTailwind CSSlocalStorageLeitner scheduling
Where to find it
DevCards — Spaced-repetition flashcards for engineering interviews.بطاقات المقابلات — بطاقات مراجعة متباعدة للتحضير لمقابلات الهندسة.

Treatment

Interview prep material is either a list of questions with one-line answers you forget immediately, or a course you never finish. Neither does the thing that actually works, which is being asked the question again a few days after getting it wrong.

مواد التحضير للمقابلات إما قائمة أسئلة بإجابات من سطر تُنسى فورًا، وإما دورة لا تُنهيها أبدًا. ولا يفعل أيٌّ منهما ما ينفع فعلًا: أن يُطرح عليك السؤال ثانيةً بعد أيام من خطئك فيه.

DevCards covers thirteen areas at three difficulty levels: software engineering, frontend, backend, system design, microservices, caching, databases, security, React, PHP, Laravel, Next.js and Node.js. Every card is multiple choice and graded instantly, with a short answer and a deeper 'behind the scenes' explanation.

تغطي DevCards ثلاثة عشر مجالًا بثلاثة مستويات صعوبة: هندسة البرمجيات، والواجهات الأمامية والخلفية، وتصميم الأنظمة، والخدمات المصغّرة، والتخزين المؤقت، وقواعد البيانات، والأمان، وReact وPHP وLaravel وNext.js وNode.js. كل بطاقة متعددة الخيارات وتُصحَّح فورًا، مع إجابة قصيرة وشرح أعمق لما يجري خلف الكواليس.

There is no backend at all. Progress lives in the browser, which means it opens instantly and costs nothing to run.

لا خادم إطلاقًا. يبقى التقدّم في المتصفح، فيُفتح فورًا وبلا كلفة تشغيل.

Challenges

  1. Getting it right once is not learning it

    The problem

    A plain quiz shuffles and moves on, so a question you guessed correctly and a question you actually know are treated identically, and the ones you got wrong are the ones you never see again.

    What I did

    A Leitner system with self-rating. A missed card drops to box zero and returns almost immediately, both later in the same session and in future ones, while cards you know climb to longer intervals.

  2. No backend means no account to restore from

    The problem

    Keeping everything client-side is what makes the app free and instant, but it also means progress is tied to one browser and can be cleared without warning.

    What I did

    I took the trade deliberately rather than adding accounts for a study tool. Storage reads and writes are defensive so a cleared or blocked store degrades to a fresh session instead of a crash.

Results

  • Thirteen categories, hundreds of graded questions with explanations.ثلاثة عشر تصنيفًا، ومئات الأسئلة المُصحَّحة مع شروح.
  • Leitner scheduling plus in-session re-queueing of missed cards.جدولة لايتنر مع إعادة إدراج البطاقات المُخطأة داخل الجلسة.
  • Fully offline-capable; keyboard-driven throughout.قادر على العمل دون اتصال بالكامل، ويُدار بالكامل من لوحة المفاتيح.
Next design — PlayroomSee all 14