- Les insights des experts
- Posts
- Du Code à l’Architecture : Othman Charai, Artisan du Back-End Moderne
Du Code à l’Architecture : Othman Charai, Artisan du Back-End Moderne
Développeur Laravel et bâtisseur d’outils stratégiques avec une vision d’architecte.

Othman Charai est un développeur back-end passionné, en pleine transition vers un rôle d’architecte logiciel, avec une expertise reconnue dans l’univers Laravel et les architectures web modernes. Actuellement chez ETAP Software, il combine excellence technique et compréhension produit pour concevoir des systèmes robustes, évolutifs et utiles. Il a notamment piloté la conception du système d’affiliation de YouCan, un projet phare qui témoigne de sa capacité à mêler architecture, performance et impact utilisateur. Curieux, structuré et investi, Othman partage ici un regard lucide et inspirant sur le métier de développeur aujourd’hui.
Ce que vous apprendrez :
Comment structurer un système d’affiliation complexe avec Laravel
Les leçons clés d’un passage vers un rôle d’architecte
Les meilleures pratiques pour animer une équipe agile efficace
Une vision inspirante sur le leadership technique et l’apprentissage continu
Où trouver Othman Charai :
Place à l’interview
1. Othman, comment te décrirais-tu en quelques mots, au-delà du rôle de développeur ? Qu’est-ce qui te passionne dans ce que tu fais ?
Je suis passionné par la résolution de problèmes complexes et la compréhension profonde des enjeux business. Mon quotidien, c'est livrer efficacement tout en gardant une vision architecturale long terme et en orientant l'équipe vers les bonnes pratiques.
J'aime refactoriser et optimiser le code en continu, parce qu'une base solide permet d'aller plus vite sur la durée. Ce qui m'anime, c'est de proposer des solutions techniques innovantes tout en collaborant étroitement avec l'équipe pour faire monter le niveau collectif.
Je benchmarke constamment les nouvelles approches pour identifier ce qui apporte de la vraie valeur, et je partage ces découvertes. Mon rôle, c'est aussi d'accompagner et suivre les membres de l'équipe dans leur montée en compétences techniques et business.
Au final, je construis des fondations robustes tout en maintenant l'agilité nécessaire pour s'adapter aux évolutions du marché.
2. Quel a été ton parcours vers le monde du logiciel et comment es-tu arrivé chez ETAP Software ? Y a-t-il eu une rencontre ou un projet déclencheur ?
Mon parcours vers le développement s'est fait naturellement, attiré par la résolution de problèmes techniques et l'architecture logicielle. ETAP Software m'a séduit par sa culture technique exigeante et son impact réel sur l'industrie de l'ingénierie électrique.
Ce qui a été déclencheur, c'est la rencontre avec des équipes qui partagent cette passion pour l'excellence technique. Aujourd'hui, j'évolue dans un environnement qui me challenge quotidiennement et me permet de grandir techniquement et humainement.
3. Tu as joué un rôle clé dans la création du système d’affiliation de YouCan. Peux-tu nous raconter ce projet : les objectifs, les choix techniques, et les défis que tu as surmontés ?
Le système d'affiliation YouCan était un défi technique majeur : créer une plateforme qui connecte affiliés, partenaires et multiples brokers e-commerce (YouCan, Shopify, WooCommerce). L'objectif était de permettre aux affiliés de parcourir un catalogue unifié de produits partenaires, les intégrer à leur plateforme, et automatiser tout le cycle de vente jusqu'au calcul des commissions.
Le principal défi était la gestion du cycle d'information complexe : affiliés browsant les produits partenaires, intégration multi-brokers, gestion des leads via webhooks, et suivi automatique des commandes. J'ai conçu une architecture microservices avec monorepo, utilisant Laravel 11/PHP 8.3 et Redis pour le cache, avec trois rôles sécurisés (affilié, admin, partenaire).
La partie la plus délicate était l'orchestration des flux : depuis l'import bulk des produits partenaires via Google Sheets, jusqu'à la confirmation automatique des commandes YouCan et le calcul des profits pour withdrawal. Chaque broker ayant ses spécificités, j'ai développé des adaptateurs modulaires pour gérer ces différences tout en maintenant une expérience utilisateur fluide.
Le succès du projet repose sur cette capacité à transformer un écosystème complexe multi-acteurs en une solution simple et automatisée pour tous les utilisateurs.
4. Laravel semble être au cœur de ta stack. Qu’est-ce qui te plaît dans ce framework, et comment l’as-tu fait évoluer dans des environnements plus complexes ou exigeants ?
Laravel me séduit par sa philosophie "convention over configuration" qui accélère le développement, mais surtout par sa capacité à évoluer vers des architectures complexes. Ce qui me plaît, c'est cette balance entre simplicité initiale et possibilités avancées : Éloquent pour la rapidité, mais aussi les Services Containers et Façades pour une architecture propre.
Dans mes projets complexes, j'implémente systématiquement les patterns Repository/Service, CQRS pour séparer lecture/écriture, et l'Event Sourcing pour tracer les états critiques. J'utilise les Jobs/Queues massives avec Redis, les API Resources pour normaliser les réponses, et je structure en Domain-Driven Design quand la logique métier devient dense.
Pour l'échelle, je m'appuie sur les microservices Laravel avec des Event Buses, le cache Redis multi-layer, et l'optimisation Éloquent avec les relationships eager loading. Les Command Buses, les Middleware personnalisés et les Service Providers me permettent de découpler les responsabilités tout en gardant la testabilité.
Ma règle : Laravel comme socle robuste, mais jamais limité par ses conventions - j'étends avec des patterns architecturaux solides pour que le code reste maintenable même à grande échelle.
5. Comment restes-tu à jour dans un écosystème tech en constante évolution ? As-tu des rituels d’apprentissage, des ressources ou des communautés que tu suis ?
Ma veille s'organise autour de lectures quotidiennes (Laravel News, GitHub Trending) et du suivi de figures clés comme Taylor Otwell. J'ai instauré des "vendredis exploration" pour tester concrètement les nouveautés avant de les adopter en production.
Les communautés sont essentielles : Discord Laravel, meetups PHP locaux au Maroc, échanges avec d'autres développeurs. Cette dimension humaine enrichit ma compréhension technique et me permet de valider mes choix architecturaux.
Ma philosophie : rester curieux mais pragmatique - j'apprends constamment mais je filtre selon la valeur business réelle. Je ne suis jamais les hypes sans les avoir testées et validées dans des projets concrets.
6. Tu as aussi dirigé une équipe agile. Qu’as-tu appris sur la gestion technique et humaine dans ce rôle ? Et quelle est, selon toi, la clé d’un workflow vraiment efficace ?
Leadership technique :
Équilibre entre autonomie créative et standards de qualité élevés
Ne pas tout contrôler, mais créer un environnement propice à la croissance
Communication et collaboration :
Daily standups courts mais efficaces, code reviews constructives
Transformer les blocages en opportunités d'apprentissage
Comprendre les motivations individuelles pour mieux aligner les talents
Workflow efficace :
Sprints bien définis avec definition of done claire
Adaptation constante selon les retours
Jira pour le suivi, mais priorité à l'humain
Ma conviction : un bon leader technique code moins mais fait coder mieux - il débloque, inspire et fait grandir son équipe.
7. Enfin, sur un plan plus personnel : qu’est-ce qui te motive chaque jour ? Y a-t-il une philosophie, une figure inspirante ou un conseil que tu aimerais partager avec d’autres développeurs ou futurs tech leads ?
Ce qui me motive chaque jour :
L'impact concret de mon code sur les utilisateurs finaux
Le défi constant d'optimiser et d'améliorer les systèmes existants
La satisfaction de débloquer mon équipe et de voir grandir les développeurs
Ma philosophie :
"Code for humans, not just machines" - la lisibilité et la maintenabilité avant tout
L'excellence technique au service du business, pas l'inverse
L'apprentissage continu comme moteur de progression
Mon conseil aux développeurs :
Ne jamais cesser de remettre en question vos solutions - il y a toujours une meilleure façon
Investir autant dans les soft skills que dans la technique - savoir communiquer fait la différence
Mentorer et partager vos connaissances - on grandit en faisant grandir les autres
Ma conviction : être développeur, c'est être un artisan du numérique. Chaque ligne de code doit avoir du sens, chaque architecture doit servir l'utilisateur, et chaque collaboration doit enrichir l'équipe.