Skip to content

Badr Eddine Toubani

Software Engineer building scalable backend systems and modern full-stack applications.

Java and Spring Boot on the backend, Next.js and React on the front, with PostgreSQL, Kafka, RabbitMQ and AWS in between.

Years building software
3+
Primary language
Java
Portfolio projects
6
Certifications
3
02. Who I am

About

Portrait of Badr Eddine Toubani

Badr Eddine Toubani

Software Engineer · Java / Spring Boot · Full Stack

Bouznika, Morocco

I build backend systems and the interfaces that sit on top of them. Most of my work is Java and Spring Boot — REST APIs, business logic, Spring Security and JWT authentication — backed by PostgreSQL with Liquibase-managed migrations.

The parts I enjoy most are the asynchronous ones: outbox tables, message queues, consumers, retries and the state machines that keep them honest. At WADOUZ I built an email delivery pipeline on RabbitMQ with database-backed status tracking, and I explored the same ideas with Kafka in a library management system.

On the frontend I work with Next.js, React and TypeScript, mostly on admin and back-office interfaces where data density and workflow matter more than decoration. I ship through GitHub Actions and deploy on AWS and Docker.

Languages

Arabic
Native
French
Fluent
English
Professional proficiency

Education

  1. 2026

    Master's — Distributed Systems & AI

    ENSET Mohammedia

    • Distributed systems and software architecture
    • Advanced software engineering
    • Artificial intelligence
  2. 2024 – 2025

    B.Sc. — Software Engineering

    EST Fez

    • J2EE, Spring, web services, design patterns, DevOps
  3. 2022 – 2024

    Technician Diploma — Full Stack Development

    OFPPT

Certifications

  • Oracle Certified Professional — Java SE 17 Developer badge

    Oracle Certified Professional — Java SE 17 Developer

    Oracle · 2025 · 1Z0-829

  • Oracle Cloud Infrastructure — DevOps Professional

    Oracle · 2025

  • PCAP — Programming Essentials in Python

    Cisco Networking Academy · 2024

03. How I build

Engineering

Five things I keep coming back to, in roughly the order I reach for them.

  1. Backend Engineering

    Spring Boot services with a real domain layer, secured endpoints and a relational model that survives schema change.

    Spring BootRESTSpring SecurityPostgreSQLLiquibase
  2. Distributed Systems

    Outboxes, queues and consumers — moving slow or unreliable work off the request path and making its state observable.

    KafkaRabbitMQAsync processingEvent-driven
  3. Modern Frontend

    Next.js and React interfaces for dense, workflow-heavy screens: admin dashboards, tracking views and back-office tooling.

    Next.jsReactTypeScriptTailwind CSS
  4. DevOps

    Containerised builds and pipelines that run on every push, so deployment is routine rather than an event.

    DockerGitHub ActionsAWSCI/CD
  5. Architecture

    Clear boundaries between domain, application and infrastructure — chosen for the problem at hand, not applied by reflex.

    MicroservicesDDDClean Architecture
  6. AI & Agentic Systems

    Design and productionise machine learning models and agentic AI — data pipelines, model training, MLOps, and safe, observable deployments.

    PyTorchTensorFlowMLOpsLangChainVector DBsPrompt Engineering
04. What I use

Skills & Stack

Grouped by what they are for. Depth is demonstrated in the experience and project sections rather than asserted with a number.

Backend

  • Java 17+
  • Spring Boot
  • Spring Security
  • REST APIs
  • JWT / OAuth
  • Microservices
  • Node.js

Frontend

  • Next.js
  • React
  • TypeScript
  • Angular
  • Tailwind CSS

Data

  • PostgreSQL
  • MySQL
  • MongoDB
  • Oracle
  • Liquibase

Messaging & Events

  • Apache Kafka
  • RabbitMQ
  • Event-Driven Architecture
  • Asynchronous processing
  • Producer / consumer patterns

Cloud & DevOps

  • AWS (EC2, S3)
  • Docker
  • GitHub Actions
  • GitLab CI
  • Maven
  • CI/CD

Architecture

  • Microservices
  • Domain-Driven Design
  • Clean Architecture
  • Layered Architecture
  • REST
  • Agile delivery

Testing

  • JUnit 5
  • TestNG
  • Selenium
  • Automated browser testing
05. Where I've worked

Experience

Expand a role for the engineering detail — architecture, implementation and the systems behind it.

  1. Overview

    • Developed Back-Office functionality end-to-end, from data model to interface.
    • Designed REST APIs with Spring Boot and implemented the supporting business logic.
    • Implemented authentication and authorisation with Spring Security and JWT.
    • Modelled relational data in PostgreSQL and managed schema evolution with Liquibase migrations across environments.
    • Built a responsive administration dashboard in Next.js focused on data visualisation and admin workflows.
    • Established automated CI/CD pipelines with GitHub Actions.

    Engineering highlights

    • Designed an asynchronous email delivery pipeline using a database-backed outbox, a scheduler and RabbitMQ, keeping request handling decoupled from SMTP latency.
    • Modelled delivery as an explicit state machine — PENDING, ENQUEUED, SENT, FAILED — persisted per message rather than inferred from logs.
    • Implemented retry with backoff, attempt tracking and persisted failure reasons so unsuccessful sends stay inspectable instead of disappearing.
    • Added recovery for stale ENQUEUED rows, so messages orphaned by a crash between publish and acknowledgement are picked up again.
    • Kept each email row transactionally isolated — a single failure does not roll back a batch — with idempotency gating to reduce duplicate sends.
    • Built the Email Delivery Tracking UI against the real outbox API, with summary and paginated endpoints backing search, filtering and per-message attempt history.

    Architecture

    Asynchronous email delivery

    Requests never talk to SMTP directly. Messages are written to a database outbox, published to RabbitMQ by a scheduler, and delivered by a consumer that reports terminal state back to the database.

    1. Email OutboxPostgreSQL
    2. SchedulerPolls PENDING
    3. RabbitMQQueue
    4. ConsumerListener
    5. Email SenderSMTP
    6. SENTFAILED

    Delivery state

    1. PENDING
    2. ENQUEUED
    3. SENT
    4. FAILED
    • Retry with backoff and attempt counting per message.
    • Failure reasons persisted for inspection.
    • Stale ENQUEUED rows recovered on a later pass.
    • Idempotency gating guards against duplicate sends.
    • Row-level isolation — no batch rollback.

    Technologies

    JavaSpring BootSpring SecurityJWTPostgreSQLLiquibaseNext.jsRabbitMQGitHub ActionsCI/CD
06. What I've built

Projects

Backend services, event-driven systems and full-stack applications. Each card opens a case study covering the problem, the architecture and the implementation.

Focus
Stack

6 projects shown

Full StackBackendLive

Electronic SAV

E-commerce and service platform for electronics repair, deployed on AWS.

Next.jsSpring BootPostgreSQLStripeAWS EC2+2
2025Case study
Distributed SystemsBackendFull Stack

Kafka Event-Based Library Manager

Event-driven library system where availability changes propagate through Kafka.

JavaSpring BootApache KafkaNext.jsPostgreSQL
Case study

Java 21 desktop productivity application with Kanban, calendar sync and socket notifications.

Java 21JavaFXMySQLDockerHibernate+1
JavaCase study

Secure doctoral administration platform with role-based access control.

Spring BootPostgreSQLSpring SecurityJWT
Case study

Automated browser test framework with parallel execution and CI/CD integration.

JavaMavenSeleniumTestNG
Case study
Full StackFrontendLive

Depannage Services

Service marketplace connecting clients with repair technicians, with booking and geolocation.

Next.jsReactSupabaseNode.jsFirebase+1
2025Case study
07. Contributions

Open Source

Work on codebases I don't own — read someone else's architecture, match their conventions, get the change reviewed and merged.

MockMyCamera

macOS / iOS developer tooling

Merged

MockMyCamera is a developer tool for camera functionality in the iOS Simulator, which has no real webcam of its own. I contributed to the project around that camera/webcam functionality; the pull request was reviewed and merged by the project owner, making me a contributor to the repository.

Contributor — pull request merged by the maintainer
08. What I offer

Services

The kind of work I take on, freelance or full-time.

Backend & APIs

Spring Boot services with REST APIs, secure authentication and a relational model designed to change safely.

Event-Driven Systems

Kafka and RabbitMQ pipelines, outbox patterns and asynchronous processing with delivery state you can actually inspect.

Full Stack Applications

End-to-end delivery: data model, API, and a Next.js interface — admin dashboards, back-office tools and customer-facing apps.

Database Design

PostgreSQL and MySQL schema design with Liquibase-managed migrations that stay consistent across environments.

DevOps & Cloud

GitHub Actions pipelines, Docker containerisation and AWS deployment, set up so releases are unremarkable.

System Architecture

Microservices boundaries, domain-driven design and clean architecture reviews for systems that need to keep growing.

09. Let's work together

Get in Touch

Whether you have a project in mind, need a technical consultation, or just want to say hi — my inbox is always open.

Location
Bouznika, Morocco
Available for work

Currently open to full-time software engineering roles and freelance projects.