All projects

goGerami

Lead Full-Stack DeveloperNov 2025 – Present

Multi-vendor gift marketplace connecting the Ethiopian diaspora to local vendors — browse gifts, events and services, check out in USD or ETB, and track delivery.

  • Java 21
  • Spring Boot
  • React
  • TypeScript
  • PostgreSQL
  • Stripe
  • Chapa
  • Prometheus

Overview

goGerami (formerly Zembil) is a marketplace for the Ethiopian diaspora to send meaningful gifts, book event tickets and support local vendors back home. I lead development across the stack — a Spring Boot 3 / Java 21 API, a React + TypeScript client and a Liquibase-managed PostgreSQL schema — covering product discovery, multi-currency checkout, vendor onboarding and payouts, event ticketing, custom orders, delivery and an admin back office.

Results

560+
REST endpoints
80+
Database tables
USD + ETB
Multi-currency pricing
10
Alert rules → Slack

Challenge

Diaspora customers needed a reliable way to send gifts, book events and pay local vendors across currencies and payment rails, while vendors needed tools to manage products, events and payouts.

Solution

A Spring Boot API and React/TypeScript client covering catalog, cart, multi-currency checkout, vendor onboarding and payouts, event ticketing, custom orders, delivery assignment and an admin dashboard for platform operations.

Key technical decision

Checkout is split into two phases: an idempotent order API first creates a fully priced order, then a separate step initializes payment with Stripe (USD) or Chapa (ETB) and a confirmation flow built for provider webhooks completes it. A retried request or dropped connection can't create duplicate orders, and adding a payment rail doesn't touch order logic.

Highlights

  • Two-phase checkout: idempotent order APIs, then Stripe (USD) or Chapa / Telebirr (ETB) payment
  • Multi-currency pricing that creates and validates USD and ETB prices for every product and SKU
  • Liquibase-managed PostgreSQL schema (80+ tables) with rollback-tested migrations across local, Neon and Render
  • React + Vite client with Zustand, React Query and Radix UI for customers, vendors, admins and delivery staff
  • Prometheus and Alertmanager monitoring with 10 alert rules routed to Slack

Gallery