~//projects

Selected work_

A closer look at what I've built — an AI learning platform used by real students, an open-source agent-UI library with real npm adoption, and a biomedical hardware thesis. The honest version: what the problem was, what I built, and what it runs on.

prepx/README.md Shipped

PrepX

AI learning platform · Ethiopian high-school curriculum

An AI study app for Ethiopian high-school students — curriculum-grounded AI tutoring, hybrid retrieval over the full national curriculum, offline-first mobile UX, and live learning. Built and shipped with a 3-person team; I owned the full mobile app, the AI pipeline, and the content data model.

1,000+
installs · 250 MAU
5★
Play Store rating
~229K
curriculum questions indexed
# the problem

Students need affordable, curriculum-aligned help that works on the devices and connections they actually have. Generic AI chat isn't grounded in their textbooks, and unreliable connectivity makes always-online study tools impractical.

# what i built
  • The full React Native (Expo) app — study flows, AI chat UX, offline topic access, recent activity, notifications, and live competition features. Grew it to 1,000+ installs, 250 MAU, 5★ and launched subscription monetization.
  • A hybrid RAG pipeline for textbook-grounded tutoring — vector search (Qdrant) + full-text search (Typesense) — kept model-agnostic across Gemini, GPT, Claude, and open models via OpenRouter so answers stay anchored to real curriculum.
  • A self-referential curriculum graph spanning 4 grades, 6 subjects, and 12 years of national exams — ~229K questions, 13.5K quizzes, 5.75K worksheets, and 1.86K flashcard sets, with hierarchical chapters, topics, notes, and references.
  • Backend services with NestJS, FastAPI, and PostgreSQL — powering chat, retrieval, content workflows, notifications, and live competitions, with Agno and Mastra for agent orchestration.
react-native-ajora/README.md Open source

react-native-ajora — agent UI for React Native

AG-UI / CopilotKit patterns, brought to mobile

An open-source library billed as "the most complete AI agent UI for React Native." It ports AG-UI / CopilotKit-style agentic interfaces to mobile — the streaming, tool-oriented assistant UX that web has, rebuilt as native-feeling React Native. 6,100+ npm downloads, 19 GitHub stars.

6,100+
npm downloads
19★
GitHub stars
586
peak downloads / day
# the problem

Most agentic UI tooling is web-first. Mobile apps that want streaming AI, tool-oriented interactions, threads, and rich assistant UX have to reinvent those patterns by hand — there's no clean, native-feeling equivalent.

# what i built
  • An SSE-based streaming message UI for React Native — assistant messages, tool responses, sources, suggestions, thread titles, regeneration, errors, and completion events as first-class concepts.
  • Thread and message state handling for active conversations: pagination, regeneration, streaming state, and history.
  • Backend orchestration for threads, messages, title updates, regeneration, and agent streaming — with Gemini streaming and server-side tool-execution patterns.
  • Published and maintained on npm as a reusable library — adopted to 6,100+ downloads with a 586-download peak day.
ulcerguard/THESIS.md Thesis

UlcerGuard — diabetic foot-ulcer prevention footwear

Biomedical engineering thesis · hardware prototype

A pressure-sensing footwear prototype designed to help prevent diabetic foot ulcers by detecting high-pressure regions in diabetic patients' feet before they become wounds.

# the problem

Diabetic foot ulcers often start from sustained pressure that patients can't feel due to reduced sensation. Catching those high-pressure regions early is a preventative-health problem as much as a hardware one.

# what i built
  • Designed a pressure-sensing footwear prototype that detects high-pressure regions across the foot to flag ulcer risk early.
  • Combined biomedical problem analysis, embedded pressure sensors, hardware prototyping, and preventative health monitoring into a single working device.

// that's the work — let's talk about what's next