Contact
Travaillons ensemble
Medialeads

Senior Software Engineer · lead développeur PHP Symfony

Medialeads

octobre 2013 - novembre 20163 ans 2 moisCDILead Développeur PHP Symfony
Medialeads
Présentation de l'entreprise

Medialeads est une filiale technologique du groupe European Sourcing, créée en 2013 pour structurer le pôle développement logiciel. Installée à Bègles (Boulevard Jean-Jacques Bosc) sous le nom commercial JOVETTE, l'entreprise conçoit et maintient un écosystème complet de plateformes B2B interconnectées pour l'industrie de l'objet publicitaire et du sourcing professionnel.

2013

Fondée

4-10

Développeurs

10+

Plateformes

B2B

Objet publicitaire

Mon positionnement et mon rôle

Au sein de Medialeads, j'étais positionné comme lead développeur PHP Symfony et référent technique de l'équipe. Mon périmètre couvrait l'ensemble de l'écosystème de projets : European Sourcing, Tradexpo, My Easy Web, Birds Marketplace et les portails clients.

Je travaillais en lien direct avec le Project Manager pour transformer les besoins fonctionnels en spécifications techniques.

Je supervisais les développeurs juniors et intermédiaires, je menais les code reviews et je définissais les conventions techniques de l'équipe. Mon autonomie était totale sur les choix d'architecture, les technologies et les déploiements.

Millions

Produits indexés

Elasticsearch

10+

Plateformes

Écosystème B2B

40+

Sites clients

MyEasyWeb

254+

Fournisseurs

Pipeline de données

4-10

Développeurs

Encadrés

7

Langues

Traduction i18n

Missions principales et responsabilités
  • Développement full-stack de plateformes ERP, PIM, CRM et Marketplace sur mesure avec Symfony v2/v3, generant les vitrines digitales des clients (Sommet de l'Elevage, Medical Place, Rusty Bobby, Groupe Plaisirs du Vin)
  • Pilotage de la migration d'Apache Solr vers Elasticsearch pour l'indexation de plusieurs millions de produits, avec configuration de clusters et optimisation des requêtes de recherche
  • Conception et maintenance d'API REST (FOSRestBundle + JWT RSA 4096 bits + Swagger/NelmioApiDoc + HATEOAS) pour l'interconnexion des plateformes de l'écosystème
  • Architecture multi-bundle réutilisable avec Symfony : CoreBundle (entités Doctrine partagées), ApiBundle (API REST), PostgreSearchBundle (recherche full-text PostgreSQL native)
  • Mise en place de patterns d'architecture logicielle : Repository abstrait, Controller abstrait, JsonDecoder custom, traits Doctrine réutilisables (CreatedUpdatedAt, SoftDeletable, Localized, Sortable)
  • Architecture et mise en place de la virtualisation avec Proxmox LXC, optimisant les environnements de développement et de déploiement sur serveurs dédiés OVH
  • Développement de frontends AngularJS v1 (Bootstrap 3, Bower, Grunt, Compass/SASS) connectes aux API REST documentées
  • Revue et validation du code des autres ingénieurs, accompagnement des développeurs juniors et intermédiaires, pair programming, définition des standards techniques de l'équipe
  • Pilotage de la stratégie SEO et des campagnes Google AdWords (SEA), collaboration avec l'agence Universem (Belgique) pour les backlinks et le référencement
  • Administration du wiki technique interne (DokuWiki) : documentation des projets, serveurs, procédures de déploiement et configurations techniques
  • Administration des serveurs de production et de recette (OVH), gestion des déploiements SVN puis migration progressive vers Git/GitHub
Decisions techniques structurantes

Migration Solr vers Elasticsearch

Probleme

Performance et scalabilite pour des millions de produits indexes. Solr ne supportait plus la charge ni les requetes complexes de faceting.

Resultat

Temps de recherche reduit, clustering operationnel, faceting avance sur le catalogue B2B.

Architecture multi-bundle Symfony

Probleme

Réutilisabilité du code entre 10+ projets de l'écosystème. Chaque projet repartait de zéro sans socle commun.

Resultat

CoreBundle (entites partagees), ApiBundle (API REST), PostgreSearchBundle (full-text) - mutualises entre tous les projets.

Authentification JWT RSA 4096 bits

Probleme

Sécurisation des API inter-plateformes. Les sessions classiques ne fonctionnaient pas pour des appels machine-to-machine entre les services.

Resultat

Authentification stateless entre tous les services de l'écosystème, documentation Swagger automatique des endpoints sécurisés.

Migration SVN vers Git/GitHub

Probleme

Collaboration moderne et branching. SVN ne permettait ni les feature branches ni les code reviews avant merge.

Resultat

Migration progressive sans rupture de production, adoption des pull requests et des code reviews systematiques.

Projets clients

European Sourcing
Projet pharePlateformé B2B

Plateformé B2B de sourcing pour l'industrie de l'objet publicitaire. Moteur de recherche produits, front revendeur, back fournisseur, extranet, API REST, module d'export, système de flux et auto-mises-a-jour. Plusieurs millions de produits indexés via Elasticsearch.

  • Plusieurs millions de produits indexés dans Elasticsearch
  • API REST documentée (Swagger) avec authentification JWT RSA 4096 bits
  • Front revendeur + back fournisseur + extranet + module de traduction
  • Flux automatiques de synchronisation fournisseurs via crontab
Voir la réalisation
Tradexpo
Marketplace B2B

Marketplace B2B complète construite sur Symfony 2.6, AngularJS et PostgreSQL. Architecture modulaire avec CoreBundle (60+ entités Doctrine), ApiBundle (FOSRestBundle + JWT + Swagger/HATEOAS) et PostgreSearchBundle (recherche full-text native). Gestion multi-locale, multi-devise.

  • 60+ entités Doctrine (Product, Supplier, Order, Brand, Category, Variant..)
  • API REST HATEOAS avec documentation Swagger automatique
  • Authentification JWT RSA 4096 bits
  • Architecture multi-bundle réutilisable entre projets
My Easy Web
SaaS / CMS

Générateur de sites clients (mini-sites/microsites) sur mesure avec personnalisation par nom de domaine ou sous-dossier. Administration centralisée, multi-domaines, moteur Solr intégré, version multilingue (dont meineasyweb.de pour le marché allemand).

Birds Marketplace
Produit SaaS

Plateformé SaaS modulaire de marketplace B2B gérant commissions, multi-vendeurs et paiements (Stripe/Mangopay). Produit interne visant a industrialiser le savoir-faire Medialeads en solution clef en main pour l'e-commerce B2B.

Écosystème complet de projets

Au-delà des 4 projets principaux, Medialeads maintenait un écosystème de plateformes interconnectées pour l'industrie de l'objet publicitaire.

Data LeadsDonnées

Plateforme de gestion de données et leads B2B

European ToolExport

Export de catalogues produits vers PrestaShop (CSV + Web Services)

Gourmet OnlineMarketplace

Marketplace dédiée au secteur gastronomique et food

Tendance ObjetMedia

Portail d'actualites et tendances de l'objet publicitaire

KadobjetPortail

Portail de l'objet publicitaire

OmyagueE-commerce

Plateforme cadeaux d'affaires

C!PrintImpression

Plateforme pour le secteur de l'impression professionnelle

Offres AutoAutomatisation

Système d'offres automatisées pour les revendeurs

Tous ces projets partagent le meme socle technique : Symfony, Doctrine ORM, PostgreSQL, et les bundles reutilisables (CoreBundle, ApiBundle, PostgreSearchBundle).

Encadrement technique

Accompagnement des développeurs juniors et intermédiaires au quotidien : revue de code systématique, pair programming, définition des standards techniques et des conventions de nommage. Diffusion des bonnes pratiques Symfony et des normes PSR au sein de l'équipe. Collaboration étroite avec le Project Manager pour la planification technique et les estimations de charge. Participation active aux meetups AFUP Bordeaux pour rester connecté àux évolutions de l'écosystème PHP.

  • Code reviews systematiques

    Revue de chaque pull request avant merge, feedback pédagogique aux développeurs juniors et intermédiaires.

  • Pair programming

    Sessions regulieres avec les juniors sur les parties complexes : architecture Doctrine, requetes Elasticsearch, API REST.

  • Standards techniques

    Definition des conventions de nommage, normes PSR, patterns Symfony (Repository, Controller abstrait, traits Doctrine).

  • AFUP Bordeaux

    Participation régulière aux meetups de l'Association Française des Utilisateurs de PHP pour alimenter la veille technique et partager les retours avec l'équipe.

  • Formation Symfony (octobre 2014)

    Formation Symfony 2 de 3 jours en presentiel couvrant les fondamentaux et les bonnes pratiques du framework.

Répartition du temps par projet
Répartition du temps par activité
SEO et campagnes SEA

En PME, le Senior Full-Stack touche aussi au marketing digital. Gestion du référencement naturel et des campagnes publicitaires pour l'écosystème de plateformes.

Google AdWords (SEA)

Creation et gestion de campagnes publicitaires pour European Sourcing et les portails clients. Gestion de listes de mots-cles strategiques (objet publicitaire, cadeau publicitaire, objet promotionnel).

Referencement naturel (SEO)

Optimisation on-page et technique pour l'ensemble des plateformes de l'écosystème. Gestion des synonymes et variantes de mots-clés en français.

Agence Universem (Belgique)

Collaboration avec l'agence SEO Universem pour la strategie de backlinks et le referencement de TendanceObjet.com.

Google Analytics

Suivi des performances de trafic, analyse des conversions et reporting pour orienter les decisions marketing et produit.

Stack technique

Backend

PHP 5.4+Symfony 2.6/3.xDoctrine ORMFOSRestBundleJWT (LexikJWT)

Bases de données

PostgreSQLDoctrine DBALDoctrine Migrations

Recherche & Indexation

ElasticsearchApache SolrPostgreSQL Full-Text

Frontend

AngularJS 1.xBootstrap 3BowerGruntSASS/Compass

API & Documentation

Swagger (NelmioApiDoc)HATEOASREST

Infrastructure

Proxmox LXCOVHApache2MemcachedSVNGit
Objectifs globaux du poste
  • Industrialiser le savoir-faire marketplace B2B en solutions réutilisables et modulaires
  • Migrer l'infrastructure de recherche de Solr vers Elasticsearch pour des millions de produits
  • Monter en compétences sur les architectures API REST et les patterns d'architecture logicielle
  • Structurer les pratiques de l'équipe : code reviews, documentation, standards techniques
Mon regard sur l'entreprise

L'environnement startup/PME familiale m'a donné une autonomie totale et une vision produit de bout en bout. On construisait des marketplaces complètes de A a Z, de l'architecture backend jusqu'au SEO. C'est chez Medialeads que j'ai acquis ma maturité technique : piloter la migration de Solr vers Elasticsearch pour des millions de produits, concevoir des API REST avec authentification JWT, bâtir des architectures multi-bundle réutilisables entre projets.

L'équipe était réduite (4 a 10 développeurs), ce qui impliquait de maîtriser toute la chaine - infrastructure Proxmox, base PostgreSQL, backend Symfony, frontend AngularJS, SEO, déploiements.

La participation réguliere aux meetups de l'AFUP Bordeaux (Association Française des Utilisateurs de PHP) a enrichi ma pratique et m'a connecté à la communauté PHP locale.

Ce que je retiens : la polyvalence forgée dans une petite structure ou chaque développeur porté plusieurs casquettes est un atout que les grosses organisations ne peuvent pas offrir.

Medialeads
Compétences associées

16 Compétence technique · 7 Compétence humaine

Compétence technique

Développement logiciel5/5Développement fullstack

Dev full-stack Symfony 2/3 de plateformes ERP, PIM, CRM et Marketplace. Frontend AngularJS (Bootstrap 3, Bower, Grunt) connecté àux APIs REST.

Architecture & Conception4/5Architecture système

Architecture multi-bundle réutilisable (CoreBundle, ApiBundle, PostgreSearchBundle) pour l'écosystème de plateformes B2B interconnectées.

DevOps & Cloud5/5DevOps et CI/CD

Administration serveurs dédiés OVH, virtualisation Proxmox LXC, migration progressive des déploiements SVN vers Git/GitHub.

Architecture & Conception5/5Patterns d'architecture logicielle

Repository abstrait, Controller abstrait, JsonDecoder custom, traits Doctrine réutilisables (CreatedUpdatedAt, SoftDeletable, Localized, Sortable).

Architecture & Conception4/5Conception d'API REST

APIs REST avec FOSRestBundle, authentification JWT RSA 4096 bits, documentation Swagger/NelmioApiDoc, architecture HATEOAS.

Architecture & Conception4/5Design patterns GoF

Application des design patterns GoF dans l'architecture Symfony multi-bundle : Factory, Repository, Strategy, Observer.

Sécurité3/5Sécurité applicative web (OWASP)

Authentification JWT RSA 4096 bits, sécurisation des APIs REST et des extranets fournisseurs, gestion des accès.

Développement logiciel4/5Stratégie de tests et qualité

Tests unitaires PHPUnit, tests fonctionnels Symfony, revue de code systématique des développeurs juniors et intermédiaires.

Données & IA4/5Bases de données

PostgreSQL avec recherche full-text native, pilotage de la migration Solr vers Elasticsearch pour des millions de produits indexés.

DevOps & Cloud3/5Virtualisation et cloud computing

Architecture et mise en place de la virtualisation Proxmox LXC, optimisation des environnements de dev et de déploiement sur serveurs OVH.

DevOps & Cloud3/5Scripting et automatisation

Scripts de déploiement, crontab pour la synchronisation automatique des flux fournisseurs et les mises a jour de données produits.

Infrastructure & Réseaux3/5Administration système

Administration serveurs Linux Debian sur OVH, configuration Apache/Nginx, gestion des certificats et des accès.

DevOps & Cloud3/5Monitoring et supervision

Monitoring des clusters Elasticsearch, surveillance des performances applicatives et des flux de synchronisation fournisseurs.

DevOps & Cloud4/5Déploiement et continuité de service

Déploiements sur serveurs de production et de recette OVH, migration progressive de SVN vers Git/GitHub.

Communication & Collaboration3/5Documentation technique

Administration du wiki technique interne DokuWiki, documentation des projets, serveurs, procédures de déploiement et configurations.

Communication & Collaboration3/5Veille technologique

Participation réguliere aux meetups AFUP Bordeaux, veille active sur l'écosystème PHP/Symfony, Elasticsearch et les pratiques DevOps.

Compétence humaine

Tableau de bord d'administration MyEasyWeb avec gestion des revendeurs, commandes et statistiques
Back-office interne (bo.myeasyweb.pro) - Tableau de bord d'administration revendeurs
Page de connexion et inscription revendeur avec options de personnalisation de marque
Portail d'authentification revendeur - Connexion personnalisée avec domaines dédiés
Panneau de personnalisation marque blanche avec parametres de theme, couleurs, logo et polices pour les sites revendeurs
Panneau de personnalisation - Controle complet de l'identite visuelle par site revendeur
Vitrine catalogue produits avec filtres de recherche, navigation par categorie et listings de produits promotionnels
Vitrine catalogue - Recherche produits multilingue avec filtrage par fournisseur
Brochure marketing de la plateforme SaaS e-commerce marque blanche MyEasyWeb avec points forts
Brochure commerciale - Fonctionnalites de la plateforme et proposition de valeur pour les revendeurs