Writing
November 4, 2025 · 8 min read

From Tamil to German: Building Language Tools For Languages You Don't Speak

When your college friend's teaching workflow hell becomes your weekend project.

Two months ago, I built a Tamil learning assistant for Skanda’s Saturday morning lessons with his paatti (grandmother). Three hours, done, working, and published to AUR. At least with Tamil I can recognise the script - grew up around it, can tell if text renders properly.

Then, a good friend messages, a week later, seeing the Substack article. She’s teaching German in India. Her initial message:

“Students who are learning German, especially those with no prior experience in learning a foreign language, often struggle with reading comprehension... Teachers spend significant time selecting appropriate texts, designing pre-reading tasks, and creating exercises that build both comprehension and vocabulary.”

Then more context: Today’s German learners in India aren’t the elite, culturally-curious students from the 70s-90s. They’re aspiring nurses, engineers, and vocational trainees seeking opportunities in Germany. First-generation graduates. No foreign language background. Juggling jobs and studies. Learning from necessity, not curiosity.

Her problem? A convoluted workflow. Manual vocabulary tracking. Hunting German news sites for texts containing specific words for spaced repetition. Hours spent on logistics instead of teaching students who already struggle with learning strategies.

I don’t know German. Can’t read it, can’t speak it, can’t write it. But I’d just built 40% (or, as the President south of the border says, “who knows, it could be 100%, 200%, or even in some cases 800%” ) of what she needed.

The Homework Phase (Or: Why We Didn’t Just Start Coding)

First instinct as a PM who codes? Don’t build yet. Research first.

Week 1: Tool evaluation Analysed existing German teaching tools:

Pattern: Every tool did ONE thing well. None solved her complete workflow: vocabulary tracking + text discovery + exercise generation + spaced repetition.

Week 2: Requirements gathering. She sent a detailed requirements document. Covering:

This wasn’t “build me a thing.” This was “here’s exactly how I teach and what’s broken.”

Week 3: PRD creation, Created German_DaF_Teacher_Assistant_PRD scoping:

Phase 1 goal: End the manual tracking chaos. Everything else could wait.

Then we started building.

The Real Problem (That She Explained Over Two Weeks)

First, I thought: build vocabulary tracking, generate exercises, done.

Then she sent the actual example. Yesterday’s text was about Schuluniformen (school uniforms). Today’s revision exercise - four friends planning a vacation. But the blanks? All words from yesterday’s uniforms lesson: entscheiden, Regeln, vermeiden. Same vocabulary, completely different context, coherent story.

This is her workflow. Not flashcards. Not vocabulary lists. Contextual vocabulary recycling through authentic stories. Systematic spaced repetition embedded in reading comprehension.

And she’s doing it manually. Writing stories. Or hunting texts. Tracking everything in Excel - sometimes.

Building Blind (Armed With Research)

Important context: I still can’t verify anything myself. When she reports “the exercise is asking what vorschreiben means and the answer is vorschreiben,” I have no idea what’s wrong. Just that it’s wrong.

But I had the research. Her requirements doc. The tool evaluation. The PRD scope. Understanding of German pedagogy from documents (thank you, Claude/Gemini), even though I couldn’t read German text.

The iteration cycle:

Started with local storage (blessing in disguise - multiple teachers can use it, each browser isolated). Text upload works. AI analyses CEFR level, suggests vocabulary. Batch processing (learned via token limit failures). Exercise generation.

Week 1 bugs:

Every bug taught me something about German I don’t need to know. :-D

The Prompt Engineering That Actually Mattered

Generic AI prompt: “Generate exercises for German vocabulary”

Result: Garbage. Circular definitions. Random distractors. Incomplete sentences.

The fix wasn’t better models. It was encoding everything I learned during the research phase into AI instructions.

200+ line prompt built from:

The prompt encoded:

Every bug she found became a new rule in the prompt. The research phase gave me the framework. Her feedback taught me the edge cases.

Generic prompt: 0% usable exercises. Research-informed prompt: 70% usable exercises (she edits the other 30%)

Prompt engineering took longer than app architecture. But that’s the difference between AI garbage and something she can actually use.

What she’s going to evaluate (Over the days)

A working workflow:

1: Upload text → AI suggests 15 words → she picks 10 → categorizes → batch generates 30 exercises → reviews/edits → marks approved

2: Teaches the text with reviewed exercises

3: System reminds “3-day interval - review these 10 words” → she creates revision exercise (still manual - that’s Phase 2)

Next: 7-day reminder → she searches LATILL for texts with those words → or writes a new story

Manual tracking chaos: ended. Not because everything’s automated. Because the system tracks what she needs to track, reminds her when words need review, and generates exercises she can edit instead of starting from scratch.

She’s going to test (daily). Probably with her students.

The Technical Choices That Enabled This

Local storage over database: Each teacher is isolated, privacy by design, zero server costs. Drawback: Clearing the cache loses data. But perfect for MVP validation with parallel users.

Gemini Flash Lite 2.5: Sweet spot of cost vs quality. Separable verbs still win battles, but 70% usable beats 0%.

Prompt engineering over model selection: Spent more time on the 200-line prompt than on the architecture. Teaching AI about German pedagogy matters more than which model runs it.

WhatsApp collaboration over sprint planning: Bug reported → fixed within hours → pushed to GitHub → she refreshes browser → tests. Rapid iteration only works because N=1 user who’s patient and engaged.

What I Actually Built

A tool that ends one teacher’s manual tracking chaos while helping her create contextual vocabulary revision for aspiring nurses and vocational trainees in India learning German - first-generation graduates with no foreign language background, juggling jobs and studies, learning from necessity rather than curiosity.

Built without knowing German.

This works because of the collaboration. She’s not just the user - she’s the domain expert, QA tester, product manager, and German linguistics teacher I never had. Every bug report teaches me something. Every “thinking aloud” message reshapes understanding.

I don’t speak German. But I know enough to make AI generate exercises she can use. That’s enough.

What I Love About N=1 Building

Many projects this year:

In all: real person, real problem, real usage, real feedback, real iteration.

But different processes:

Neither: market analysis, stakeholder reviews, scale discussions.

The PM discipline mattered for German because I couldn’t wing it. No German = can’t verify = need to understand pedagogy first. The research phase taught me the domain. Requirements gave me the scope. PRD defined success. Then iterate with her feedback.

The joy is in the collaboration. Building at the speed of trust, but with homework done first.

Skanda uses Tamil Assistant without complaining. A friend was saved from a convoluted workflow for her teaching. Probably, students will be learning German with better exercises.

அஃதே எனக்கு வழியாம். (That is my path.)


The German DaF Teacher Assistant: GitHub (a private repo for now)

Status: MVP in active use. Phase 1 complete. Manual tracking chaos ended. Separable verbs are still challenging. Built without knowing German.

Key lesson: Building for domains you don’t understand? Do the homework first. Research existing tools. Gather detailed requirements. Scope the PRD. Learn the pedagogy from documents even if you can’t read the language. Then prompt engineering > model selection. Encode domain expertise into AI instructions. Iterate with domain experts who can verify what you can’t.

Made with ♥️ for teachers who message “Exciteddd :)” when you ship features, and for building tools through WhatsApp collaboration instead of product roadmaps.

← All writing Home