A study app built around the Ethiopian Grade 9–12 curriculum.
Students read notes, practise questions, revise chapter Essentials,
and work through past entrance papers. AI tutors receive the current
note or question as context and retrieve material from the textbook
and exam corpora. Chapters can be downloaded for offline study.
2,600+
downloads
93,173+
questions answered
1,824
topics
October 5, 2026. Downloads are separate from registered students;
questions answered measure student activity.
Engineering work
Mobile: React Native and Expo, local SQLite
storage, content downloads, streamed AI chat, notifications, and
Socket.IO competition flows.
Backend: FastAPI, SQLAlchemy, and PostgreSQL for
the product API; NestJS and Mastra for AI orchestration and tools.
Retrieval: FastEmbed and Qdrant for semantic search
over textbooks and past exams; Typesense for content search.
Product systems: Free, Go, and Pro subscriptions,
referral rewards, leaderboards, student groups, and scheduled
challenges.
Personalized study agent
Built Magnus’s study counselor as a generative recommendation system.
It uses a student’s profile and study performance—subject accuracy,
weakest topics, and streaks—to help decide what to study next and
turn that advice into a concrete schedule.
Student profile and performance tools give the agent context for
recommendations based on the student’s progress.
Study-plan tools create, read, update, and reschedule sessions with
specific topics after the student confirms the plan.
Profile access and plan writes are feature-gated; the counselor can
also advise from the conversation when those tools are disabled.
Read papers, build notes, and develop writing with an AI research collaborator.
A desktop study and research environment that brings a PDF reader,
Markdown notes, a writing editor, and an agent panel into one
workspace. The agent works with the papers and notes at hand to
explain ideas, discover related work, and support background research.
Engineering work
Reading and writing: PDF text selection and
annotations alongside Tiptap editing, Markdown storage, and inline AI.
Research tools: Workspace and library search,
PDF passage retrieval, multi-paper comparison, related-paper
discovery, and citation metadata.
Agent collaboration: Streamed responses and tool
events, cancellable runs, and proposed note edits for review.
Study loop: Flashcards and spaced-repetition
scheduling, with local workspace persistence.
TypeScript · Electron · React · Tiptap · PDF.js · SQLite · Vercel AI SDK
Android AI keyboard
Poetic Keyboard
In development
Fix, rewrite, and polish replies directly from the keyboard.
A native Android input method with AI writing tools built into the
typing flow. It transforms the user’s draft while preserving its
meaning, with actions for grammar, tone, translation, and continuation.
Engineering work
Native keyboard: Android IME integration and
access to the current text field for in-place writing assistance.
Writing tools: Grammar correction, professional
and conversational rewrites, concise phrasing, translation, and
continuation in the user’s voice.
Streaming: Kotlin coroutine flows and OkHttp
server-sent events deliver incremental output from the AI backend.
Customization: Configurable toolbar actions and
prompt generation for user-defined transformations.
Amharic text-to-speech adaptation, from corpus preparation to
evaluation.
Current work uses a pretrained VITS checkpoint as a baseline. The
pipeline includes Amharic text normalization and romanization, audio
conditioning, dataset preparation, fine-tuning, synthesis, and
evaluation.
Implemented work
Text preprocessing for Ge’ez script, numeral expansion, and
homophone normalization, shared between training and inference.
Audio resampling, silence trimming, loudness normalization, and
quality checks before writing dataset manifests.
A PyTorch training path for the text encoder, flow, and duration
predictor, with monotonic alignment search. The posterior encoder
and waveform decoder remain frozen.
Evaluation code for spectral distortion, pitch, voicing, and
duration. Results depend on the reference speaker and are
interpreted alongside listening tests.
This is a TTS prototype. ASR and speech-to-speech are research
directions; they are not presented as completed systems. Freezing the
decoder limits voice adaptation.
Reusable AI chat components and agent interfaces for React Native.
The library adapts CopilotKit-style agent interfaces to mobile
applications. It provides AG-UI integration, streamed messages,
conversation state, tool-call rendering, and hooks for app context and
client-side tools. PrepX depends on the published package.
Chat components with keyboard handling, attachments, suggestions,
and customizable renderers.
Hooks for agent context, frontend tools, and human-in-the-loop
interactions.
Examples for Expo applications and backend integration.
A small implementation of neural-network fundamentals in Python.
A micrograd-style scalar autograd engine records a computation graph
and propagates gradients in reverse topological order. Neuron, layer,
and MLP classes use the engine; an SGD optimizer updates parameters.
Arithmetic operators and ReLU with accumulated gradients, including
reused operands and multiple paths through the graph.
Unit tests for forward operations, graph structure, and backward
propagation.
A byte-level BPE tokenizer with pair-frequency training, ordered
merge replay, encoding, and decoding.
An educational implementation, not a tensor framework or a replacement
for PyTorch.
Biomedical engineering thesis · Addis Ababa University · 2024
UlcerGuard
Prototype
Pressure-sensing footwear for identifying foot-ulcer risk.
A footwear prototype that detects high-pressure regions in the foot,
developed as a biomedical engineering thesis. The project combines
pressure sensing with a React Native companion application.
Developed as an undergraduate engineering prototype.