Expertise Technique

Compétences Clés

  • Java : Développement backend robuste et évolutif, expertise en Java 8+ et Spring Boot.
  • Angular : Développement d’interfaces utilisateurs dynamiques et performantes avec Angular.
  • Spring Boot : Création d’applications microservices avec Spring Boot et gestion de la sécurité avec Spring Security.
  • Kafka : Architecture et développement de solutions de streaming de données en temps réel avec Apache Kafka.
  • Microservices : Mise en place de solutions scalables et performantes en microservices, intégration de solutions DevOps et CI/CD.
  • Design Patterns : Application des patterns de conception pour créer des architectures logicielles robustes et maintenables.
  • Clean Code : Pratiques de développement visant à améliorer la lisibilité et la maintenabilité du code.
  • SOLID : Mise en œuvre des principes SOLID pour garantir une conception modulaire et évolutive.

Mes Contributions en Clean Code

Dans mon parcours, j’ai constamment cherché à améliorer la qualité du code à travers des principes de Clean Code. Voici quelques exemples avant/après de refactoring que j’ai réalisés pour améliorer la lisibilité, la performance, et la maintenabilité des systèmes.

Exemple 1: Simplification d’une méthode complexe

Avant :


public double calculateTotalPrice(Order order, boolean applyDiscount) {
    double total = 0;
    for (Item item : order.getItems()) {
        total += item.getPrice();
        if (applyDiscount) {
            total -= item.getDiscount();
        }
    }
    return total;
}
                

Après :


public double calculateTotalPrice(Order order, boolean applyDiscount) {
    return order.getItems().stream()
                .mapToDouble(item -> calculateItemPrice(item, applyDiscount))
                .sum();
}

private double calculateItemPrice(Item item, boolean applyDiscount) {
    double price = item.getPrice();
    return applyDiscount ? price - item.getDiscount() : price;
}
                

Améliorations : Simplification du calcul en utilisant un stream pour parcourir les articles. La logique est désormais séparée dans une méthode dédiée, améliorant la lisibilité et la réutilisabilité.

Exemple 2: Réduction de la duplication de code

Avant :


public boolean isUserEligibleForDiscount(User user) {
    if (user.isActive() && user.getOrderCount() > 10) {
        return true;
    }
    return false;
}

public boolean isUserEligibleForLoyalty(User user) {
    if (user.isActive() && user.getOrderCount() > 10) {
        return true;
    }
    return false;
}
                

Après :


public boolean isUserEligible(User user, EligibilityType type) {
    return user.isActive() && user.getOrderCount() > type.getThreshold();
}
                

Améliorations : Elimination de la duplication de code en combinant les deux méthodes en une seule, paramétrée par un type d’éligibilité. Cela permet d’améliorer la maintenabilité et d’ajouter facilement de nouveaux types d’éligibilité.

Parcours Professionnel

BNP Paribas

Technical Leader | Coach Développeur

Janvier 2018 – Présent

  • Refonte d’architectures SOA pour améliorer la performance et la scalabilité des applications bancaires.
  • Mise en place de microservices utilisant Kafka pour une meilleure gestion des flux de données en temps réel.
  • Encadrement et coaching des développeurs pour promouvoir les bonnes pratiques de développement (Clean Code, TDD, BDD).
  • Responsable de la mise en œuvre des politiques de sécurité dans les projets de développement, assurant la conformité aux standards de sécurité (DevSecOps).

Société Générale

Technical Leader | Architecte Logiciel

Avril 2015 – Décembre 2017

  • Conception et implémentation d’une plateforme GED (Gestion Electronique de Documents) pour optimiser la gestion des documents bancaires.
  • Conception de l’architecture d’une solution d’édition pour la production de documents réglementaires.
  • Refonte des processus de validation des flux financiers avec l’intégration d’outils de gestion des indicateurs de risques financiers.
  • Accompagnement des équipes dans la mise en place de pratiques agiles et DevOps pour accélérer le cycle de développement.

Crédit Agricole

Lead Developer | Champion de la Sécurité

Mai 2010 – Mars 2015

  • Développement d’applications critiques en utilisant Java, Spring Boot, et Angular pour une meilleure expérience utilisateur.
  • Mise en place de solutions de sécurité pour protéger les applications contre les cybermenaces, tout en garantissant la conformité avec les normes régionales de sécurité.
  • Gestion et optimisation des processus de sécurité dans des environnements multi-cloud et hybride.
  • Formation et coaching des équipes techniques en matière de sécurité informatique et de bonnes pratiques de développement.

Développement Logiciel Expert

Optimisez vos projets avec les meilleures pratiques : Clean Code, Design Patterns, et Architecture Logicielle.

Découvrez nos services

A propos de nous

Fort d’une expérience de plus de 10 ans dans le développement logiciel, nous accompagnons les entreprises dans la création de solutions évolutives, performantes et sécurisées. Grâce à une expertise solide en Clean Code et design patterns, nous mettons un point d’honneur à améliorer la qualité et la maintenabilité des applications.

Nos Services

Consulting et Coaching

Accompagnement pour améliorer vos processus de développement et vos pratiques agiles.

En savoir plus

Formation Continue

Formations sur les bonnes pratiques de développement, le Clean Code et les design patterns.

Voir nos programmes

Développement Web et Applications

Création d’applications web robustes et évolutives, adaptées aux besoins de votre entreprise.

Découvrir nos projets

Contactez-nous

Prêt à transformer vos projets de développement ? Contactez-nous pour discuter de vos besoins.

Envoyer un message

Refactoring Avancé

Transformez votre code difficile à maintenir en une application performante et évolutive. Notre approche se base sur les principes Clean Code et SOLID pour une refonte complète.

  • Réduction des dettes techniques.
  • Optimisation des performances.
  • Amélioration de la lisibilité et de la maintenance.
En savoir plus
Retour en haut