---
title: "Software Engineer · desenvolvedor PHP Zend Framework - José DA COSTA"
description: "Engenheiro de Software"
locale: "pt"
canonical: "https://portfolio.josedacosta.info/pt/trajetoria/software-engineer-desenvolvedor-php-zend-framework"
source: "https://portfolio.josedacosta.info/pt/trajetoria/software-engineer-desenvolvedor-php-zend-framework.md"
html_source: "https://portfolio.josedacosta.info/pt/trajetoria/software-engineer-desenvolvedor-php-zend-framework"
author: "José DA COSTA"
type: "journey"
slug: "software-engineer-desenvolvedor-php-zend-framework"
generated_at: "2026-04-23T15:42:30.669Z"
---

# Software Engineer · desenvolvedor PHP Zend Framework

**Organization:** European Sourcing Group  
**Period:** 2009-04-01 - 2013-09-30  
**Type:** experience  
**Status:** Contrato permanente (CDI)  
**Responsibility:** Engenheiro de Software

## Company vision

A European Sourcing foi meu verdadeiro batismo de fogo como desenvolvedor. O ambiente PME familiar me deu uma autonomia e responsabilidade que eu nunca teria em uma grande organização. Cada desenvolvedor tinha impacto direto no produto. Descobri o poder de um mecanismo de busca bem projetado para conectar fornecedores e distribuidores, e a complexidade de gerenciar mais de 2.000 bancos de dados MySQL em paralelo. Execuções de batchs de várias horas para recalcular estoques , preços e promoções me ensinaram paciência e o rigor da otimização em grande escala. A proximidade com as equipes comerciais e os fornecedores também me deu uma visão de produto de ponta a ponta, muito além de apenas escrever código.

## Overview

Engenheiro de software na European Sourcing, maior base de dados europeia de produtos promocionais. Desenvolvimento de motores de busca com Solr e extranets ERP/PIM.

- Motores de busca Solr para catálogo de produtos
- Geração automatizada de sites e-commerce B2B
- +2.000 bancos de dados MySQL gerenciados

## Competencies (24)

- **Desenvolvimento full-stack** (confidence 5/5) _(technical)_: Dev full-stack PHP Zend Framework de plataformas B2B, extranets ERP/PIM e gerador de sites e-commerce MyEasyWeb.
- **Arquitetura de sistemas** (confidence 5/5) _(technical)_: Arquitetura de um ecossistema de 15+ sub-aplicações interconectadas para sourcing de brindes corporativos.
- **DevOps e CI/CD** (confidence 3/5) _(technical)_: Deploys SVN com scripts Bash, gestão dos ambientes dev/homologação/produção em servidores Linux.
- **Banco de dados** (confidence 5/5) _(technical)_: Gestão de 2.000+ bases MySQL, modelagem com MySQL Workbench, otimização de índices e batchs de cálculo.
- **Virtualização e cloud computing** (confidence 4/5) _(technical)_: Implementação de Proxmox VE e OpenVZ para virtualização dos servidores de produção.
- **Scripting e automação** (confidence 3/5) _(technical)_: Scripts Bash de deploy, batchs PHP de recalculo de estoques, preços e promoções.
- **Infraestrutura de rede** (confidence 3/5) _(technical)_: Configuração de rede de servidores, gestão de hospedagem Systonic e migração para OVH.
- **Segurança de rede e ciberseguranca** (confidence 4/5) _(technical)_: Proteção iptables, configuração Apache, gestão de acessos a servidores Linux.
- **Administração de sistemas** (confidence 4/5) _(technical)_: Administração de servidores Linux (Debian/Ubuntu), configuração Apache, backups.
- **Implantação e continuidade de serviço** (confidence 3/5) _(technical)_: Deploys SVN para produção, procedimentos de publicação, backups regulares.
- **Monitoramento e supervisão** (confidence 3/5) _(technical)_: Acompanhamento do desempenho dos motores de busca Solr e dos batchs de cálculo.
- **Padrões de arquitetura de software** (confidence 2/5) _(technical)_: Padrão MVC Zend Framework, design patterns (Factory, Singleton, Observer, Strategy).
- **Design patterns GoF** (confidence 2/5) _(technical)_: Aplicação dos design patterns GoF no contexto Zend Framework.
- **Modelagem UML** (confidence 3/5) _(technical)_: Modelagem UML para concepção das plataformas, diagramas de classes e de sequências.
- **Concepção de APIs REST** (confidence 2/5) _(technical)_: Concepção de API REST para sincronização de dados de produtos com parceiros externos.
- **Segurança aplicativa OWASP** (confidence 2/5) _(technical)_: Proteção de aplicações web, proteção contra injeções SQL e XSS.
- **Gestão de projetos** (confidence 3/5) _(soft)_: Coordenação das entregas técnicas, acompanhamento de tarefas em uma equipe de 5-6 desenvolvedores.
- **Resolução de problemas** (confidence 3/5) _(soft)_: Resolução de problematicas de desempenho em 2.000+ bases MySQL e motores de busca Solr.
- **Comunicação e colaboração** (confidence 3/5) _(soft)_: Colaboração direta com equipes comerciais, fornecedores, design e direção técnica.
- **Adaptabilidade e agilidade** (confidence 3/5) _(soft)_: Aprendizado de Zend Framework, Apache Solr, virtualização Proxmox de forma autônoma.
- **Gestão de stakeholders** (confidence 2/5) _(soft)_: Interface com fornecedores de brindes corporativos e revendedores parceiros.
- **Documentação técnica** (confidence 3/5) _(soft)_: Redação completa de documentos técnicos, cadernos de encargos, especificações, guias de deploy.
- **Vigilia tecnológica** (confidence 3/5) _(technical)_: Vigilia tecnológica sobre PHP, Zend Framework, motores de busca e virtualização.
- **Suporte a usuários e comunicação técnica** (confidence 3/5) _(soft)_: Suporte a usuários e treinamento sobre as ferramentas internas e as extranets.

## Missions

- Design e desenvolvimento de mecanismos de busca de produtos com Apache Solr e MySQL, indexando a maior base de dados europeia de produtos promocionais
- Desenvolvimento de extranets ERP e PIM personalizados com integração de feeds de fornecedores via MyEasyImport e reconciliação de formatos heterogeneos
- Construção do gerador de sites de e-commerce MyEasyWeb com Zend Framework 1.7 e o framework MVC SQLi
- Arquitetura de software baseada no padrão MVC, design orientado a objetos e design patterns (Factory, Singleton, Observer, Strategy) aplicados ao framework Zend
- Modelagem de bancos de dados com MySQL Workbench (.mwb): design de esquemas relacionais, otimização de índices, gestão de mais de 2.000 bancos MySQL distintos
- Configuração de virtualização de servidores com Proxmox VE e OpenVZ, permitindo isolamento de ambientes e gestão de containers de produção
- Administração da infraestrutura de servidores Linux (Debian/Ubuntu): configuração Apache, segurança iptables, deploy, backups. Hospedagem na Systonic, depois migração para OVH
- Implementação de estratégias SEM/SEO para maximizar a visibilidade das plataformas nos mecanismos de busca
- Desenvolvimento de ferramentas de classificação automática de produtos (cores, textos, categorias) baseadas em **Machine Learning e NLP** - uma abordagem a frente de seu tempo
- Criação de ferramentas de tradução multilinguais (7 idiomas) com gestão de arquivos .po e .mo via back-office dedicado
- Concepção de **APIs REST seguras** para sincronização de dados de produtos com parceiros externos
- Redação de toda a documentação do projeto: propostas técnicas, documentos de requisitos, especificações funcionais e técnicas, planos de teste de aceitação, rastreabilidade de requisitos, guias de deploy e procedimentos operacionais

**Company Presentation:** O European Sourcing Group e uma empresa familiar fundada por Bernard e Christine Lavigne, operando a maior base de dados europeia de produtos promocionais e têxteis. Sediada inicialmente em Begles e depois em Pessac (Avenue de Canteranne), a empresa opera em um ambiente PME ágil conectando fornecedores e distribuidores do mercado promocional europeu. O grupo também inclui a Medialeads, seu braco tecnológico, e distribui dados de produtos atraves de várias plataformas B2B e B2C. A hospedagem e fornecida pela OVH.

**Deployment Workflow:** Antes da era CI/CD, nossa cadeia de deploy dependia do SVN e scripts Bash. O fluxo era: commit SVN (subversion.europeansourcing.com) -> script de deploy (.sh) -> export SVN para /var/www/esv3 -> Apache serve a produção. Cada desenvolvedor (jose, vincent, mathieu, fabien, thomas) commitava no repositório central, e os scripts de deploy automatizavam a exportação e publicação.

## Standardization Challenge

**Title:** Padronização de formatos de troca

**Context:** Em um ecossistema competitivo e privado como o de produtos promocionais, **impor um formato de troca padronizado entre fornecedores e revendedores e um grande desafio**. Cada fornecedor possui seu próprio formato de catálogo (CSV, XML, bancos proprietarios), suas próprias nomenclaturas e suas próprias regras de negócio.

**Effort:** Dedicamos um trabalho considerável ao design de um **formato padronizado de exportação de fornecedor e importação de revendedor**. O objetivo era criar um padrão comum permitindo que cada ator da cadeia transmitisse e recebesse dados de produtos de maneira uniforme - referências, descrições, preços, visuais, níveis de estoque.

**Outcome:** Apesar de nossos esforcos, **nunca conseguimos impor esse formato de padronização**. A posição dominante de certos fornecedores, que não tinham interesse em adaptar suas exportações, tornou a adoção impossível. O pivot foi construir um **back-office dedicado (extranet de fornecedores)** permitindo que cada fornecedor fizesse upload de seus produtos e assets em seu próprio formato, com um **sistema de API padronizado do lado da plataforma** para reconciliar e normalizar os dados internamente.

**Lesson:** Essa experiência me ensinou que em um mercado privado, a padronização não pode ser imposta por um único ator - ela deve ser conduzida coletivamente ou contornada com soluções de adaptação inteligentes.

## Search Evolution

**Title:** Evolução do mecanismo de busca

**Intro:** O mecanismo de busca de produtos passou por **quatro gerações tecnológicas** sucessivas, cada uma respondendo aos limites da anterior conforme o catálogo crescia e as exigencias de desempenho aumentavam.

#### Steps

**MySQL LIKE / FULLTEXT**  
Busca inicial baseada em **consultas SQL LIKE e FULLTEXT** nas tabelas de produtos MySQL. Funcional para alguns milhares de referências, mas os tempos de resposta se degradavam rapidamente com o crescimento do catálogo. Sem facetagem, sem tolerância a erros de digitação, relevância limitada a correspondência exata.

**PostgreSQL Full-Text Search**  
Migração para **PostgreSQL e seu mecanismo de busca full-text nativo** (tsvector / tsquery). Adição de stemming, ponderação por campos (título, descrição, marca) e operadores booleanos. Uma melhoria notável na relevância, mas o desempenho de facetagem em centenas de milhares de produtos permanecia insuficiente.

**Apache Solr**  
Adoção do **Apache Solr** como mecanismo de busca dedicado. Indexação de centenas de milhares de produtos com **facetagem avancada** (categorias, cores, preços, fornecedores), sugestões de busca, correção ortografica e scoring de relevância personalizado. Essa geração permitiu que a plataforma escalasse no mercado europeu.

**Elasticsearch**  
Evolução para **Elasticsearch** por sua escalabilidade horizontal, API REST nativa e capacidades de análise em tempo real. Implementação de **busca multi-idioma** (7 idiomas), analisadores linguisticos dedicados, sinônimos de negócio e **agregações complexas** para filtragem dinâmica do catálogo.

## Scale Challenge

**Title:** Gerenciar 2.000+ bancos MySQL: as exigencias da escala

**Scale:** A infraestrutura da European Sourcing representava um **volume de dados colossal para uma PME**: mais de 2.000 bancos de dados MySQL distintos, centenas de milhares de fichas de produtos, milhões de linhas de dados distribuídas em dezenas de tabelas interconectadas. Cada banco era pre-calculado para servir consultas de busca em tempo real.

**Rigor:** Nessa escala, **o menor erro de concepção era fatal**. Um índice faltando em uma tabela de 500.000 linhas podia transformar uma consulta de 50ms em um timeout de 30 segundos. Passavamos horas no **EXPLAIN ANALYZE**, estudando cada plano de execução, cada full table scan, cada filesort. As formas normais (1NF, 2NF, 3NF, BCNF) não eram um assunto acadêmico - eram uma necessidade diária para evitar redundância e anomalias de atualização em volumes tão grandes.

**Optimization:** A otimização era constante: **estratégias de indexação composta**, tabelas de junção pre-calculadas, desnormalização direcionada para as consultas mais críticas, particionamento de tabelas, **tuning de parâmetros MySQL** (buffer pool, query cache, sort buffer, join buffer). Os batchs de recalculo de estoques, preços e promoções rodavam **várias horas** todas as noites - cada segundo economizado por consulta se multiplicava por milhões de execuções.

**Patterns:** Esse contexto exigia **domínio completo dos design patterns** (Factory, Singleton, Observer, Strategy, Repository), dos **princípios SOLID**, da modelagem UML e do design orientado a objetos aplicado ao framework Zend. Nenhum atalho era possível quando cada decisão de arquitetura impactava diretamente o desempenho em produção.

**Autonomy:** Tudo isso em um ambiente PME que me dava **liberdade total sobre as decisões técnicas** e domínio de ponta a ponta: da modelagem de banco de dados a administração de servidores Linux, do código aplicativo ao tuning de consultas SQL. Essa autonomia total, em um sistema nessa escala, foi **a experiência mais formativa da minha carreira**.

## Documentation

- Propostas Técnicas e Comerciais
- Documentos de Requisitos Funcionais e Técnicos
- Especificações Funcionais Detalhadas
- Especificações Técnicas Detalhadas
- Documentação do Usuário
- Documentação de Arquitetura do Sistema
- Planos de Teste de Aceitação Funcional e Técnica
- Planos de Testes Unitarios e de Integração
- Guias de Deploy e Manutenção
- Matriz de Rastreabilidade de Requisitos
- Relatórios de reuniões do comite de projeto
- Procedimentos operacionais (reinicio de servidores, execução de batchs)

## Main Projects

#### Portail European Sourcing

**Description:** Portal de busca B2B de produtos promocionais para revendedores europeus. Mecanismo de busca Apache Solr indexando centenas de milhares de produtos com facetagem avancada (categorias, preços, cores, marcas). Interface de busca otimizada para descoberta de produtos e geração de orçamentos.

**Name:** Portal European Sourcing

**Type:** Marketplace B2B

#### Kad Objet

**Description:** Marketplace B2C de produtos promocionais para clientes finais. A plataforma conecta compradores diretamente com revendedores parceiros, com gestão de catálogo, pedidos e intermediação comercial.

**Name:** KadObjet

**Type:** Marketplace B2C

#### My Easy Web

**Description:** Gerador de sites de e-commerce pronto para uso para revendedores de produtos promocionais. Cada revendedor podia criar rapidamente sua própria loja online personalizada, conectada ao catálogo central de produtos. Construído com Zend Framework 1.7 e o framework MVC SQLi.

**Name:** MyEasyWeb

**Type:** SaaS E-commerce

#### Extranet Erp Pim

**Description:** Extranet ERP e PIM sob medida para gestão centralizada de produtos, fornecedores, pedidos, estoques, clientes e revendedores. Back-office completo com sistema de importação sofisticado (MyEasyImport) capaz de reconciliar fluxos de dezenas de fornecedores com formatos diferentes.

**Name:** Extranet ERP / PIM

**Type:** Back-office

#### Portail Salons Professionnels

**Description:** Portal comunitário dedicado a feiras profissionais do setor de produtos promocionais. Plataforma conectando expositores, visitantes e organizadores, com gestão de eventos, alocação de estandes e agendamento.

**Name:** Portal de Feiras Profissionais

**Type:** Portal comunitário

#### Prestashop Wordpress

**Description:** Implantação e personalização de diversas lojas online B2C com PrestaShop para revendedores de produtos promocionais, além de sites institucionais e vitrines construídos com WordPress. Cada loja e conectada ao catálogo central de produtos.

**Name:** Lojas PrestaShop & Sites WordPress

**Type:** E-commerce B2C

#### Tendance Object

**Description:** Loja online B2C para revendedores de produtos promocionais que queriam vender diretamente para clientes finais. Catálogo de produtos conectado ao sistema central com gestão de pedidos e logística.

**Name:** TendanceObject

**Type:** E-commerce B2C

## Objectives

- Indexar e tornar acessível a maior base de dados europeia de produtos promocionais atraves de mecanismos de busca de alto desempenho
- Automatizar a importação e reconciliação de feeds de produtos de dezenas de fornecedores com formatos heterogeneos
- Permitir que revendedores criem sua loja online em poucos cliques via MyEasyWeb
- Garantir disponibilidade e desempenho de uma infraestrutura gerenciando mais de 2.000 bancos de dados MySQL

**Platform Architecture:** A plataforma European Sourcing e um ecossistema completo composto por vários componentes interconectados: um front office (catálogo público de produtos), um back office (administração interna), um extranet de fornecedores (upload de produtos e assets), um sistema de orçamentos e briefs online, mini-sites personalizaveis para cada revendedor, e gestão de conteúdo multi-idioma. Todo o sistema depende de mais de 2.000 bancos de dados MySQL pre-calculados para otimizar o desempenho das buscas de produtos.

## Positioning

Em uma equipe de 5 a 6 desenvolvedores, eu era posicionado como desenvolvedor PHP Zend Framework com um escopo amplo. Meu trabalho cobria tanto o desenvolvimento de plataformas web (portal de busca, extranets, gerador de sites) quanto a administração de servidores Linux.

Trabalhava em colaboração direta com as equipes comerciais, fornecedores, design e direção técnica, o que me dava uma visão transversal do produto.

O ambiente PME me concedia autonomia significativa: da concepção ao deploy em produção, incluindo a modelagem de bancos de dados e a redação de toda a documentação do projeto. Na epoca, usavamos SVN (Subversion) para controle de versão e gerenciavamos vários ambientes (desenvolvimento, homologação, produção).

## Related achievements

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

Full interactive version with timeline navigation: https://portfolio.josedacosta.info/pt/trajetoria/software-engineer-desenvolvedor-php-zend-framework
