---
title: "Mecanismo de Busca Europeu B2B de Produtos Promocionais (European Sourcing)"
description: "Mecanismo de busca B2B que funciona como feira online para revendedores europeus de produtos promocionais - um precursor das marketplaces atuais."
locale: "pt"
canonical: "https://portfolio.josedacosta.net/pt/realizacoes/moteur-de-recherche-europeen-b2b-objets-publicitaires"
source: "https://portfolio.josedacosta.net/pt/realizacoes/moteur-de-recherche-europeen-b2b-objets-publicitaires.md"
html_source: "https://portfolio.josedacosta.net/pt/realizacoes/moteur-de-recherche-europeen-b2b-objets-publicitaires"
author: "José DA COSTA"
date: "2010"
type: "achievement"
slug: "moteur-de-recherche-europeen-b2b-objets-publicitaires"
tags: ["PHP 5.x", "Symfony 2/3", "MySQL", "Elasticsearch", "AngularJS", "Propel/Doctrine ORM", "Memcache", "RabbitMQ", "Apache", "Proxmox VE", "AWS SES", "PhoneGap/Cordova"]
generated_at: "2026-06-02T15:37:27.679Z"
---

# Mecanismo de Busca Europeu B2B de Produtos Promocionais (European Sourcing)

Mecanismo de busca B2B que funciona como feira online para revendedores europeus de produtos promocionais - um precursor das marketplaces atuais.

**Data:** 2010 - 2016  
**Duração:** ~6 anos  
**Função:** Software Engineer depois Senior Software Engineer  
**Tecnologias:** PHP 5.x, Symfony 2/3, MySQL, Elasticsearch, AngularJS, Propel/Doctrine ORM, Memcache, RabbitMQ, Apache, Proxmox VE, AWS SES, PhoneGap/Cordova

### Indicadores-chave

- Linhas de codigo: **-** - PHP, JS, Twig, CSS, HTML
- Tabelas no banco: **-** - MySQL (master-slave)
- Sub-aplicacoes: **-** - Ecossistema de microsservicos
- Idiomas suportados: **-** - FR, EN, DE, ES, IT, NL, PT
- Servidores dedicados: **-** - OVH Proxmox VE
- Conectores de fornecedores: **-** - Importacao automatizada de dados
- Entradas de versionamento: **-** - 836 Git + 398 SVN
- Sites revendedores: **-** - CMS hospedado MyEasyWeb

## Apresentacao e definicao do projeto

_Quinze sub-aplicacoes interconectadas, quatro geracoes de mecanismos de busca, 8 anos de desenvolvimento_

### Dominio de negocios

Comunicacao por objeto B2B - conectando fornecedores, revendedores e agencias europeias na industria de produtos promocionais.

### Usuarios-alvo

Profissionais B2B em toda a Europa - agencias de comunicacao, distribuidores, e exemplos de fornecedores europeus integrados (Midocean, PF Concept, BIC, Paul Stricker, SOL'S, TopTex, Topico, Inspirion, Makito, Xindao, Clipper, Cybernecard, Pixika, Delta, Passot, Lm, Boomerang, Axpol, Goya, GetImpressed, Giving, Lensen Toppoint, Cottel, Eljte, Frezal, Imbretex).

European Sourcing e um **mecanismo de busca B2B de produtos promocionais** que funciona como feira profissional permanente online em escala europeia - um **precursor do que hoje chamamos de marketplaces**, destinado a todos os revendedores europeus de produtos promocionais. O projeto constitui um **ecossistema completo de aplicacoes** composto por quinze sub-aplicacoes interconectadas, desenvolvidas ao longo de mais de 6 anos (2010-2017).

A plataforma conecta tres tipos de atores no mercado de produtos promocionais:
- **Fornecedores** (fabricantes/atacadistas) que listam seus catalogos de produtos → **B2B**
- **Revendedores/Distribuidores** (agencias de comunicacao) que buscam produtos para seus clientes → **B2B**
- **Visitantes** que navegam pelo catalogo online nos sites dos revendedores (clientes finais) → **B2C**

O sistema funciona como uma **feira profissional permanente online**, oferecendo aos fornecedores uma vitrine multicanal (catalogo online, newsletters, banners publicitarios, guidebook anual, Google Ads) e aos revendedores um motor de busca de produtos multilingue cobrindo 7 idiomas europeus.

### Escopo funcional

### Catalogo de produtos multilingue (7 idiomas)

### Busca full-text (Elasticsearch)

### Back-office fornecedores/revendedores

### Importacao automatizada de dados (26+ conectores)

### API REST com autenticacao WSSE

### Sistema de traducao centralizado

### Pagamento online (Sogenactif)

### CMS mini-sites revendedores (MyEasyWeb)

### Aplicacoes moveis (PhoneGap/Cordova)

### Estatisticas de consulta (visualizacoes, buscas, cliques)

### Exportacao de dados (CSV + imagens de produtos)

### Back-office SEO / Marketing

## Objetivos, contexto, desafios e riscos

_Digitalizando o mercado europeu de produtos promocionais_

### Contexto

O projeto inicial (v1/v2) foi desenvolvido pela **SQLI**, uma empresa francesa de servicos de TI, com um framework PHP customizado e templates Smarty. O codigo legado continha 398 revisoes SVN cobrindo 2010-2013.

Quando cheguei na SQLI, **5 desenvolvedores PHP dedicados em tempo integral** trabalhavam no projeto. Com o tempo, assumi uma parte crescente do perimetro tecnico, ate cobrir sozinho **o essencial das evolucoes** - um papel que evoluiu naturalmente com minha expertise crescente e a autonomia do ambiente PME. Depois de cuidar sozinho do perimetro por um tempo, pedi reforco e obtive a contratacao de um segundo desenvolvedor.

A partir de 2014-2016, **nossa nova equipe Medialeads** realizou uma **reescrita completa** da plataforma, migrando progressivamente do framework customizado para **Symfony 2/3** enquanto mantinha o site publico em um framework MVC customizado mais leve.

A plataforma era **multilingue** (7 idiomas), **multi-pais**, com alto volume de dados de produtos, e a necessidade de manter compatibilidade com os feeds de dados de fornecedores existentes - **tudo hospedado em servidores dedicados OVH totalmente autogerenciados: faziamos absolutamente tudo por conta propria, da configuracao do sistema ate as implantacoes**.

### Modelo de negocios

Receita de assinaturas de fornecedores (240-288 EUR/ano) e servicos publicitarios (banners, newsletters, guidebook, Google Ads, planejamento de midia).

### Posicao estrategica

European Sourcing se posicionava como a referencia do sourcing de produtos promocionais online na Europa - um precursor das marketplaces B2B atuais, substituindo catalogos impressos e feiras fisicas tradicionais.

### Ecossistema de marcas

A empresa tambem operava TendanceObjet.com, Kadobjet.fr, FranceObjet.com, Omyague.com, GourmetOnline.pro, Recherche-Publicitaire.com, GraphicSourcing.com, CPrint-Sourcing.com, WineSpiritSourcing.com, Tradexpo-Online.fr - cada marca visando um segmento especifico do mercado.

### Divida tecnica

Migracao progressiva de um framework customizado para Symfony, coexistencia de duas arquiteturas (SVN legado + Git moderno), hash MD5 de senhas com uma unica iteracao e sem salt - coerente com o estado da arte das praticas de seguranca PHP da decada 2008-2014, antes de bcrypt se tornar o padrao.

### Complexidade de integracao

Os feeds de dados de fornecedores eram heterogeneos (CSV, XML, API), exigindo um adaptador especifico por fornecedor, todos mantidos em flux.europeansourcing.com.

### Dependencia de infraestrutura

9 servidores dedicados OVH com virtualizacao Proxmox, replicacao MySQL master/slave, implantacoes manuais via svn up - reflexo das restricoes tecnicas da epoca, antes da democratizacao do Docker e dos pipelines CI/CD modernos.

### Bus factor

Apenas 3 desenvolvedores principais para todo o ecossistema de 38 sub-projetos e 9 servidores.

### Objetivos

- Posicionar a plataforma como **a referencia europeia** do sourcing B2B de produtos promocionais online, substituindo catalogos impressos e feiras fisicas
- Construir um **catalogo de produtos multilingue** agregando **varios milhoes de produtos e variantes** provenientes de dezenas de fornecedores
- Fornecer aos revendedores um **motor de busca avancado** com filtros por categoria, marca, preco, atributos, marcacao
- Automatizar a **importacao de feeds de dados** de fornecedores (precos, estoques, imagens, descricoes) de 26+ fornecedores
- Oferecer aos revendedores uma solucao **pronta de mini-sites e-commerce** (MyEasyWeb) com sua propria vitrine brandada conectada ao catalogo central
- Gerar **estatisticas de consulta** detalhadas para fornecedores (visualizacoes de produtos, buscas, cliques)

### Desafios

### Riscos identificados

## As etapas - O que eu fiz

_Do monolito SQLI a arquitetura de microsservicos distribuida_

### Desenvolvimento SQLI e legado SVN (2008-2013) (2008 - 2013)

- Eu gerenciei o codigo legado herdado da SQLI - um monolito PHP com templates Smarty, sob versionamento SVN (398 revisoes)
- No extranet de fornecedores e revendedores, assumi tanto a manutencao quanto as extensoes funcionais (CRUD de produtos, gestao de imagens, precos, atributos, marcacoes)
- Em paralelo, conduzi as operacoes de implantacao em servidores dedicados e coordenei o trabalho com a documentacao SQLI (47+ documentos de especificacoes)
- Para resolver os problemas de qualidade (categorias-pai ausentes, cores incorretas, imagens quebradas), desenvolvi scripts de correcao de dados dedicados

### Retomada interna e microsservicos (2014-2016) (Jan 2016 - Dez 2016)

- Eu liderei a migracao de SVN para GitHub - 13 repositorios criados em janeiro 2016, organizacao medialeads com 8 membros e 20+ repos privados
- Do lado do extranet, realizei a reescrita completa (177 commits) em um framework PHP MVC customizado com acesso direto ao banco MySQL
- No backend, desenvolvi a API REST (api.europeansourcing.com) em Symfony 2.4 com Propel ORM e autenticacao WSSE
- Para automatizar a importacao de dados dos fornecedores em flux.europeansourcing.com, construi conectores dedicados para Pixika, Makito, Midocean, BIC, Paul Stricker, TopTex e Cybernecard
- No tema da busca full-text, migrei para o Elasticsearch com indices multilingues dedicados
- Em paralelo, criei o sistema de traducao centralizado (translate.europeansourcing.com) em Symfony 3.0

### Modernizacao arquitetural (2016-2017) (Mar 2016 - Nov 2016)

- Eu iniciei a reescrita arquitetural em torno de bundles Symfony compartilhados (ESCoreBundle: 143 commits, ESSourcingBundle: 15 commits)
- Do lado da modelagem, projetei os comportamentos Doctrine: Sluggable, Sortable, Timestampable, Translatable, Blameable, Toggleable, Visible, Overloadable, Tree
- Para absorver picos de carga, apoiei-me no RabbitMQ para introduzir o processamento assincrono na importacao de dados e nos calculos de visibilidade
- No lado da infraestrutura, configurei o provisionamento com Chef para o projeto extranet_rebirth

### Fase 1

### Fase 2

### Fase 3

## Os atores - As interacoes

_Como colaborei em uma equipe reduzida mas altamente produtiva_

### Equipe de desenvolvimento

Dependendo do periodo, trabalhei com 3 a 5 desenvolvedores ativos, com responsabilidades claramente divididas:

### Partes interessadas externas com quem interagi

### Workflow de desenvolvimento

Trabalhei dentro da organizacao GitHub medialeads (Bordeaux), em branches nomeadas por desenvolvedor (jose, fancyweb, wamania), com documentacao interna no DokuWiki. Nao havia processo formal de Pull Requests na epoca: operavamos por merges diretos de branches e cada um assumia suas areas de codigo atribuidas - eu levava meus perimetros de ponta a ponta.

- José DA COSTA - Meu papel - desenvolvedor lider. Produzi 35,3% do versionamento total (225 Git + 116 SVN), com presenca dominante no extranet (177 commits), flux (15) e na gestao do legado SVN.
- Thomas C. - Desenvolvedor senior com quem trabalhei no dia a dia - 36,9% (355 Git + 1 SVN). Dominante no ESCoreBundle (113), translate (88), supplierbo (19).
- wamania - Desenvolvedor com quem compartilhei o codigo da plataforma - 24,2% (226 Git + 8 SVN). Dominante no europeansourcing.com (166 commits), extranet (49).
- IronXtreme - Desenvolvedor que cruzei no perimetro do ESCoreBundle - 3,0% (29 commits Git).

- SQLI - Retomei e aproveitei os entregaveis desta empresa de servicos de TI que desenvolveu v1/v2/v3 (especificacoes, desenvolvimento inicial)
- Dolead - No lado da aquisicao paga, colaborei com esta agencia para a gestao do Google AdWords
- Universem - No SEO, apoiei-me nesta agencia para as auditorias TendanceObjet e Kadobjet
- OVH - Para a hospedagem, pilotava seus 9 servidores dedicados no dia a dia

## Os resultados

_Impacto mensuravel para a empresa e para minha carreira_

### Para mim

- **Gestao massiva de dados e otimizacao SQL**: afiei meu dominio das **formas normais SQL** (1NF, 2NF, 3NF, BCNF), de todos os **tipos de joins** (INNER/LEFT/RIGHT/CROSS/SELF) e da **indexacao avancada** (indices B-tree, compostos, covering), com analise constante de planos de execucao via **`EXPLAIN ANALYZE`**, apoiando-me na **replicacao MySQL master-slave** e no **cache Memcache**. Mantinha **batches noturnos de varias horas** rodando para recalcular estoques, precos e promocoes em todo o catalogo - nessa escala, um indice ausente podia transformar uma query de 50 ms em timeout de 30 segundos, entao cada milissegundo ganho por query se multiplicava em milhoes de execucoes.
- **Mecanismos de busca e indexacao**: passei praticamente por **quatro geracoes** de mecanismos - (1) **MySQL LIKE / FULLTEXT** (MyISAM/InnoDB), (2) **busca full-text PostgreSQL** com `tsvector`/`tsquery`, **indices GIN** e funcoes `to_tsvector`/`ts_rank`, (3) **Apache Solr**, onde indexei centenas de milhares de produtos com facetamento avancado (categorias, cores, precos, fornecedores), sugestoes, correcao ortografica e scoring de relevancia personalizado, (4) **Elasticsearch** com inverted indexes, analyzers multilingues (stemming, tokenization, normalizacao), scoring TF-IDF, agregacoes e facetas. Essa trajetoria me permitiu captar em profundidade as diferencas entre um mecanismo relacional e um mecanismo de busca dedicado.
- **Algoritmos e regras de negocio complexas**: concebi e implementei **numerosos algoritmos** e **regras de negocio muito complexas** - por exemplo o calculo de todas as combinacoes possiveis de preco, variantes de produto e disponibilidade (**produto cartesiano / explosao combinatoria** gerando milhares de combinacoes por produto entre tamanhos, cores, quantidades, tipos de marcacao, zonas de marcacao e acabamentos). A modelagem de regras de pricing dinamicas e motores de decisao de negocio agora faz parte da minha caixa de ferramentas.
- Consolidei o dominio do **ecossistema Symfony 2/3** em producao em larga escala (Propel, Doctrine, bundles, servicos, seguranca, WSSE).
- Do lado da **migracao de codigo legado**, construi habilidades solidas conduzindo a transicao do monolito SVN para microsservicos Git sem interrupcao de servico.
- No plano de negocio, adquiri um conhecimento profundo do **mercado B2B de produtos promocionais**, da automacao de feeds de dados e do e-commerce multi-pais.
- Por fim, este projeto mudou minha forma de trabalhar: aprendi a me coordenar em uma equipe pequena onde cada desenvolvedor possui porcoes significativas do codigo, e a conduzir perimetros de ponta a ponta.

### Para a empresa

- Cobertura funcional - **Ciclo completo de sourcing B2B** coberto por um unico ecossistema - do upload de catalogo do fornecedor a vitrine do revendedor, sem rupturas manuais entre servicos
- Volume do catalogo - Indexacao da **maior base de dados europeia de produtos promocionais** - varios milhoes de produtos e variantes agregados de **26+ feeds de fornecedores**, armazenados em **97 tabelas MySQL** com replicacao master-slave
- Alcance multilingue - **7 idiomas europeus** com indices Elasticsearch dedicados e gestao centralizada de traducoes
- Cobertura geografica - Sub-dominios localizados cobrindo os principais mercados europeus: **UK**, **Iberia**, **Italia**, **Alemanha**, mais um vertical Textil dedicado
- Escala de automacao - **26+ conectores automatizados** de dados de fornecedores lidando com formatos heterogeneos (CSV, XML, API) de grandes marcas europeias
- Rede de revendedores - **~160 mini-sites revendedores** hospedados na plataforma CMS MyEasyWeb
- Ecossistema de marcas - **11+ marcas operadas**: europeansourcing.com, tendanceobjet.com, kadobjet.fr, franceobjet.com, omyague.com, gourmetonline.pro, recherche-publicitaire.com, graphicsourcing.com, cprint-sourcing.com, winespiritsourcing.com, tradexpo-online.fr

**Funcionalidades-chave entregues:**
- Catalogo de produtos multilingue com indices Elasticsearch dedicados e scoring de relevancia personalizado
- API REST com autenticacao WSSE stateless (nonce + timestamp + digest)
- Conectores automatizados de importacao lidando com feeds heterogeneos CSV / XML / API
- Back-office fornecedores/revendedores com gestao completa de produtos
- Dashboard de fornecedores SPA (AngularJS 1.2 + CoffeeScript + Grunt + Bower)
- CMS mini-sites revendedores (MyEasyWeb) com vitrines brandadas conectadas ao catalogo central
- Integracao de pagamento online (Sogenactif, Société Générale)
- Back-office SEO / marketing (Zend Framework + ExtJS + crawler web)
- Aplicacoes moveis hibridas (jQuery Mobile + PhoneGap/Cordova)

## O depois do projeto

_O que aconteceu apos minha saida do projeto_

**Sai do projeto em novembro de 2016**, deixando uma plataforma em pleno funcionamento. A equipe continuou operando e evoluindo o European Sourcing - **o projeto nao foi interrompido**, ele simplesmente continuou sem mim. A fase final de consolidacao em torno de bundles Symfony compartilhados, que eu havia iniciado, foi levada adiante pela equipe.

Em retrospectiva, as escolhas arquiteturais da Fase 2 se mostraram **solidas e modernas para sua epoca**: a abordagem orientada a servicos com subdominios dedicados, a autenticacao WSSE stateless entre servicos, a arquitetura do mecanismo de busca e a infraestrutura de conectores automatizados de fornecedores permaneceram tecnicamente impressionantes muito depois da minha saida.

## Minha perspectiva critica

_Como julgo este projeto, com o recuo de 8 anos de desenvolvimento_

### Pontos fortes

- Arquitetura de microsservicos bem projetada - Com o recuo, considero que a decomposicao do monolito SQLI em **servicos especializados** (API, busca, flux, traducao, exportacao, estatisticas) demonstra uma **visao arquitetural solida**. Cada servico que recortamos tem responsabilidade clara e perimetro funcional bem definido.
- Escopo de produto raro no mercado - Na epoca, muito poucos concorrentes ofereciam **todo o ciclo de sourcing B2B em um unico ecossistema**. Continuo convencido de que esse nivel de integracao, que levamos longe, foi o que posicionou a European Sourcing na lideranca do mercado europeu.
- Internacionalizacao nativa - Reivindico a escolha dos **indices Elasticsearch dedicados por idioma** e do **sistema de traducao centralizado**: pensamos a ambicao europeia desde o inicio, em vez de adiciona-la depois.
- Automacao de importacao de fornecedores - Com o tempo, mensuro o valor dos conectores que construi para lidar com formatos heterogeneos (CSV, XML, API) - um **investimento tecnico consideravel** e **valor de negocio fundamental** que formaram uma vantagem competitiva real.

### Areas para melhoria

- Implantacao pre-CI/CD - Eu implantava apenas manualmente via svn up, sem pipeline de integracao continua e sem testes automatizados. Era coerente com as praticas do ecossistema PHP da decada 2008-2014 (GitHub Actions ainda nao existia, Jenkins e Travis CI engatinhavam), mas identifico isso claramente como uma limitacao hoje.
- Versionamento pre-SemVer - Nao posicionei nenhuma tag Git nos 13 repositorios - reflexo da epoca, antes da adocao massiva de SemVer no ecossistema PHP e da popularizacao do GitHub Releases. Com o recuo, lamento.
- Ecossistema multi-frameworks - Tive que lidar com a coexistencia de multiplos frameworks (PHP customizado, Symfony 2.4, 2.8, 3.0, 3.1, Zend Framework 1) e 2 ORMs (Propel, Doctrine) - consequencia de uma migracao progressiva ao longo de varios anos, coerente com a evolucao do ecossistema PHP entre 2010 e 2016, mas pesada de manter.

### O que eu faria diferente

Com os padroes e o recuo de hoje, eis as escolhas que eu refaria diferente - cada decisao fazia sentido dentro das restricoes da sua epoca:
- **Adotar um unico framework** desde o inicio em vez de manter um framework PHP customizado ao lado do Symfony, embora o contexto historico justificasse a coexistencia durante a migracao.
- **Configurar CI/CD** desde a migracao para GitHub (janeiro 2016) - Jenkins, Travis CI ou GitLab CI estavam disponiveis mesmo que GitHub Actions ainda nao existisse.
- **Usar Docker** para ambientes de dev e implantacao, embora Proxmox fosse o padrao de virtualizacao maduro para PMEs PHP da epoca.
- **Centralizar o acesso a dados** via uma unica API em vez de conectar cada servico diretamente ao banco MySQL - um padrao que so se generalizou apos 2017.

### Os ensinamentos duradouros que este projeto me trouxe

- A migracao de legado e uma maratona - A transicao do monolito SQLI para a arquitetura de microsservicos me tomou mais de 3 anos e permanecia em andamento quando sai do projeto. Saio com a conviccao de que e preciso planejar marcos realistas e aceitar compromissos temporarios.
- A automacao de importacao de dados e critica - Mensuro o quanto os conectores de fornecedores que construi representam valor de negocio consideravel mas tambem divida de manutencao permanente - qualquer fornecedor pode mudar seu formato a qualquer momento, e cada quebra se transforma em incidente de producao.
- A internacionalizacao deve ser planejada desde o inicio - Vivi na pratica como o sistema de traducao centralizado e um excelente padrao. Adicionar suporte multilingue depois teria me custado exponencialmente mais do que planeja-lo desde o inicio.
- A documentacao de consultoria e preciosa - Anos apos o fim da prestacao, ainda podia me apoiar nas especificacoes da SQLI para entender a arquitetura. Levo como aprendizado que investir em documentacao tecnica tem um ROI de longo prazo.

## Competências aplicadas

_Competências técnicas e humanas aplicadas_

- **[Resolucao de Problemas & Adaptabilidade](https://portfolio.josedacosta.net/pt/habilidades/resolucao-de-problemas-adaptabilidade.md)** - Resolução de desafios complexos de integração - formatos heterogêneos de fornecedores, busca multilíngue em 7 idiomas, otimização massiva de catálogo onde qualquer query mal projetada era fatal para a performance. Evolução de PHP custom + monólito SVN para microsserviços Symfony + Git + Elasticsearch + AngularJS SPA - aprendizado contínuo de novas stacks, frameworks e tecnologias de busca em 3 fases arquiteturais
- **[Arquitetura de Software & Sistemas](https://portfolio.josedacosta.net/pt/habilidades/arquitetura-de-software-sistemas.md)** - Decomposição do monólito SQLI em ecossistema de microsserviços (API, search, flux, translate, export, stats, supplierbo) com bundles Symfony compartilhados (ESCoreBundle, ESSourcingBundle) e autenticação WSSE stateless inter-serviços, API REST JSON em Symfony 2.4 + Propel com autenticação WSSE stateless (nonce + timestamp + digest), JMS Serializer, CORS e conexões multi-banco (europeansourcing + tendanceobjet). Microsserviços, MVC, SPA (AngularJS), pattern Strategy para 26+ conectores de fornecedores heterogêneos (CSV/XML/API) e behaviors Doctrine (Sluggable, Sortable, Timestampable, Translatable, Blameable)
- **[Desenvolvimento Fullstack](https://portfolio.josedacosta.net/pt/habilidades/desenvolvimento-fullstack.md)** - 15+ sub-aplicações interconectadas em PHP MVC custom, Symfony 2/3, AngularJS SPA, jQuery Mobile e apps PhoneGap/Cordova ao longo de 8 anos
- **[DevOps, Cloud & Industrializacao de Produção](https://portfolio.josedacosta.net/pt/habilidades/devops-cloud-industrializacao-de-producao.md)** - Liderança da migração de SVN (398 revisões) para GitHub (13 repositórios, 836 commits) - configuração da organização, estratégia de branches por desenvolvedor, 20+ repositórios privados sob a organização medialeads
- **[Dados, IA & Machine Learning](https://portfolio.josedacosta.net/pt/habilidades/dados-ia-machine-learning.md)** - Projeto e otimização de schema MySQL com 97 tabelas e replicação master-slave - formas normais SQL (1NF/2NF/3NF/BCNF), indexação avançada (B-tree, composite, covering), análise contínua de planos EXPLAIN e evolução para PostgreSQL full-text (tsvector/GIN) e Elasticsearch
- **[Engenharia Reversa & Algoritmos](https://portfolio.josedacosta.net/pt/habilidades/engenharia-reversa-algoritmos.md)** - Algoritmos de pricing combinatório (produto cartesiano gerando milhares de combinações por produto: tamanhos × cores × quantidades × tipos de marcação × zonas de marcação × acabamentos) e teoria de indexação de motor de busca (índice invertido, analisadores, scoring TF-IDF)

## Trajetória relacionada

_Experiência profissional ligada a está realização_

- **Software Engineer · desenvolvedor PHP Zend Framework**

## Galeria de imagens

_Capturas e visuais do projeto_

## Você tem um portal B2B multilingue para projetar ?

Entreguei o portal European Sourcing ponta a ponta: modelagem de produto multilingue, catalogo de sourcing e fluxos de compradores. Vamos conversar sobre seu contexto.

**Entrar em contato**
