---
title: "Software Engineer · développeur PHP Zend Framework - José DA COSTA"
description: "Ingénieur Logiciel"
locale: "fr"
canonical: "https://portfolio.josedacosta.info/fr/parcours/software-engineer-developpeur-php-zend-framework"
source: "https://portfolio.josedacosta.info/fr/parcours/software-engineer-developpeur-php-zend-framework.md"
html_source: "https://portfolio.josedacosta.info/fr/parcours/software-engineer-developpeur-php-zend-framework"
author: "José DA COSTA"
type: "journey"
slug: "software-engineer-developpeur-php-zend-framework"
generated_at: "2026-04-23T15:43:58.728Z"
---

# Software Engineer · développeur PHP Zend Framework

**Organization:** European Sourcing Group  
**Period:** 2009-04-01 - 2013-09-30  
**Type:** experience  
**Status:** CDI  
**Responsibility:** Ingénieur Logiciel

## Company vision

European Sourcing a été mon véritable baptême du feu en tant que développeur. L'environnement PME familiale m'a donné une autonomie et une responsabilité que je n'aurais jamais eue dans une grande structure. Chaque développeur avait un impact direct sur le produit. J'y ai découvert la puissance d'un moteur de recherche bien conçu pour connecter fournisseurs et distributeurs, et la complexité de gérer plus de 2 000 bases de données MySQL en parallèle. Les exécutions de batchs de plusieurs heures pour recalculer stocks , prix et promotions m'ont appris la patience et la rigueur de l'optimisation à grande échelle . La proximité avec les équipes commerciales et les fournisseurs m'a aussi donné une vision produit de bout en bout , bien au-delà du simple code.

## Overview

Ingénieur logiciel chez European Sourcing. Développement de moteurs de recherche produits avec Solr, extranets ERP/PIM et générateur de sites e-commerce.

- Moteurs de recherche produits basés sur Apache Solr
- Extranets ERP/PIM pour la gestion catalogue
- Générateur automatisé de sites e-commerce

## Competencies (24)

- **Développement fullstack** (confidence 5/5) _(technical)_: Dev full-stack PHP/Zend Framework 1.7 avec jQuery. Plateformes B2B European Sourcing, extranets ERP/PIM, générateur de sites MyEasyWeb, boutiques PrestaShop.
- **Architecture système** (confidence 5/5) _(technical)_: Contribution a l'architecture d'un écosystème de 15+ sous-applications interconnectées (front, back, extranet, mini-sites, devis, traduction).
- **DevOps et CI/CD** (confidence 3/5) _(technical)_: Déploiements SVN avec scripts Bash sur serveurs Linux, gestion des environnements dev/recette/production.
- **Bases de données** (confidence 5/5) _(technical)_: Gestion de 2 000+ bases MySQL précalculées, modélisation avec MySQL Workbench, optimisation des index et batchs de recalcul stocks/prix.
- **Virtualisation et cloud computing** (confidence 4/5) _(technical)_: Mise en place de Proxmox VE et OpenVZ pour la virtualisation et l'isolation des environnements de production.
- **Scripting et automatisation** (confidence 3/5) _(technical)_: Scripts Bash de déploiement SVN, batchs PHP de recalcul de stocks, prix et promotions exécutant plusieurs heures.
- **Infrastructure réseau** (confidence 3/5) _(technical)_: Configuration réseau des serveurs dédiés, migration de l'hébergement Systonic vers OVH, gestion DNS et Apache.
- **Sécurité réseau et cybersécurité** (confidence 4/5) _(technical)_: Sécurisation iptables des serveurs Linux, configuration Apache, gestion des accès et des certificats.
- **Administration système** (confidence 4/5) _(technical)_: Administration serveurs Linux Debian/Ubuntu, configuration Apache, sauvegardes et procédures d'exploitation.
- **Déploiement et continuité de service** (confidence 4/5) _(technical)_: Déploiements SVN vers production, procédures de mise en ligne validées, sauvegardes régulières des 2 000+ bases.
- **Monitoring et supervision** (confidence 3/5) _(technical)_: Surveillance des performances du moteur Apache Solr et des batchs de calcul multi-heures.
- **Patterns d'architecture logicielle** (confidence 5/5) _(technical)_: Pattern MVC Zend Framework et framework SQLi, conception orientée objet appliquée aux plateformes B2B.
- **Design patterns GoF** (confidence 4/5) _(technical)_: Application des design patterns Factory, Singleton, Observer et Strategy dans le contexte Zend Framework.
- **Modélisation UML** (confidence 2/5) _(technical)_: Modélisation UML des plateformes, diagrammes de classes et de sequences pour les spécifications techniques détaillées.
- **Conception d'API REST** (confidence 3/5) _(technical)_: Conception d'API REST sécurisée pour la synchronisation de données produits avec les partenaires et fournisseurs externes.
- **Sécurité applicative web (OWASP)** (confidence 3/5) _(technical)_: Sécurisation des applications web PHP, protection contre les injections SQL et XSS sur les plateformes exposées aux fournisseurs.
- **Gestion de projet** (confidence 3/5) _(soft)_: Coordination des livrables techniques au sein d'une équipe de 5-6 développeurs, suivi des tâches et estimations de charge.
- **Résolution de problèmes** (confidence 5/5) _(soft)_: Résolution de problématiques de performance sur 2 000+ bases MySQL et optimisation du moteur de recherche Apache Solr.
- **Communication et collaboration** (confidence 3/5) _(soft)_: Collaboration directe avec les équipes commerciales, les fournisseurs d'objets publicitaires, le design et la direction technique.
- **Adaptabilité et apprentissage** (confidence 5/5) _(soft)_: Montée en compétences rapide sur Zend Framework, Apache Solr, Proxmox VE et l'écosystème e-commerce B2B en autonomie.
- **Gestion des parties prenantes** (confidence 4/5) _(soft)_: Interface avec les fournisseurs d'objets publicitaires et les revendeurs partenaires pour les flux de données produits.
- **Documentation technique** (confidence 4/5) _(soft)_: Rédaction complète de propositions techniques et commerciales, cahiers des charges, spécifications fonctionnelles et techniques, cahiers de recette, guides de déploiement.
- **Veille technologique** (confidence 3/5) _(technical)_: Veille active sur PHP, Zend Framework, Apache Solr, virtualisation Proxmox et les pratiques de l'écosystème e-commerce.
- **Support utilisateurs et communication technique** (confidence 4/5) _(soft)_: Support utilisateurs internes et formation sur les outils d'administration des extranets et du back-office produit.

## Missions

- Conception et développement de **moteurs de recherche produits avec Apache Solr et MySQL**, indexant la plus grande base de données européenne d'objets publicitaires
- Développement d'**extranets ERP et PIM sur mesure** avec intégration des flux fournisseurs via **MyEasyImport** et réconciliation de formats hétérogènes
- Construction du **générateur de sites e-commerce MyEasyWeb** avec Zend Framework 1.7 et le framework MVC SQLi
- Architecture logicielle basée sur le **pattern MVC**, la conception orientée objet et les **design patterns** (Factory, Singleton, Observer, Strategy) appliqués au framework Zend
- Modélisation des bases de données avec MySQL Workbench (.mwb) : conception des schémas relationnels, optimisation des index, gestion de **plus de 2 000 bases MySQL distinctes**
- Mise en place de la **virtualisation des serveurs avec Proxmox VE et OpenVZ**, permettant l'isolation des environnements et la gestion des conteneurs de production
- Administration de l'**infrastructure serveurs Linux** (Debian/Ubuntu) : configuration Apache, sécurisation iptables, déploiement, sauvegardes. Hébergement chez Systonic puis **migration vers OVH**
- Mise en place de **stratégies SEM/SEO** pour maximiser la visibilité des plateformes clients sur les moteurs de recherche
- Développement d'outils de **classification automatique de produits** (couleurs, textes, catégories) basés sur du **Machine Learning et du NLP** - une approche en avance sur son temps pour l'époque
- Création d'outils de **traduction multilingues (7 langues)** avec gestion des fichiers .po et .mo via un back-office dédié
- Conception d'**API REST sécurisées** pour la synchronisation de données produits avec les partenaires externes
- **Rédaction de l'ensemble de la documentation projet** : propositions techniques et commerciales, cahiers des charges, spécifications fonctionnelles et techniques, cahiers de recette, référentiels d'exigences, guides de déploiement et procédures d'exploitation

**Company Presentation:** European Sourcing Group est une entreprise familiale fondée par Bernard et Christine Lavigne, spécialisée dans **la plus grande base de données européenne d'objets publicitaires** et de textile promotionnel. Basée initialement à Bègles puis à Pessac (Avenue de Canteranne), l'entreprise opère dans un environnement PME agile et **connecté fournisseurs et distributeurs du marché publicitaire européen**. Le groupe comprend également **Medialeads**, son bras technologique, et diffuse ses données produits à travers **plusieurs plateformes B2B et B2C**. L'hébergement est assuré par OVH.

**Deployment Workflow:** À l'époque, **avant l'ère du CI/CD**, notre chaîne de déploiement reposait sur **SVN et des scripts Bash**. Le workflow était : commit SVN (subversion.europeansourcing.com) -> script de déploiement (.sh) -> export SVN vers /var/www/esv3 -> Apache sert la production. Chaque développeur (jose, vincent, mathieu, fabien, thomas) commitait sur le dépôt central, et **les scripts de déploiement automatisaient l'export et la mise en ligne**.

## Standardization Challenge

**Title:** Standardisation des formats d'échange

**Context:** Dans un écosystème concurrentiel et prive comme celui de l'objet publicitaire, **imposer un format d'échange normalisé entre fournisseurs et revendeurs est un defi de taille**. Chaque fournisseur possede son propre format de catalogue (CSV, XML, bases propriétaires), ses propres nomenclatures et ses propres règles métier.

**Effort:** Nous avons consacre un travail considerable a la conception d'un **format normalisé d'export fournisseur et d'import revendeur**. L'objectif était de créer un standard commun permettant a chaque acteur de la chaîne de transmettre et recevoir les données produits de manière uniforme - références, descriptions, prix, visuels, stocks.

**Outcome:** Malgre nos efforts, **nous n'avons jamais réussi a imposer ce format de standardisation**. La position dominante de certains fournisseurs, qui n'avaient aucun intérêt a adapter leurs exports, a rendu l'adoption impossible. Le pivot a été de construire un **back-office dédié (extranet fournisseurs)** permettant a chaque fournisseur de deposer ses produits et assets dans son propre format, avec un **système d'API standardisé côté plateforme** pour réconcilier et normaliser les données en interne.

**Lesson:** Cette expérience m'a appris que dans un marché prive, la standardisation ne peut pas être imposee par un seul acteur - elle doit être portee collectivement ou contournee par des solutions d'adaptation intelligentes.

## Search Evolution

**Title:** Évolution du moteur de recherche

**Intro:** Le moteur de recherche produit a connu **quatre générations technologiques** successives, chacune répondant aux limites de la précédente face a la croissance du catalogue et aux exigences de performance.

#### Steps

**MySQL LIKE / FULLTEXT**  
Recherche initiale basee sur des **requêtes SQL LIKE et FULLTEXT** sur les tables produits MySQL. Fonctionnel pour quelques milliers de références, mais les temps de réponse se dégradaient rapidement avec la croissance du catalogue. Pas de facettage, pas de tolerance aux fautes de frappe, pertinence limitee au matching exact.

**PostgreSQL Full-Text Search**  
Migration vers **PostgreSQL et son moteur de recherche plein texte natif** (tsvector / tsquery). Apport du stemming, de la ponderation par champs (titre, description, marque) et des operateurs booleens. Un gain de pertinence notable, mais les performances de facettage sur des centaines de milliers de produits restaient insuffisantes.

**Apache Solr**  
Adoption d'**Apache Solr** comme moteur de recherche dédié. Indexation de centaines de milliers de produits avec **facettage avance** (catégories, couleurs, prix, fournisseurs), suggestions de recherche, correction orthographique et scoring de pertinence personnalisé. C'est cette génération qui a permis a la plateforme de passer a l'échelle sur le marché européen.

**Elasticsearch**  
Évolution vers **Elasticsearch** pour sa scalabilité horizontale, son API REST native et ses capacités d'analyse en temps réel. Mise en place de **recherche multi-langue** (7 langues), d'analyseurs linguistiques dédiés, de synonymes métier et d'**aggregations complexes** pour le filtrage dynamique du catalogue.

## Scale Challenge

**Title:** Gérer 2 000+ bases MySQL : l'exigence du passage a l'échelle

**Scale:** L'infrastructure European Sourcing representait un volume de données **colossal pour une PME** : plus de 2 000 bases de données MySQL distinctes, des centaines de milliers de fiches produits, des millions de lignes de données réparties sur des dizaines de tables interconnectées. Chaque base était précalculée pour servir les requêtes de recherche en temps réel.

**Rigor:** A cette échelle, **la moindre erreur de conception était fatale**. Un index manquant sur une table de 500 000 lignes pouvait transformer une requete de 50 ms en timeout de 30 secondes. On passait des heures sur **EXPLAIN ANALYZE**, a etudier chaque plan d'exécution, chaque full table scan, chaque filesort. Les formes normales (1NF, 2NF, 3NF, BCNF) n'étaient pas un sujet academique - c'était une nécessité quotidienne pour eviter la redundance et les anomalies de mise a jour sur des volumes aussi importants.

**Optimization:** L'optimisation était permanente : **stratégies d'indexation composites**, précalcul de tables de jointure, denormalisation ciblee pour les requêtes les plus critiques, partitionnement de tables, **tuning des paramètres MySQL** (buffer pool, query cache, sort buffer, join buffer). Les batchs de recalcul de stocks, prix et promotions tournaient **plusieurs heures** chaque nuit - chaque seconde gagnee par requete se multipliait par des millions d'exécutions.

**Patterns:** Ce contexte imposait une **maîtrise complète des design patterns** (Factory, Singleton, Observer, Strategy, Repository), des **principes SOLID**, de la modélisation UML et de la conception orientée objet appliquée au framework Zend. Pas de raccourcis possibles quand chaque choix d'architecture impacte directement les performances en production.

**Autonomy:** Le tout dans un environnement PME qui me donnait une **liberté totale sur les choix techniques** et une maîtrise de bout en bout : de la modélisation de la base de données a l'administration des serveurs Linux, du code applicatif au tuning des requêtes SQL. Cette autonomie complète, sur un système a cette échelle, a été **l'expérience la plus formatrice de ma carrière**.

## Documentation

- Propositions Techniques et Commerciales (PTC)
- Cahiers des Charges Fonctionnels et Techniques
- Spécifications Fonctionnelles Détaillées
- Spécifications Techniques Détaillées
- Documentation Utilisateur
- Documentation d'Architecture Système
- Cahiers de Recette Fonctionnelle et Technique
- Plans de Tests Unitaires et d'Intégration
- Guides de Déploiement et de Maintenance
- Référentiels d'Exigences
- Comptes rendus du comité de projet
- Procédures d'exploitation (redémarrage serveurs, exécution batchs)

## Main Projects

#### Portail European Sourcing

**Description:** Portail de recherche B2B d'objets publicitaires pour les revendeurs européens. **Moteur de recherche Apache Solr** indexant des **centaines de milliers de produits** avec facettage avancé (catégories, prix, couleurs, marques). Interface de recherche optimisée pour la découverte produit et la génération de devis.

**Name:** Portail European Sourcing

**Type:** Marketplace B2B

#### Kad Objet

**Description:** Marketplace B2C d'objets publicitaires a destination des clients finaux. La plateforme **connecté les acheteurs directement aux revendeurs partenaires**, avec gestion du catalogue, des commandes et de la mise en relation commerciale.

**Name:** KadObjet

**Type:** Marketplace B2C

#### My Easy Web

**Description:** **Générateur de sites e-commerce clé en main** pour les revendeurs d'objets publicitaires. Chaque revendeur pouvait créer rapidement sa propre boutique en ligne personnalisée, **connectée au catalogue produit central**. Construit avec Zend Framework 1.7 et le framework MVC SQLi.

**Name:** MyEasyWeb

**Type:** SaaS E-commerce

#### Extranet Erp Pim

**Description:** Extranet ERP et PIM sur mesure pour la **gestion centralisée des produits, fournisseurs, commandes, stocks, clients et revendeurs**. Back-office complet avec **système d'import sophistiqué (MyEasyImport)** capable de réconcilier les flux de dizaines de fournisseurs aux formats différents.

**Name:** Extranet ERP / PIM

**Type:** Back-office

#### Portail Salons Professionnels

**Description:** Portail communautaire dédié aux salons professionnels du secteur de l'objet publicitaire. Plateforme de mise en relation entre exposants, visiteurs et organisateurs, avec gestion des événements, des stands et des plannings.

**Name:** Portail Salons Professionnels

**Type:** Portail communautaire

#### Prestashop Wordpress

**Description:** Déploiement et personnalisation de nombreuses boutiques en ligne B2C sous PrestaShop pour les revendeurs d'objets publicitaires, ainsi que des sites vitrines et institutionnels sous WordPress. Chaque boutique est connectée au catalogue produit central.

**Name:** Boutiques PrestaShop & Sites WordPress

**Type:** E-commerce B2C

#### Tendance Object

**Description:** Boutique en ligne B2C destinée aux revendeurs d'objets publicitaires souhaitant vendre directement aux clients finaux. Catalogue produit connecté au système central avec gestion des commandes et de la logistique.

**Name:** TendanceObject

**Type:** E-commerce B2C

## Objectives

- Indexer et rendre accessible **la plus grande base de données européenne d'objets publicitaires** via des moteurs de recherche performants
- **Automatiser l'import et la réconciliation** des flux produits de dizaines de fournisseurs aux formats hétérogènes
- Permettre aux revendeurs de **créer leur boutique en ligne en quelques clics** via MyEasyWeb
- Garantir la disponibilité et la performance d'une infrastructure gérant **plus de 2 000 bases de données MySQL**

**Platform Architecture:** La plateforme European Sourcing est un **écosystème complet compose de plusieurs briques interconnectées** : un front office (catalogue produits public), un back office (administration interne), un extranet fournisseurs (dépôt de produits et assets), un système de devis et briefs en ligne, des mini-sites personnalisables pour chaque revendeur, et une gestion de contenu multi-langue. L'ensemble repose sur **plus de 2 000 bases MySQL précalculées** pour optimiser les performances des recherches produits.

## Positioning

Au sein d'une équipe de **5 à 6 développeurs**, j'étais positionné comme **développeur PHP Zend Framework** avec un périmètre d'action large. Mon travail couvrait à la fois **le développement des plateformes web** (portail de recherche, extranets, générateur de sites) et **l'administration des serveurs Linux**.

Je travaillais en collaboration directe avec les équipes commerciales, les fournisseurs, le design et la direction technique, ce qui me donnait **une vision transversale du produit**.

L'environnement PME me confiait **une autonomie importante : de la conception à la mise en production**, en passant par la modélisation des bases de données et la rédaction de toute la documentation projet. À l'époque, nous utilisions SVN (Subversion) pour la gestion de version et nous gérions plusieurs environnements (développement, recette, production).

## Related achievements

- [moteur-de-recherche-europeen-b2b-objets-publicitaires](https://portfolio.josedacosta.info/fr/realisations/moteur-de-recherche-europeen-b2b-objets-publicitaires.md)
- [extranet-pim-b2b-objets-publicitaires](https://portfolio.josedacosta.info/fr/realisations/extranet-pim-b2b-objets-publicitaires.md)
- [europeantool-plateforme-b2b](https://portfolio.josedacosta.info/fr/realisations/europeantool-plateforme-b2b.md)
- [portail-communautaire-salons-professionnels](https://portfolio.josedacosta.info/fr/realisations/portail-communautaire-salons-professionnels.md)

Full interactive version with timeline navigation: https://portfolio.josedacosta.info/fr/parcours/software-engineer-developpeur-php-zend-framework
