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,
localStoragepersistence, 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
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.