Senior Developer PHP/ Symfony (H/F)
MyUnisoft · Rabat, Rabat-Salé-Kénitra, Morocco
Accounting · 201-500 employees
About the role
Design and implement advanced software architectures and participate in business modeling workshops like Event Storming and DDD. The role involves mentoring developers, documenting architectural choices, and ensuring code maintainability and scalability.
What they look for
Requirements
Requires a senior PHP developer with deep expertise in modern architectural patterns (Hexagonal, CQRS, Event Sourcing) and experience with message brokers like Kafka or NATS.io. Proficiency in Symfony or Laravel, API Platform, and advanced testing strategies (TDD/BDD) is essential.
Benefits
Full description
Ici, vos idées comptent, vos talents grandissent, et l’aventure se vit en collectif !
Rejoindre MyUnisoft, c’est choisir une aventure humaine et professionnelle unique.
Ici, la collaboration et l’esprit d’équipe ne sont pas que des mots : entraide, confiance et accessibilité sont au cœur de notre culture. Chacun peut s’épanouir dans un environnement où l’agilité, la bonne humeur et la solidarité font partie du quotidien. Vous avez une question ? Votre collègue trouvera forcément quelques minutes pour y répondre avec plaisir !
Nous cultivons l’innovation en permanence : chaque projet est l’occasion de co-construire et de donner du sens à notre travail, toujours avec la volonté de se réinventer et de construire le futur. Chez MyUnisoft, les idées de chacun comptent, chaque talent peut évoluer, et chaque challenge devient une opportunité de grandir. Nous testons, nous apprenons, et nous déployons, contribuant ainsi à l’évolution de nos clients et de notre entreprise.
Enfin, nous sommes convaincus qu’un équilibre harmonieux entre vie professionnelle et vie personnelle est essentiel pour s’épanouir et donner le meilleur de soi-même. C’est pourquoi nous avons choisi de conserver une flexibilité de télétravail adaptée aux besoins de chaque métier. Nous savons aussi que le lien entre collègues est précieux.
C’est pourquoi certains jours sont dédiés au bureau, pour partager, collaborer et construire ensemble un environnement de travail dynamique.
Qui sommes-nous ?
MyUnisoft est une plateforme SaaS qui transforme le métier de l'expertise-comptable en proposant un espace de travail collaboratif et intelligent entre les cabinets d’expertise-comptable et leurs clients TPE/PME.
Avec son écosystème complet : comptabilité, gestion interne, portail collaboratif, automatisation des tâches et facturation électronique, MyUnisoft optimise le temps passé, renforce la fiabilité des process et facilite les échanges entre cabinets et entreprises.
Plus de 200 collaborateurs contribuent chaque jour à cette dynamique : équipes Produit, QA, UX/UI, Tech, Marketing, Commerce, Customer Success, Academy, Support... et aussi les fonctions Ressources Humaines, Achats et Finance.
Cette organisation structurée nous permet d’être au plus près des besoins de nos utilisateurs, de comprendre leurs enjeux et de faire évoluer la plateforme en continu pour leur offrir la meilleure expérience possible.
Rôle principal
Dans le cadre de notre développement et de la croissance de nos activités, nous recherchons un Développeur PHP SYMFONY sénior qualifié avec une expertise avancée en architecture logicielle. Ce profil combine une maîtrise technique approfondie avec une capacité à concevoir des systèmes complexes, maintenables et évolutifs.
Vos missions
- Concevoir et implémenter des architectures logicielles avancées
- Participer aux ateliers de modélisation métier (Event Storming, DDD)
- Accompagner et former les développeurs de l'équipe
- Garantir la qualité, la maintenabilité et l'évolutivité du code
- Documenter les choix architecturaux
- Proposer des solutions innovantes aux défis techniques
Votre profil
- Forte orientation métier : comprend que la technique sert les besoins business
- Pragmatisme : sait trouver le bon équilibre entre qualité architecturale et contraintes de livraison
- Pédagogie : capable d'expliquer des concepts complexes simplement
- Autonomie dans les décisions techniques
- Curiosité technique : se tient informé des évolutions de l'écosystème PHP
Compétences techniques
Architecture logicielle moderne (indispensable
Domain-Driven Design (DDD)
Approche de conception centrée sur le métier de l'entreprise. Le candidat doit savoir modéliser des domaines complexes en collaboration avec les experts métier et structurer le code autour des concepts métier plutôt que techniques.
Event Storming
Technique de modélisation collaborative permettant de cartographier les processus métier sous forme d'événements. Le candidat doit avoir pratiqué cette méthode en atelier avec les parties prenantes.
Architecture Hexagonale
Aussi appelée "Ports & Adapters", cette architecture sépare strictement la logique métier des détails techniques (base de données, API, etc.). Le candidat doit avoir conçu et implémenté ce type d'architecture.
CQRS (Command Query Responsibility Segregation)
Principe de séparation entre les opérations d'écriture (commandes) et de lecture (requêtes). Le candidat doit comprendre quand et pourquoi utiliser ce pattern, notamment avec les projections de données.
Event Sourcing
Technique où les changements d'état sont stockés comme une séquence d'événements plutôt que comme un état final. Le candidat doit avoir une expérience pratique de cette approche sur des projets réels.
Event-Driven Architecture et Saga Pattern
Architecture basée sur des événements asynchrones. Le Saga Pattern permet de gérer des transactions distribuées complexes. Le candidat doit avoir orchestré des processus métier via des événements.
Frameworks et technologies
PHP Moderne et Frameworks
Maîtrise avancée de PHP (versions récentes) avec une expertise confirmée sur Symfony OU Laravel. Le candidat doit exploiter pleinement les capacités du framework choisi.
API Platform
Framework spécialisé pour créer des APIs REST et GraphQL. Une expérience concrète avec cet outil est requise.
Message Brokers spécifiques
Expérience obligatoire avec Kafka, RedPanda ou NATS.io (systèmes de messagerie asynchrone pour architectures distribuées). Important : l'expérience avec RabbitMQ seul n'est pas suffisante.
Docker et conteneurisation
Maîtrise de Docker pour le développement et le déploiement d'applications.
Qualité du code et testing
Différence Active Record vs Data Mapper
Compréhension profonde des deux approches de persistance des données et de leurs implications architecturales.
Découpage vs Découplage
Capacité à expliquer et appliquer ces deux concepts fondamentaux en architecture logicielle.
Result Pattern
Technique de gestion explicite des erreurs sans exceptions. Le candidat doit l'utiliser régulièrement dans son code.
Design Patterns classiques
Connaissance et application appropriée des patterns du "Gang of Four" et autres patterns reconnus.
Clean Code et principes SOLID
Pratique quotidienne des principes de code propre, lisible et maintenable.
Stratégies de testing avancées
- TDD (Test-Driven Development) : écriture des tests avant le code
- BDD (Behavior-Driven Development) : tests basés sur le comportement métier
- Pyramide des tests : stratégie d'équilibre entre tests unitaires, d'intégration et end-to-end
- Diamond Testing : approche complémentaire favorisant les tests d'intégration
Observabilité et monitoring
OpenTelemetry Standard moderne pour l'observabilité des applications. Le candidat doit savoir instrumenter une application.
Traces, Logs et Métriques Maîtrise des trois piliers de l'observabilité :
- Spans/Traces : suivi des requêtes à travers les systèmes distribués
- Logs : journalisation structurée
- Metrics : collecte de métriques métier et techniques
Votre cadre de travail
Localisation : Rabat
Télétravail : oui
Nos avantages
🩺 Une mutuelle dynamique pour toute la famille prise en charge à 90% 💰 Une retraite privée 🤝 Un esprit d’équipe fort : entraide, confiance et disponibilité de tous 🚀 Une vraie culture de l’innovation : testez, apprenez et participez à la construction du futur 🏡 Flexibilité de télétravail : adaptée aux besoins de chaque métier ⚖️ Équilibre vie pro / vie perso : une organisation qui respecte vos besoins