Skip to content
View gerard-ks's full-sized avatar

Block or report gerard-ks

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gerard-ks/README.md
Typing SVG

👋 Bonjour, je suis Gérard Kouakou Siaka

Ingénieur Logiciel

🇨🇮 Abidjan, Côte d'Ivoire

LinkedIn Email Profile Views GitHub followers GitHub User's stars


🔥 Actuellement

  • 🏗️ J'apprends : Clean Architecture, DDD (Domain-Driven Design), Architecture Hexagonale
  • 💼 Je travaille sur : Migration progressive Layered Architecture → Clean Architecture
  • 🚀 Projets 2025 : E-Commerce Platform avec DDD, Architecture Evolution Showcase
  • 📝 Je partage : Bonnes pratiques architecturales et retours d'expérience
  • 🤝 Ouvert à : CDI, Freelance, Collaborations Open-Source, Mentorat

🎯 Qui suis-je ?

Ingénieur logiciel passionné par la conception de systèmes robustes et maintenables, je me spécialise dans le développement d'applications Full-Stack et Mobile avec une forte attention portée à l'architecture logicielle.

Mon parcours professionnel m'a permis de maîtriser l'architecture en couches traditionnelle et le monolithe modulaire, deux approches que j'applique quotidiennement dans mes projets pour garantir séparation des responsabilités, testabilité et évolutivité.

Aujourd'hui, je franchis une nouvelle étape dans mon évolution professionnelle en approfondissant les architectures avancées telles que la Clean Architecture, l'Architecture Hexagonale et le Domain-Driven Design (DDD). Cette démarche reflète ma conviction profonde qu'une architecture bien pensée est le socle de tout système pérenne.

🚀 Ma Vision

Je crois fermement que le code est un moyen, pas une fin. L'objectif ultime est de créer des systèmes qui :

  • Résolvent des problèmes métier réels
  • Sont faciles à comprendre, maintenir et faire évoluer
  • Résistent aux changements technologiques grâce à une architecture découplée
  • Permettent aux équipes de travailler efficacement avec un code propre et organisé

💼 Expertise Technique

🏗️ Architecture & Conception

Architectures Maîtrisées

  • Architecture en Couches : Organisation hiérarchique (Presentation → Business → Data Access → Database)
    • Maîtrise complète : Entity, Repository, Service, Controller, DTO, Mapper, Config
    • Application des principes de séparation des responsabilités
    • Gestion des transactions et des validations à chaque niveau
  • Monolithique Classique : Applications unifiées avec déploiement simplifié
  • Monolithe Modulaire : Découpage en modules métier tout en conservant un déploiement unique
    • Organisation par bounded contexts
    • Communications inter-modules bien définies
    • Préparation à une éventuelle migration vers microservices

Architectures en Apprentissage Actif

  • Clean Architecture : Indépendance vis-à-vis des frameworks, UI, DB et services externes
    • Règle de dépendance : les couches internes ne connaissent pas les couches externes
    • Use Cases centraux qui encapsulent la logique métier
    • Inversion de dépendances via interfaces
  • Architecture Hexagonale (Ports & Adapters) : Isolation complète du domaine métier
    • Ports (interfaces) définissant les contrats
    • Adapters primaires (API REST, GraphQL, UI) et secondaires (DB, services externes)
    • Testabilité maximale grâce à l'injection de dépendances
  • Domain-Driven Design (DDD) : Modélisation centrée sur le domaine métier
    • Tactical Patterns : Entities, Value Objects, Aggregates, Domain Events, Repositories
    • Strategic Patterns : Bounded Contexts, Context Mapping, Ubiquitous Language
    • Event Storming et collaboration avec les experts métier

Principes & Patterns

  • SOLID (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
  • Design Patterns : Factory, Strategy, Observer, Repository, Unit of Work, CQRS
  • TDD (Test-Driven Development) et BDD (Behavior-Driven Development)

🛠️ Stack Technique

Catégorie Technologies
Frontend Angular 18+ • TypeScript 5+ • TailwindCSS • NgRx SignalStore
Backend NestJS 10+ • Spring Boot 3+ • Ktor 2+
Mobile Flutter 3.16+ • Dart 3+ • BLoC Pattern • GetX
Langages TypeScript • JavaScript • Kotlin • Java • Dart
Databases PostgreSQL 15+ • MongoDB 7+ • Redis 7+
DevOps Docker • Git • GitHub Actions • GitLab CI • Linux
Architecture Layered • Clean • Hexagonal • DDD • Modular Monolith • CQRS

Technologies Détaillées

Angular TypeScript JavaScript TailwindCSS

NestJS Spring Boot Ktor Kotlin Java

Flutter Dart

PostgreSQL MongoDB Redis

Docker Git GitHub Actions GitLab CI Linux


🎓 Parcours d'Apprentissage Actuel

📚 Phase d'Approfondissement Architectural (2025-2026)

Je suis actuellement dans une phase intensive d'apprentissage des architectures logicielles avancées. Cette démarche structurée me permet de progresser du niveau intermédiaire vers l'expertise en architecture.

🎯 Objectifs de Progression

Comprendre en profondeur

  • Les motivations et contextes d'utilisation de chaque architecture
  • Les trade-offs entre complexité et bénéfices
  • Quand utiliser architecture en couches vs Clean Architecture vs Hexagonale
  • Comment migrer progressivement d'une architecture simple vers une architecture avancée

Maîtriser les concepts

  • Inversion de dépendances et Dependency Injection avancée
  • Séparation stricte entre logique métier et infrastructure
  • Modélisation du domaine avec DDD Tactical Patterns
  • Découpage en Bounded Contexts avec DDD Strategic Patterns
  • Event Sourcing et CQRS pour les systèmes complexes

Appliquer sur toute la stack

  • Backend : Implémentation complète en Spring Boot et Ktor
  • Frontend : Architecture en couches dans Angular avec séparation UI/Business Logic
  • Mobile : Clean Architecture dans Flutter avec BLoC Pattern

📖 Ressources & Méthodologie

Livres en cours

  • "Clean Architecture" - Robert C. Martin (Uncle Bob)
  • "Domain-Driven Design" - Eric Evans
  • "Implementing Domain-Driven Design" - Vaughn Vernon
  • "Patterns of Enterprise Application Architecture" - Martin Fowler

Apprentissage pratique

  • Étude de projets open-source bien architecturés
  • Refactoring de code existant vers Clean Architecture
  • Prototypes et POCs sur différentes stacks
  • Documentation des décisions architecturales (ADR)

Communauté & Veille

  • Suivi de conférences (DDD Europe, KotlinConf, ng-conf)
  • Articles techniques et blogs d'experts
  • Participation à des discussions sur l'architecture logicielle

🚀 Ce Que Je Construis

interface CurrentFocus {
  // ✅ Ce que je maîtrise et applique professionnellement
  mastered: {
    architecture: [
      "Layered Architecture (N-Tier)",
      "Modular Monolith",
      "Repository Pattern",
      "Service Layer Pattern"
    ],
    practices: [
      "SOLID Principles",
      "Design Patterns (GoF)",
      "Clean Code",
      "TDD/BDD basics"
    ],
    stack: {
      frontend: ["Angular + TypeScript"],
      backend: ["NestJS + TypeScript", "Spring Boot + Java/Kotlin", "Ktor + Kotlin"],
      mobile: ["Flutter + Dart"],
      databases: ["PostgreSQL", "MongoDB", "Redis"]
    }
  },
  
  // 🎯 Ce que j'apprends activement
  learning: {
    architectures: [
      "Clean Architecture (Ports & Adapters pattern)",
      "Hexagonal Architecture (isolation du domaine)",
      "Domain-Driven Design (Tactical & Strategic patterns)",
      "Event-Driven Architecture",
      "CQRS (Command Query Responsibility Segregation)"
    ],
    concepts: [
      "Bounded Contexts & Context Mapping",
      "Ubiquitous Language",
      "Aggregates & Domain Events",
      "Value Objects & Entities",
      "Anti-Corruption Layer"
    ]
  },
  
  // 🔨 Projets en préparation
  upcomingProjects: [
    "Migration progressive : Layered → Clean Architecture",
    "Comparaison architecturale : études de cas complètes",
    "E-commerce DDD : implémentation bounded contexts",
    "Blog technique : retours d'expérience architecturaux"
  ],
  
  // 💼 Disponibilités
  openTo: [
    "Opportunités CDI (Ingénieur Full-Stack/Architecte)",
    "Missions freelance (développement Full-Stack)",
    "Collaborations open-source sur projets bien architecturés",
    "Mentoring et pair programming"
  ]
}

🎯 Projets Phares — Roadmap 2025

🏗️ Vision : De la Théorie à la Pratique

Mon objectif pour 2025 est de démocratiser les bonnes pratiques architecturales en créant des ressources concrètes et accessibles pour la communauté francophone des développeurs.

📊 Projet 1 : Architecture Evolution Showcase

Concept : Une application identique implémentée avec 4 architectures différentes

  • Version 1 : Layered Architecture (architecture en couches traditionnelle)
  • Version 2 : Modular Monolith (monolithe modulaire avec bounded contexts)
  • Version 3 : Clean Architecture (règle de dépendance stricte)
  • Version 4 : Hexagonal Architecture (ports & adapters pattern)

Objectifs pédagogiques

  • Comparer concrètement les structures de code
  • Mesurer la complexité, la testabilité et la maintenabilité
  • Documenter les trade-offs de chaque approche
  • Montrer quand utiliser quelle architecture

Stack technique

  • Backend : NestJS + TypeScript + PostgreSQL
  • Tests : Jest (unit), Supertest (integration), stratégie de mocking
  • Documentation : ADR, diagrammes C4, README détaillés

🏪 Projet 2 : E-Commerce Platform avec DDD

Concept : Plateforme e-commerce complète appliquant Domain-Driven Design

Bounded Contexts identifiés

  • Catalog Context : Gestion des produits, catégories, recherche
  • Order Context : Panier, commande, paiement, états de commande
  • Inventory Context : Gestion des stocks, réservations
  • Shipping Context : Livraison, tracking, transporteurs
  • Customer Context : Comptes clients, adresses, préférences

Patterns DDD appliqués

  • Aggregates avec invariants métier
  • Domain Events pour communication inter-contextes
  • Value Objects pour concepts métier
  • Repositories avec interfaces dans le domaine
  • Anti-Corruption Layer entre contextes

Stack technique

  • Frontend : Angular + Signal Store (state management)
  • Backend : Spring Boot + Kotlin + PostgreSQL
  • Mobile : Flutter + BLoC Pattern
  • Communication : REST + RabbitMQ pour événements asynchrones

📱 Projet 3 : Task Management App — Clean Architecture Mobile

Concept : Application de gestion de tâches avec Clean Architecture sur Flutter

Architecture en couches

  • Presentation Layer : Widgets Flutter, BLoC/Cubit pour state management
  • Domain Layer : Use Cases, Entities, Repository interfaces
  • Data Layer : Repository implementations, Data sources (API + Local DB)

Features avancées

  • Synchronisation online/offline avec conflict resolution
  • Tests exhaustifs (unit, widget, integration)
  • Architecture plugin pour faciliter l'ajout de features

Stack technique

  • Flutter + Dart
  • BLoC Pattern pour state management
  • Dio pour HTTP, Isar pour stockage local
  • Mockito pour tests

📝 Projet 4 : Blog Technique & Ressources

Concept : Plateforme de partage de connaissances architecturales

Contenu prévu

  • Articles détaillés sur les architectures étudiées
  • Vidéos de live coding et refactoring
  • Diagrammes et schémas explicatifs
  • Templates et boilerplates pour démarrer rapidement
  • Études de cas de projets réels

Objectif : Créer une ressource francophone de qualité sur l'architecture logicielle


💭 Ma Philosophie de Développement

"Good architecture makes the system easy to understand, easy to develop,
easy to maintain, and easy to deploy."
— Robert C. Martin (Uncle Bob)


"Any fool can write code that a computer can understand.
Good programmers write code that humans can understand."
— Martin Fowler


"First, solve the problem. Then, write the code."
— John Johnson


🌟 Pourquoi Travailler Avec Moi ?

✅ Expertise Technique Solide

Maîtrise confirmée de l'architecture en couches et du monolithe modulaire, avec une compréhension profonde des principes SOLID et des design patterns. Stack complète Frontend, Backend et Mobile.

📚 Apprentissage Continu

En phase active d'apprentissage des architectures avancées (Clean Architecture, Hexagonale, DDD). Je ne me contente pas de suivre les tendances, je comprends les fondamentaux et les contextes d'application.

🎯 Focus sur la Qualité

Code propre, testé et documenté. Je crois que le code est lu beaucoup plus souvent qu'il n'est écrit, donc je priorise la lisibilité et la maintenabilité.

🤝 Collaboration & Communication

Capacité à travailler en équipe, partager mes connaissances et apprendre des autres. Je crois au pouvoir de la revue de code et du pair programming.

🚀 Orienté Solutions

Pragmatique dans mes approches : j'utilise l'architecture appropriée au contexte, sans sur-ingénierie ni sous-architecture. L'objectif est toujours de résoudre des problèmes métier réels.


📫 Connectons-nous !

💬 Discutons de...

Architecture LogicielleClean CodeDomain-Driven Design
Flutter & DartAngular & TypeScriptSpring Boot & Kotlin
Best PracticesRefactoringTests Automatisés

📬 Me Contacter

LinkedIn Email

💼 Disponible pour : CDI • Freelance • Collaborations Open-Source • Mentorat


💡 Un projet en tête ? Discutons-en !

Je suis ouvert aux opportunités qui valorisent l'architecture logicielle et les bonnes pratiques.

Let's Talk


⭐ Mes Repositories

Explorez mes projets et n'hésitez pas à laisser une étoile si un projet vous intéresse !
Les retours et contributions sont toujours les bienvenus 🙏


Conçu avec 💙 et beaucoup de ☕ depuis Abidjan, Côte d'Ivoire 🇨🇮

Dernière mise à jour : Octobre 2025

Popular repositories Loading

  1. ApiReservationServiceDomicile ApiReservationServiceDomicile Public

    Java 3

  2. projet_interne projet_interne Public

    Python

  3. gerard-ks gerard-ks Public