Over 120 million people speak Amharic, yet there's virtually no AI educational content in the language. When I realized this gap while watching my younger siblings struggle with online learning during COVID, I knew I had to build something.
That's how Ivy was born – an AI tutor that speaks Amharic and helps Ethiopian students learn through natural conversation. Building it as a solo developer taught me lessons I never expected.
The Voice AI Challenge Nobody Talks About
Most developers think voice AI is just "add speech-to-text and text-to-speech APIs." Wrong. The real challenge is handling the conversational flow when dealing with languages that have limited training data.
Amharic has complex grammar with over 200 verb conjugations. When a student says "ይህን አልገባኝም" (I don't understand this), the AI needs to:
- Recognize the specific confusion marker
- Identify what "this" refers to in context
- Adjust its teaching approach accordingly
Here's how I handled context preservation:
class ConversationMemory {
constructor() {
this.context = {
currentTopic: null,
studentConfusion: [],
learningStyle: 'adaptive'
};
}
updateContext(userInput, aiResponse) {
// Track confusion patterns
if (this.detectConfusion(userInput)) {
this.context.studentConfusion.push({
topic: this.context.currentTopic,
timestamp: Date.now(),
userPhrase: userInput
});
}
}
}
The Offline-First Decision That Changed Everything
Initially, I planned Ivy as a cloud-only service. Then I remembered: most Ethiopian students don't have reliable internet. This constraint forced me to rethink the entire architecture.
I ended up building a hybrid system where the core AI models run locally using TensorFlow.js, with cloud sync when available. This decision tripled my development time but made Ivy accessible to students in rural areas.
The breakthrough came when I realized I could use service workers for more than just caching:
// Service worker handles AI inference offline
self.addEventListener('message', async (event) => {
if (event.data.type === 'AI_QUERY') {
const response = await processWithLocalModel(event.data.query);
event.ports[0].postMessage(response);
}
});
Cultural Context is Code
Building for Ethiopian students meant encoding cultural context into the AI's responses. When teaching math, Ivy uses examples like calculating injera ingredients or coffee ceremony timing – concepts that resonate locally.
This taught me that AI isn't just about algorithms; it's about cultural representation in code. I spent weeks interviewing teachers and students to understand how they naturally explain concepts in Amharic.
The Loneliness of Solo Development
The hardest part wasn't the technical challenges – it was the isolation. Debugging voice recognition at 2 AM with no one to bounce ideas off was brutal. I learned to embrace async communication with online communities and scheduled regular video calls with other developers, even if they weren't working on similar projects.
What's Next
Ivy is now a finalist in the AWS AIdeas 2025 competition, competing globally against incredible innovations. The community voting phase is live, and honestly, it would mean the world to have support from fellow developers who understand the journey.
You can check out Ivy and cast your vote here: https://builder.aws.com/content/3CQJ9SY2gNvSZKWd3tEq8ny7kSr/aideas-finalist-ivy-the-worlds-first-offline-capable-proactive-ai-tutoring-agent
Building Ivy taught me that the most impactful projects often come from solving problems in your own backyard. Sometimes the best innovation happens when you build for the community you know best.
If this resonates with you, I'd be incredibly grateful for your vote in the AWS AIdeas competition. Every vote helps bring AI education to more Ethiopian students.
Top comments (0)