---
title: "Software Engineer · PHP Zend Framework Developer - José DA COSTA"
description: "Software Engineer"
locale: "en"
canonical: "https://portfolio.josedacosta.info/en/journey/software-engineer-php-zend-framework-developer"
source: "https://portfolio.josedacosta.info/en/journey/software-engineer-php-zend-framework-developer.md"
html_source: "https://portfolio.josedacosta.info/en/journey/software-engineer-php-zend-framework-developer"
author: "José DA COSTA"
type: "journey"
slug: "software-engineer-php-zend-framework-developer"
generated_at: "2026-04-23T15:41:25.138Z"
---

# Software Engineer · PHP Zend Framework Developer

**Organization:** European Sourcing Group  
**Period:** 2009-04-01 - 2013-09-30  
**Type:** experience  
**Status:** Permanent contract (CDI)  
**Responsibility:** Software Engineer

## Company vision

European Sourcing was my true trial by fire as a developer. The family SME environment gave me autonomy and responsibility I would never have had in a large organization. Every developer had direct impact on the product. I discovered the power of a well-designed search engine to connect suppliers and distributors, and the complexity of managing over 2,000 MySQL databases in parallel. Multi-hour batch runs to recalculate stock , prices and promotions taught me patience and the rigor of large-scale optimization. Working closely with sales teams and suppliers also gave me an end-to-end product vision, far beyond just writing code.

## Overview

Software engineer at European Sourcing, building product search engines with Apache Solr and custom ERP/PIM extranets. Managed Europe's largest promotional product database across 2,000+ MySQL databases.

- Designed Solr-powered search indexing hundreds of thousands of products
- Built the MyEasyWeb e-commerce site generator for resellers
- Administered Linux servers and 2,000+ MySQL databases

## Competencies (24)

- **Fullstack Development** (confidence 5/5) _(technical)_: Fullstack PHP Zend Framework development of B2B platforms, ERP/PIM extranets, and the MyEasyWeb e-commerce site builder.
- **System Architecture** (confidence 5/5) _(technical)_: Architecture of an ecosystem of 15+ interconnected sub-applications for promotional product sourcing.
- **DevOps and CI/CD** (confidence 3/5) _(technical)_: SVN deployments with Bash scripts, managing dev/staging/production environments on Linux servers.
- **Databases** (confidence 5/5) _(technical)_: Managing 2,000+ MySQL databases, modeling with MySQL Workbench, index optimization and batch computations.
- **Virtualization and Cloud Computing** (confidence 4/5) _(technical)_: Setting up Proxmox VE and OpenVZ for production server virtualization.
- **Scripting and Automation** (confidence 3/5) _(technical)_: Bash deployment scripts, PHP batch jobs for stock, pricing, and promotion recalculation.
- **Network Infrastructure** (confidence 2/5) _(technical)_: Server network configuration, hosting management at Systonic then migration to OVH.
- **Network Security and Cybersecurity** (confidence 4/5) _(technical)_: iptables hardening, Apache configuration, Linux server access management.
- **System Administration** (confidence 4/5) _(technical)_: Linux server administration (Debian/Ubuntu), Apache configuration, backups.
- **Service Deployment and Business Continuity** (confidence 2/5) _(technical)_: SVN-to-production deployments, release procedures, regular backups.
- **Monitoring and Supervision** (confidence 2/5) _(technical)_: Monitoring Solr search engine and batch computation performance.
- **Software Architecture Patterns** (confidence 3/5) _(technical)_: Zend Framework MVC pattern, design patterns (Factory, Singleton, Observer, Strategy).
- **GoF Design Patterns** (confidence 2/5) _(technical)_: Applying GoF design patterns in the Zend Framework context.
- **UML Modeling** (confidence 2/5) _(technical)_: UML modeling for platform design, class and sequence diagrams.
- **REST API Design** (confidence 2/5) _(technical)_: REST API design for product data synchronization with external partners.
- **Web Application Security (OWASP)** (confidence 2/5) _(technical)_: Web application security hardening, protection against SQL injection and XSS.
- **Project Management** (confidence 2/5) _(soft)_: Coordinating technical deliverables, task tracking within a team of 5-6 developers.
- **Problem Solving** (confidence 3/5) _(soft)_: Solving performance issues across 2,000+ MySQL databases and Solr search engines.
- **Communication and Collaboration** (confidence 3/5) _(soft)_: Direct collaboration with sales teams, suppliers, design, and technical management.
- **Adaptability and Learning Agility** (confidence 3/5) _(soft)_: Self-directed learning of Zend Framework, Apache Solr, and Proxmox virtualization.
- **Stakeholder Management** (confidence 2/5) _(soft)_: Interface with promotional product suppliers and reseller partners.
- **Technical Documentation** (confidence 2/5) _(soft)_: Writing complete technical specifications, requirements documents, acceptance test plans, and deployment guides.
- **Technology Watch** (confidence 2/5) _(technical)_: Technology watch on PHP, Zend Framework, search engines, and virtualization.
- **User Support and Technical Communication** (confidence 2/5) _(soft)_: User support and training on internal tools and extranets.

## Missions

- Designed and developed product search engines using Apache Solr and MySQL, indexing Europe's largest promotional product database
- Developed custom ERP and PIM extranets with supplier feed integration via MyEasyImport and reconciliation of heterogeneous formats
- Built the MyEasyWeb e-commerce site generator using Zend Framework 1.7 and the SQLi MVC framework
- Software architecture based on the MVC pattern, object-oriented design and design patterns (Factory, Singleton, Observer, Strategy) applied to the Zend framework
- Database modeling with MySQL Workbench (.mwb): relational schema design, index optimization, management of over 2,000 distinct MySQL databases
- Server virtualization setup with Proxmox VE and OpenVZ, enabling environment isolation and production container management
- Managed Linux server infrastructure (Debian/Ubuntu): Apache configuration, iptables security, deployment, backups. Hosting at Systonic then migration to OVH
- Implemented SEM/SEO strategies to maximize platform visibility on search engines
- Developed automatic product classification tools (colors, text, categories) powered by **Machine Learning and NLP** - an approach ahead of its time
- Created multilingual translation tools (7 languages) with .po and .mo file management via a dedicated back-office
- Designed **secure REST APIs** for product data synchronization with external partners
- Authored all project documentation: technical proposals, requirements documents, functional and technical specifications, acceptance test plans, requirements traceability, deployment guides and operational procedures

**Company Presentation:** European Sourcing Group is a family-owned company founded by Bernard and Christine Lavigne, operating Europe's largest promotional product and textile database. Based initially in Begles then Pessac (Avenue de Canteranne), the company operates in an agile SME environment connecting suppliers and distributors across the European promotional market. The group also includes Medialeads, its technology arm, and distributes product data through multiple B2B and B2C platforms. Hosting is provided by OVH.

**Deployment Workflow:** Before the CI/CD era, our deployment chain relied on SVN and Bash scripts. The workflow was: SVN commit (subversion.europeansourcing.com) -> deployment script (.sh) -> SVN export to /var/www/esv3 -> Apache serves production. Each developer (jose, vincent, mathieu, fabien, thomas) committed to the central repository, and deployment scripts automated the export and go-live process.

## Standardization Challenge

**Title:** Exchange Format Standardization

**Context:** In a competitive, private ecosystem like the promotional products industry, **imposing a standardized exchange format between suppliers and resellers is a major challenge**. Each supplier has its own catalog format (CSV, XML, proprietary databases), its own naming conventions and its own business rules.

**Effort:** We dedicated considerable work to designing a **standardized supplier export and reseller import format**. The goal was to create a common standard allowing every actor in the chain to transmit and receive product data uniformly - references, descriptions, prices, visuals, stock levels.

**Outcome:** Despite our efforts, **we never managed to impose this standardization format**. The dominant position of certain suppliers, who had no interest in adapting their exports, made adoption impossible. The pivot was to build a **dedicated back-office (supplier extranet)** allowing each supplier to upload their products and assets in their own format, with a **platform-side standardized API system** to reconcile and normalize data internally.

**Lesson:** This experience taught me that in a private market, standardization cannot be imposed by a single actor - it must be driven collectively or worked around with smart adaptation solutions.

## Search Evolution

**Title:** Search Engine Evolution

**Intro:** The product search engine went through **four successive technology generations**, each addressing the limits of the previous one as the catalog grew and performance requirements increased.

#### Steps

**MySQL LIKE / FULLTEXT**  
Initial search based on **SQL LIKE and FULLTEXT queries** against MySQL product tables. Functional for a few thousand references, but response times degraded rapidly as the catalog grew. No faceting, no typo tolerance, relevance limited to exact matching.

**PostgreSQL Full-Text Search**  
Migration to **PostgreSQL and its native full-text search engine** (tsvector / tsquery). Added stemming, field-level weighting (title, description, brand) and boolean operators. A noticeable relevance improvement, but faceting performance across hundreds of thousands of products remained insufficient.

**Apache Solr**  
Adoption of **Apache Solr** as a dedicated search engine. Indexing of hundreds of thousands of products with **advanced faceting** (categories, colors, prices, suppliers), search suggestions, spell checking and custom relevance scoring. This generation enabled the platform to scale across the European market.

**Elasticsearch**  
Evolution to **Elasticsearch** for its horizontal scalability, native REST API and real-time analytics capabilities. Implementation of **multi-language search** (7 languages), dedicated linguistic analyzers, business synonyms and **complex aggregations** for dynamic catalog filtering.

## Scale Challenge

**Title:** Managing 2,000+ MySQL databases: the demands of scaling

**Scale:** The European Sourcing infrastructure represented a **colossal data volume for an SME**: over 2,000 distinct MySQL databases, hundreds of thousands of product records, millions of data rows spread across dozens of interconnected tables. Each database was pre-computed to serve real-time search queries.

**Rigor:** At this scale, **the slightest design error was fatal**. A missing index on a 500,000-row table could turn a 50ms query into a 30-second timeout. We spent hours on **EXPLAIN ANALYZE**, studying every execution plan, every full table scan, every filesort. Normal forms (1NF, 2NF, 3NF, BCNF) were not an academic topic - they were a daily necessity to avoid redundancy and update anomalies on such large volumes.

**Optimization:** Optimization was constant: **composite indexing strategies**, pre-computed join tables, targeted denormalization for the most critical queries, table partitioning, **MySQL parameter tuning** (buffer pool, query cache, sort buffer, join buffer). Stock, price and promotion recalculation batches ran **several hours** every night - every second saved per query multiplied across millions of executions.

**Patterns:** This context required **complete mastery of design patterns** (Factory, Singleton, Observer, Strategy, Repository), **SOLID principles**, UML modeling and object-oriented design applied to the Zend framework. No shortcuts were possible when every architectural decision directly impacted production performance.

**Autonomy:** All of this in an SME environment that gave me **complete freedom over technical decisions** and end-to-end ownership: from database modeling to Linux server administration, from application code to SQL query tuning. This total autonomy, on a system at this scale, was **the most formative experience of my career**.

## Documentation

- Technical and Commercial Proposals
- Functional and Technical Requirements Documents
- Detailed Functional Specifications
- Detailed Technical Specifications
- User Documentation
- System Architecture Documentation
- Functional and Technical Acceptance Test Plans
- Unit and Integration Test Plans
- Deployment and Maintenance Guides
- Requirements Traceability Matrix
- Project committee meeting reports
- Operational procedures (server restart, batch execution)

## Main Projects

#### Portail European Sourcing

**Description:** B2B promotional product search portal for European resellers. Apache Solr search engine indexing hundreds of thousands of products with advanced faceting (categories, prices, colors, brands). Search interface optimized for product discovery and quote generation.

**Name:** European Sourcing Portal

**Type:** B2B Marketplace

#### Kad Objet

**Description:** B2C promotional product marketplace for end customers. The platform connects buyers directly with partner resellers, handling catalog management, orders and commercial matchmaking.

**Name:** KadObjet

**Type:** B2C Marketplace

#### My Easy Web

**Description:** Turnkey e-commerce site generator for promotional product resellers. Each reseller could quickly create their own customized online store connected to the central product catalog. Built with Zend Framework 1.7 and the SQLi MVC framework.

**Name:** MyEasyWeb

**Type:** SaaS E-commerce

#### Extranet Erp Pim

**Description:** Custom ERP and PIM extranet for centralized management of products, suppliers, orders, stock, clients and resellers. Full back-office with a sophisticated import system (MyEasyImport) capable of reconciling feeds from dozens of suppliers with different formats.

**Name:** ERP / PIM Extranet

**Type:** Back-office

#### Portail Salons Professionnels

**Description:** Community portal dedicated to professional trade shows in the promotional products industry. Platform connecting exhibitors, visitors and organizers, with event management, booth allocation and scheduling.

**Name:** Trade Show Portal

**Type:** Community Portal

#### Prestashop Wordpress

**Description:** Deployment and customization of numerous B2C online stores using PrestaShop for promotional product resellers, along with showcase and corporate websites built on WordPress. Each store is connected to the central product catalog.

**Name:** PrestaShop Stores & WordPress Sites

**Type:** B2C E-commerce

#### Tendance Object

**Description:** B2C online store for promotional product resellers wanting to sell directly to end customers. Product catalog connected to the central system with order management and logistics.

**Name:** TendanceObject

**Type:** B2C E-commerce

## Objectives

- Index and make accessible Europe's largest promotional product database through high-performance search engines
- Automate the import and reconciliation of product feeds from dozens of suppliers with heterogeneous formats
- Enable resellers to create their online store in a few clicks via MyEasyWeb
- Guarantee availability and performance of an infrastructure managing over 2,000 MySQL databases

**Platform Architecture:** The European Sourcing platform is a complete ecosystem composed of several interconnected components: a front office (public product catalog), a back office (internal administration), a supplier extranet (product and asset upload), an online quote and brief system, customizable mini-sites for each reseller, and multi-language content management. The entire system relies on over 2,000 pre-computed MySQL databases to optimize product search performance.

## Positioning

Within a team of 5 to 6 developers, I was positioned as a PHP Zend Framework developer with a broad scope. My work covered both web platform development (search portal, extranets, site generator) and Linux server administration.

I worked in direct collaboration with sales teams, suppliers, design and technical management, giving me a cross-functional product vision.

The SME environment granted me significant autonomy: from design to production deployment, including database modeling and authoring all project documentation. At the time, we used SVN (Subversion) for version control and managed multiple environments (development, staging, production).

## Related achievements

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

Full interactive version with timeline navigation: https://portfolio.josedacosta.info/en/journey/software-engineer-php-zend-framework-developer
