Oualid Gharach

Senior Solutions Architect · Java Technical Lead

Building systems
that don't break
at scale.

20+ years building enterprise payment and integration platforms across Africa and Europe. This portfolio is what happened when I decided to rebuild my payments domain from scratch using modern Java: architecture-first, AI-assisted, fully self-hosted.

Java 21 Spring Boot 3 Payments & Integration Distributed Systems

The portfolio behind the portfolio

01

Get back hands-on

After years leading architecture at MultiChoice and Nedbank, I wanted to verify something: could I still build the systems I was designing? Not prototype-quality. Production-grade, with tests, observability, CI/CD, and the patterns that make things reliable at scale.

02

Rebuild my payments domain

I'd led payment platforms across mobile money, card acquiring, and merchant integrations. I rebuilt the core pieces from scratch using modern Java: a billing foundation first, then an M-Pesa event-driven gateway, then a reusable payment gateway. Each project feeds the next.

03

Test design-first AI development

I used the M-Pesa integration as a controlled experiment: write the full architecture document before touching code, then use AI tooling against that spec. The design document served two audiences: the human reviewer and the AI coder. It worked. 3 weeks of AI-assisted development delivered exactly what the spec required. Code review remained the critical skill throughout.

04

The honest finding

Without strong architectural judgment and code review skills, AI-generated code drifts. The specification, the review discipline, and the iterative correction. That's where the 20 years shows.

05

Get certified

The home lab proves the concepts. AWS Solutions Architect maps them to cloud-scale infrastructure in a language enterprise hiring managers recognise. SAA-C03 is next.

06

Harden the infrastructure

No load balancer. No database replica. No failover. That is honest: it is a portfolio home lab today. The next phase adds PostgreSQL primary/replica, Nginx upstream load balancing, and proper HA. The concepts page needs the infrastructure to back it up.

Live projects

Production-grade fintech systems, designed architecture-first and deployed on a self-hosted home lab.

Live

Lipa na M-Pesa Integration

Safaricom pushes two callbacks: validate before funds move, confirm once they're gone. No retry on that second call. Built a dedicated gateway to absorb that contract, with RabbitMQ, Outbox Pattern, and a stateless Provisioning Service. 2.8M events. Zero failures.

Java 21Spring Boot 3.5RabbitMQMongoDBOutbox PatternResilience4j
In design

Payment Gateway

A reusable merchant-facing hosted checkout platform. Provider-agnostic by design: the M-Pesa integration and the Utility Account System are its first clients. Redis session storage, async webhook callbacks, multi-tenant routing.

KafkaRedisHosted CheckoutMulti-tenant

What I build with

Production choices, not buzzwords.

Backend

Java 21 Spring Boot 3 Spring Security Liquibase MapStruct Resilience4j Testcontainers Docker

Data & Messaging

PostgreSQL Redis RabbitMQ Kafka MongoDB

DevOps & Infra

Docker Compose GitHub Actions Nginx Cloudflare Tunnel Grafana Prometheus Loki

Architecture

Microservices TOGAF 9 Outbox Pattern Event-driven

Let's talk

Open to Senior Solutions Architect and Engineering Lead roles in Johannesburg and remotely.

LinkedIn

linkedin.com/in/oualidg

GitHub

github.com/oualidg

Email

oualid.gharach@gmail.com