Selected work.
There's also a React Native insurance app, a full-stack CMS for Marbarak Trading, a zero-dependency form validation engine, and at least one Joomla migration I don't talk about.
ChiNet LinkTech — chinetlink.et
The company site and CMS, mine end to end — Next.js 16 App Router with React 19, about half the components rendered on the server. Prisma on MongoDB behind it, Better Auth sessions with role checks in middleware, and a Tiptap editor so staff publish without me.
ChiNet Logistics — app.chinetlink.et
Shippers, carriers, brokers, agents and admins in one platform, plus a freight marketplace — ~600 TypeScript files and 200+ routes. I wrote 384 of its ~550 commits. Socket.IO for live shipment tracking and chat, FCM push, Chapa checkout, Amharic/English, and an installable PWA.
ChiNet TMS — chinet-tms.et
A legacy Vuex/Bootstrap/Vuetify/PrimeVue transport system rebuilt on Vue 3 in two weeks, reusing the React platform's architecture. 236K lines down to 89K — 62% smaller — while growing from 441 to 560 components, and runtime dependencies halved from 36 to 18 by collapsing three UI libraries into one Tailwind layer.
FETAP — niscofetap.com
Foreign Employment Term Assurance Platform for Nyala Insurance — the thing Ethiopian workers abroad use when they need insurance that follows them. Generated PDF policy documents took the manual processing errors out of it. Stakes: fairly high.
Kenema — rx.kenemapharmacy.com
A 500+ component pharmacy system for getting medicines in Addis Ababa, because sometimes you don't want to walk across town to find out a branch is out of stock. Google Maps branch locations, PDF and Excel reporting, Ethiopian calendar dates, idle-session logout.
Modal-X — npm · @customizer/modal-X
File-based modal management for React and Vue, 4,400+ downloads in the last 18 months. A Vite plugin scans .mdl.vue and .mdl.tsx files and generates a typed registry, so modals open by name through a Promise-based API. Used across eight Medco products and ChiNet's apps — and yes, there's a VS Code extension too.