Bonjour, je suis

Zakaria SMAHI

Principal Software Engineer

Je conçois des systèmes .NET complexes et j'aide les développeurs à maîtriser le DDD, la Clean Architecture et SQL à travers des sessions individuelles.

12+ Années
d'expérience
.NET Écosystème
principal
DDD Architecture
système
Zakaria SMAHI - Portrait d'ingénieur logiciel principal

Ce que je propose

Que vous cherchiez une revue de code honnête, un regard neuf sur votre architecture, ou un accompagnement en DDD — je peux vous aider. Je travaille sur des systèmes .NET complexes au quotidien ; ces sessions sont le prolongement naturel de ce que je fais, pas un détour théorique.

Revue de Code

Je lis votre code et vous donne un retour structuré et honnête sur la lisibilité, le nommage, les patterns et les pièges courants. Pas un jugement — un regard extérieur expérimenté.

Asynchrone ou en direct · 1–2 h

Revue d'Architecture Logicielle

Vous me présentez votre système, je challenge les choix de conception et vous propose des alternatives concrètes. Des compromis, pas du dogme.

Session en direct · 1–2 h

Revue de Conception Base de Données

Je passe en revue votre schéma, vos requêtes et vos index avec un focus sur la performance et la maintenabilité à long terme.

Asynchrone ou en direct · 1–2 h

Mentorat Domain-Driven Design

Sessions récurrentes en 1:1 pour appliquer le DDD à VOTRE projet. Bounded Contexts, Aggregates, Value Objects, événements de domaine — sur votre vrai code, pas des exercices de manuel.

Récurrent · Sessions d'1 h

Coaching Clean Architecture

Nous structurons ensemble votre application avec des patterns éprouvés. Hexagonale, CQRS, Monolithe Modulaire — ce qui convient à votre contexte. Pas de solution universelle.

Récurrent · Sessions d'1 h

Comment ça marche

1

Vous me contactez

Dites-moi ce dont vous avez besoin via le formulaire ou un court appel d'introduction.

2

On échange 15 min (gratuit)

J'écoute votre situation, je comprends votre contexte et je vous suggère le bon format.

3

On planifie la session

Je vous propose un format adapté à vos besoins, et on se met au travail.

Disponibilité limitée — Je fais cela en parallèle de mon rôle de Principal Engineer. Les sessions sont en soirée et le week-end, selon les disponibilités.

Les tarifs varient selon le format et sont discutés lors de l’appel découverte.

Entreprises où j'ai travaillé

Expérience avec
AXA Assurance · Paris
Neuflize OBC Banque privée · Groupe ABN AMRO
Maximis Retraite Retraite publique · Poste actuel
ANEM Agence nationale de l’emploi
ONPO Secteur public · Algérie

Expertises clés

Ingénierie (hands-on)

C# & l'écosystème .NET, conception d'algorithmes et optimisation de performance (CPU & mémoire).

Architecture & pratiques

Domain-Driven Design, Modular Monoliths, moteurs de règles & de décision, Clean Architecture, TDD, CI/CD et Secure SDLC.

Algorithmique & données

Optimisation combinatoire (Google OR-Tools, SCIP), programmation par contraintes, T-SQL haute performance et pipelines ETL.

Leadership & transmission

Formations techniques et conférences pour la communauté de développeurs, ateliers de cadrage transverses, audits de systèmes et conseil en architecture.

Réalisations

Concevoir un moteur de retraite qui absorbe réforme après réforme

DéfiLes règles de retraite publiques couvrent plusieurs régimes et changent souvent, alors que règles, navigation et logique de calcul étaient fortement couplées.

ApprocheModélisation du domaine en DDD avec une structure de modular monolith séparant la navigation du calcul, découplage des règles métier du moteur, et versioning temporel permettant la coexistence des règles passées et futures.

RésultatLes nouveaux changements réglementaires peuvent être livrés sans réécriture structurelle.

  • C# / .NET 8
  • DDD
  • Modular Monolith
  • Rule Engine

Modéliser l'éligibilité avec des solveurs de contraintes

DéfiLes historiques de carrière sont souvent incomplets, et les schémas d'éligibilité sont combinatoirement complexes à évaluer correctement.

ApprocheHeuristiques et solveurs de contraintes sur mesure (Google OR-Tools / SCIP) pour reconstruire les données manquantes et modéliser l'éligibilité, en priorisant la justesse et la traçabilité.

RésultatDes projections explicables et auditables, même sur des données partielles.

  • OR-Tools
  • SCIP
  • Constraint Programming
  • C#

Automatiser l'ingestion de documents par OCR

DéfiL'intégration de données issues de relevés PDF complexes reposait sur une saisie manuelle et lente.

ApprocheConception d'un pipeline OCR sur Azure Document Intelligence pour analyser de façon fiable des flux PDF complexes et les injecter dans le système.

RésultatUne étape de saisie manuelle est devenue un pipeline automatisé et reproductible.

  • Azure Document Intelligence
  • OCR
  • .NET
  • Data Pipeline

Expérience professionnelle

– Présent

Principal Software Engineer (Lead Architect)

MAXIMIS RETRAITE - Paris, France

Responsable technique du moteur de calcul principal.

  • Traduction de politiques de retraite publiques complexes en une architecture DDD modulaire.
  • Réduction du « Time-to-Market » des nouvelles réformes réglementaires de plusieurs mois à quelques semaines.
  • Conception et implémentation en C# des algorithmes de projection cœur, gérant des calculs de retraite multi-régimes.
  • Automatisation de l'ingestion de documents à fort volume via OCR (Azure Doc Intelligence), réduisant le temps de 1 heure à 10 secondes.
  • Écriture d'heuristiques et de solveurs sur mesure (Google OR-Tools / SCIP).
  • Optimisation de pipelines SQL haute performance sur de grands jeux de données historiques (gain 300x).

Senior .NET & Data Engineer

NEUFLIZE OBC (ABN AMRO Group) - Paris

  • Construction de systèmes de détection des manquements réglementaires dans les contrats de crédit (Risk Management).
  • Conception de pipelines ETL critiques intégrant les systèmes bancaires cœur (AS/400) dans des plateformes analytiques.

Senior .NET Engineer

AXA FRANCE - Paris

  • Pilotage de la modernisation de systèmes on-prem vers des architectures PaaS distribuées (App Services, SQL Database).
  • Mise en place du « Security by Design » dans les pipelines CI/CD (SonarQube, CheckMarx).

Expériences précédentes

Groupe Open (Paris) · ONPO · SOVAC · ANEM (Algérie)

  • Construction de moteurs d'optimisation & d'appariement à grande échelle — affectation sous contraintes (recherche opérationnelle) et systèmes T-SQL haute performance.
  • Formations SQL avancées, et audits de qualité logicielle (Clean Code, SOLID) avec stratégies de refactoring de systèmes d'information legacy.

Envie d'en savoir plus ?

Télécharger le CV (PDF)

Ce qu'ils en disent

J'ai travaillé avec Zakaria pendant près de trois ans. Ce fut un grand plaisir. Zakaria est proactif, travailleur, réfléchit vite et bien, se tient à jour, et propose des solutions originales et pertinentes.

Zakaria a travaillé dans mon équipe de développement et a fait preuve d’un professionnalisme exemplaire et d’une remarquable capacité à surmonter les problèmes. Au-delà de ses qualités professionnelles, il s’intègre facilement à un groupe. Je le recommande vivement.

Zakaria est l’un des meilleurs développeurs .NET que je connaisse. Il nous a coachés lors des Microsoft DevCamps et c’est un excellent formateur C# et SQL Server.

Publications

Diagramme d’architecture — Moteur de politique réglementée
5 min de lecture
EP08 · Architecture · DDD

Taming Combinatorial Complexity in Pension Engines

Comment une architecture Fédération de Projecteurs — fondée sur DDD et l’architecture hexagonale — maîtrise 42 régimes de retraite et des changements législatifs constants.

Lire l’article →
Illustration code — Primitive Obsession
18 min de lecture
EP06 · Clean Code · C#

How to Get Rid of Primitive Obsession

Remplacer les primitifs bruts par des Value Objects, des Strongly Typed IDs et des collections métier — en faisant respecter les invariants directement au niveau des types.

Lire l’article →
Illustration du pattern Maybe Monad
19 min de lecture
EP07 · C# · Patterns fonctionnels

Null Reference Exceptions in C# & The Maybe Monad

Pourquoi null est la « milliard-dollar mistake » et comment le Maybe Monad élimine les vérifications de nullité pour un code C# plus sûr et expressif.

Lire l’article →

Formation

Ingénieur d’État en informatique (équivalent Master)

ESI (ex-INI), Alger | 2014

Certifications

  • The Complete Guide to Becoming a Software Architect (2024)
  • DevOps Fundamentals DASA (2019)

Langues

  • Français & arabe : natif / bilingue
  • Anglais : niveau professionnel