A lab, not a lecture hall

Compilea spark of curiosityinto shipped systems

Learn to code by shipping real projects - with or without AI. Choose hands-on, follow-along, or AI-assisted mode at every step, from your first line of code to production-shaped frontend, backend, and AI systems. Start free. No card required.

53
Workshops
7
Guided paths
100%
Runnable code
3
Free starters
AI-assisted buildinteractive
Course-authored prompt

Add rate limiting to the login endpoint. Preserve the existing authentication contract and tests.

Clear scope, target files, and acceptance criteria.Copy prompt
// One step, three ways

Struggle, follow, or direct an AI.
Every path lands on the same code.

Each code scene authors three parallel routes to the same result - so you set the depth. Grind it out for recall, type along for a demo, or write a prompt and audit the AI's output. One verify command checks all three.

All paths converge → one verify
$ node -e "require('./auth/passwords')" && echo OK

A wrong answer on any path fails the same import - fail-loud, no branching logic.

auth/passwords.jsHANDS-ON

Your task - build it from the spec

Create auth/passwords.js: • Import bcrypt from bcryptjs • Export hashPassword(password) - hash with 12 salt rounds, return the hash • Export verifyPassword(password, hash) - compare, return a boolean • Both functions must be async

Hint 1Conceptual nudge
bcryptjs gives you bcrypt.hash(password, saltRounds) and bcrypt.compare(password, hash) - both return Promises.
Hint 2Partial snippet
const bcrypt = require('bcryptjs'); async function hashPassword(password) { return bcrypt.hash(password, 12); }
Hint 3Near-complete logic
bcrypt.compare returns a boolean Promise - true if the password matches the hash. Return its result directly from verifyPassword and remember module.exports.
// A guided progression

See how one skill unlocks the next.

Choose any active pathway, then select a milestone to see what you will build there and what it prepares you to learn next.

View complete path →
AI Engineer13 courses5 of 13 milestones shown

No experience required: six shared Python Foundations courses are included before you build and deploy production AI agent systems. If you completed Python Foundations already, that progress carries over automatically.

  1. 01
  2. 04
  3. 07
  4. 10
  5. 13

At this milestone

Get your environment running and ship your first AI-powered app.

Unlocks next

Programming Foundations: How Code Actually Runs

Open course
// Paths

Pick a mission. We built the path.

Guided sequences across AI, foundations, backend, frontend, cybersecurity, interview preparation, and production delivery - each one ends in something real.

// The loop

Read less. Build more.

01

Read a concept

Short, visual explanations - no hour-long videos to scrub.

02

Choose your path

Every code step offers three routes - struggle solo, follow along, or direct an AI. Switch mid-step; they all land on the same code.

03

Build a project

Each track ends in a real artifact - an API, a game, a deployed agent.

04

Ship & advance

Unlock the next node in your track and keep the momentum.

// Founder

Built by someone who ships AI systems.

Paul Consalvo is an AI Engineer and Tech Lead who has led agentic platforms, evaluation systems, and production AI delivery for enterprise teams across the United States, Europe, Dubai, and Latin America. He created Lumina Labs to combine depth, speed, and AI without asking learners to sacrifice one for the others.

AI Engineer & Tech LeadM.Sc. in Artificial Intelligence

Your first build is free.

Three starter workshops are free forever - including Programming Foundations and Dev & AI Setup. No card required.