/ 01 selected work · 2018 – 2026

Six projects, all real, all live.

Hover to preview

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.

/ 02 brief notes

What each one actually was.

01.

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.

Next.js 16PrismaMongoDBBetter Auth
02.

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.

React 19TanStackSocket.IOPWA
03.

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.

Vue 3TypeScriptTailwind 4Vitest
04.

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.

Vue.jsJava SpringMySQL
05.

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.

Vue.jsJava SpringMySQL
06.

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.

/ next up

Got a project? Tell me about it.

Get in touch