GradeLocal is an AI feedback assistant I designed and built, demonstrated here with synthetic student data. It drafts personalized feedback emails and retake review sheets from student work. Two design requirements shaped it: every model runs on hardware the teacher owns, so student data never reaches a cloud AI, and the teacher approves every word before a student sees it.
One-minute demo with synthetic data: a made-up worksheet, answer key and quiz. Every model call runs on hardware I own.
Specific, encouraging written feedback helps students most, and it takes teachers the most time. Cloud AI tools would make it faster, but sending student work to a third-party server conflicts with student-data privacy policy. Districts have the same concern: they want the time savings, and they also need a clear answer about where student data goes. Designed for: the teacher, who reviews and approves; students, who read the feedback; and parents, who may read it with them.
| Decision | Tradeoff accepted | Why |
|---|---|---|
| Every model runs on local hardware; no cloud API sees student work | Smaller, slower models | It answers the privacy question completely, not with a policy promise |
| The teacher approves every email and sheet before a student sees it | It's never "fully automatic" | Approval is both the compliance mechanism and the quality bar |
| Math is checked symbolically; a failed step is dropped, never "repaired" | Some questions get no worked solution | A wrong worked solution does more harm than an empty box |
| When the model can't verify an answer, it's marked "unverified" or left for the teacher | More manual work on hard cases | The tool is honest about what it doesn't know |
| Problem | Fix |
|---|---|
| A retake score alone doesn't show what was missed | Built review sheets: quiz screenshots in, a "how to solve it" sheet out, which the teacher edits and approves |
| The model confidently "solved" a graph question it had misread | Questions with a figure go to the teacher; the model's own guesses are labeled "unverified" |
| One quiz layout made the questions unreadable | The reader uses row colors; the quiz's own answer line cross-checks but never sets the answer |
| Explaining a "mistake" on a question left blank doesn't help | Blank questions are taught from scratch instead |
| Model-written math showed up as raw LaTeX in emails | Math is written as plain text |
Next: ship practice problems only with machine-checked answers. Built solo: 117 commits since April 2026, 143 automated tests. It runs on HKOS, a self-hosted AI stack I built, which I'm glad to walk through in an interview.