AI grades your real PRs. Lessons adapt to what you fumbled.

For working developers getting confident on a new stack in about six weeks, from your own actual code, not another video course.

handlers/worker.go
12 func processJobs(jobs []Job) {
13 - go func() { handleJob(jobs[i]) }()
13 + wg.Add(1); go func(j Job) {
14 + defer wg.Done(); handleJob(j)
15 }(jobs[i])
HackQuest AI
Loop variable capture: the goroutine closes over i not its value. By the time the goroutine runs, i may have advanced. Pass jobs[i] as a function argument to capture the value.
Next: Goroutine variable capture patterns
80+ developers trained
15 stacks supported
6 weeks avg to confident PR output
<2 hrs AI grading turnaround
How it works

From PR to lesson in three steps

No fixed syllabus. Your mistakes drive your curriculum.

01

Submit a real PR

Push your code to a practice branch and open a pull request. Use your own project or a HackQuest starter repo for your target stack.

02

AI reads every diff line

The AI reads each changed line and maps errors to the concepts behind them, distinguishing a syntax mistake from a conceptual gap in async patterns or error handling idioms.

03

Your next lesson targets the gap

A lesson is queued that addresses exactly what you fumbled. Not the next item in a fixed syllabus. The curriculum adapts with every PR you submit.

Grading that reads your code, not a rubric

Most tools catch linting errors. HackQuest identifies the conceptual gap underneath the error and links it to a learning objective you have not covered yet.

  • Error type identification in context, not just pattern matching
  • Root concept mapping to your stack's idiomatic patterns
  • Learning gap scored against your running concept map
  • Feedback delivered inline on the diff, not in a separate report
internal/cache/store.go
41 func (c *Cache) Set(key string, val any) {
42 - c.data[key] = val
42 + c.mu.Lock()
43 + defer c.mu.Unlock()
44 + c.data[key] = val
HackQuest AI
Data race
Concurrent writes to an unprotected map cause a data race. The fix adds a mutex, but consider using sync.RWMutex so reads can proceed in parallel.
HackQuest AI
Concept gap
Mutex vs RWMutex trade-offs not yet covered in your path. Queuing lesson: Concurrent map access patterns in Go.
Next lesson queued: Go sync primitives
80+
developers trained since 2024
15
tech stacks with full adaptive grading
6 weeks
average time to confident production code

"I switched from Python to Go in five weeks. The difference with HackQuest was that every lesson came directly out of a real PR I had just written. The feedback was specific in a way that no tutorial had ever been."

Ravi M. Senior Engineer, logistics platform

"I have tried video courses for TypeScript twice before. I kept learning syntax and then freezing on actual code reviews. HackQuest flipped that: the code review is the lesson."

Sarah C. Mid-level Developer, growing SaaS company
Pricing

Start free, scale when it works

No credit card required to start.

Starter
$0 / month
  • 3 PR reviews per month
  • 1 tech stack
  • Standard feedback turnaround
Start free
Most popular
Pro
$29 / month
  • Unlimited PR reviews
  • All 15+ stacks
  • Under 2-hour feedback turnaround
Get Pro
Team
$19 / seat / month
  • Everything in Pro
  • Team analytics dashboard
  • Slack integration, 5-seat minimum
Contact us

Start grading your real code today.

Free tier, no credit card, no fixed syllabus.