← All projects
Personal Project

NumPy Dojo

2024 – Present

An interactive, browser-based NumPy learning platform — no Python install required.

1 / 10

Overview

NumPy Dojo is a browser-based NumPy learning platform I spec'd and shipped with AI-assisted implementation. Most tutorials require a local Python environment; this runs a custom in-browser engine so anyone can open the site and practice immediately. I directed the build — lesson scope, UX, and architecture — rather than hand-writing every line of the engine myself.

The Problem

Learning NumPy typically means setting up Python, installing packages, and configuring a local environment before writing a single line of code. That setup friction is a real barrier — especially for people who are new to Python or just want to explore. Existing browser-based options (like Google Colab) are overkill for focused NumPy practice.

What I Built

  • In-browser NumPy engine

    Problem
    Learning NumPy required installing Python and packages first.
    Fix
    AI-assisted build of a client-side engine targeting a curated np.* subset for lessons — intended to reject unimplemented ops clearly. I directed the architecture; I haven't audited every op boundary myself.
    Result
    Anyone could run NumPy-style syntax in the browser without a local install.
  • Progressive lessons

    Problem
    Tutorials jumped around without a path from arrays to linear algebra.
    Fix
    22 progressive lessons with a built-in editor and automated output validation.
    Result
    Learners could practice and get checked without leaving the page.
  • Real-world scenarios

    Problem
    Lessons showed syntax but not when or why to use NumPy.
    Fix
    12 scenarios across data analysis, finance, image processing, and engineering.
    Result
    Practice was tied to actual use, not just API trivia.
  • Quiz system

    Problem
    There was no way to test retention beyond running lesson code.
    Fix
    Configurable quizzes (10–25 questions), mixed formats, retries, and history.
    Result
    Learners could measure themselves and see past attempts.
  • Progress tracking

    Problem
    Refreshing the browser meant losing code and any sense of completion.
    Fix
    Completion meter, localStorage persistence, shortcuts, and adjustable editor font.
    Result
    Progress and code survived sessions without an account.
  • PostHog analytics

    Problem
    No product or error signal from real learner usage.
    Fix
    PostHog on client and server for tracking and error monitoring.
    Result
    Usage and failures were visible after launch.
  • CI/CD

    Problem
    Deploys and checks needed to be automatic for a solo project.
    Fix
    GitHub Actions CI/CD deployed to Vercel with zero config.
    Result
    Main stayed shippable without a manual release ritual.

Tech Stack

Next.js 16React 19TypeScriptCustom JS NumPy EnginePostHogVitest

Outcome / Impact

Live and open-sourced for my AI bootcamp learning and other learners. No public usage metric claimed. Custom in-browser engine vs heavier options like Pyodide was the intended tradeoff (faster load, lesson-scoped control) — I directed that decision but didn't implement the engine solo.